- Видео 62
- Просмотров 103 473
Michael Jared
Канада
Добавлен 15 июн 2009
A guy who makes (digital) stuff
Recreating the Pipeline from "The Ascent": V Pipeline (Part 2)
Part 2! We take a look at how the pipeline works, and what still remains to be done.
Grab it from GitHub here:
github.com/bikemurt/VertexPipeline
This project takes heavy inspiration from the development process of the game "The Ascent" that was described in this GDC talk. I highly encourage you check it out:
ruclips.net/video/FodXp5BkENk/видео.html
The idea for face-corner vertex colors comes from the game "SandWitch Caravan", please go check them out as well! store.steampowered.com/app/1582650/Caravan_SandWitch/
Thanks for stopping by!
michaeljared.ca/
Grab it from GitHub here:
github.com/bikemurt/VertexPipeline
This project takes heavy inspiration from the development process of the game "The Ascent" that was described in this GDC talk. I highly encourage you check it out:
ruclips.net/video/FodXp5BkENk/видео.html
The idea for face-corner vertex colors comes from the game "SandWitch Caravan", please go check them out as well! store.steampowered.com/app/1582650/Caravan_SandWitch/
Thanks for stopping by!
michaeljared.ca/
Просмотров: 360
Видео
Open source, vertex based, UBER shader: V Pipeline (Part 1)
Просмотров 55316 часов назад
This project takes heavy inspiration from the development process of the game "The Ascent" that was described in this GDC talk. I highly encourage you check it out: ruclips.net/video/FodXp5BkENk/видео.html The idea for face-corner vertex colors comes from the game "SandWitch Caravan", please go check them out as well! store.steampowered.com/app/1582650/Caravan_SandWitch/ GitHub repo for V Pipel...
Blender-Godot Pipeline V2.4 || Blender Asset Library and Packed Scene Generation
Просмотров 65021 день назад
Please support Kenney Assets! Here is the asset kit from the video: kenney.nl/assets/platformer-kit ►discord.gg/UyefbSJ3Hf ►blendermarket.com/products/blender-godot-pipeline-addon ►www.michaeljared.ca Thanks for watching! Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/
Hurricane Watch - Gameplay - Brackeys Jam 2024.2
Просмотров 140Месяц назад
Play here on itch: michaeljared.itch.io/hurricane-watch Submitted for the Brackeys 2024.2 Game Jam. Any feedback is welcome, either here on RUclips or itch would be excellent. It was made in 4 days and honestly I had a lot of fun making and *playing* this game. (Inspired by Pong? Probably. See my recent video. I started this project just a couple days before that re-creation).
Blender Multiple Bevels with Edge Weights (4.3 Alpha)
Просмотров 508Месяц назад
Jump to 2:00 to see the actual feature in Blender UPDATE: This feature is now merged into main. You don't need to be on the bevel-edge-attributes branch to preview this feature. A quick how-to: - cloning blender - building a dev branch - using the new "bevel edge weight feature" I've been tinkering with this feature for about 8 months, and it's finally finished (with much help and advice from B...
I cloned pong (and why you should too)
Просмотров 410Месяц назад
See the code here: github.com/bikemurt/pong Note: there is no license attached to this. This is for educational purposes only. michaeljared.ca/ Thanks for stopping by!
Blender-Godot Pipeline V2.3 - Geometry Nodes Support (and more!)
Просмотров 2,1 тыс.2 месяца назад
Discord discord.gg/UyefbSJ3Hf Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Grab the Pipeline addon here: blendermarket.com/products/blender-godot-pipeline-addon Godot Asset Library add-ons: godotengine.org/asset-library/asset?user=michaeljared Gumroad: michaeljared.gumroad.com/ Blender-Godot Pipeline Version 2.3: - geometry nodes workflow - includes support...
We Have a Discord! (No more Twitter DM support)
Просмотров 1432 месяца назад
Discord discord.gg/UyefbSJ3Hf Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Fixing the "Download PC" Button on steam: x.com/_michaeljared/status/1822708113167773874 Quick update video on the demo for A Beaver's Tale and my new Discord channel. Grab the Pipeline addon here: blendermarket.com/products/blender-godot-pipeline-addon Godot Asset Library add-ons: g...
A Beaver's Tale - Demo Trailer - Steam
Просмотров 2222 месяца назад
A Beaver's Tale demo is available now on the Steam store! store.steampowered.com/app/3047440/A_Beavers_Tale/ Ever wondered what it's like to be a beaver for a day? Watch the trailer to see! #gamdev #indiedev #indie #cozygames #cozy Join the Discord: discord.gg/QCrfQwMe Twitter: x.com/_michaeljared Thanks for stopping by! www.michaeljared.ca/ CREDITS: Writing by zorkie zorkie.itch.io/ 2D art com...
Blender-Godot Pipeline - Static Body Animation Workflow
Просмотров 6733 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Just a quick video showing the workflow for animating StaticBody3Ds using the Blender-Godot pipeline addon. This has been a pain point for a while, and it stems from the fact that the addon does a lot of "magic" under the hood in reparenting nodes so that collisions are auto-generated. This can break animation pa...
Fast 3D Level Workflow: Blender Godot Pipeline V2.2
Просмотров 2,9 тыс.3 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Example project: github.com/bikemurt/godot-pipeline-v2.2-example Asset pack: opengameart.org/content/3rd-person-blender-sci-fi-pack Grab the Pipeline addon here: blendermarket.com/products/blender-godot-pipeline-addon 1:36 GitHub example project 2:15 In-game level overview 3:17 Godot editor level overview 3:22 Op...
Demystifying Vertex Data (gltf, bgfx and C++)
Просмотров 9364 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Let's take a look at vertex data using GLTF (just as a framework for analysis), and an example from the bgfx C rendering library. My blendermarket stuff: blendermarket.com/products/blender-godot-pipeline-addon Godot Asset Library add-ons: godotengine.org/asset-library/asset?user=michaeljared Gumroad: michaeljared...
Importing Animations into Godot (the best way!)
Просмотров 2,2 тыс.4 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Speed-running animation and exporting from Blender/importing into Godot. NLA tracks are your friend! My blendermarket stuff: blendermarket.com/products/blender-godot-pipeline-addon Godot Asset Library add-ons: godotengine.org/asset-library/asset?user=michaeljared Gumroad: michaeljared.gumroad.com/ michaeljared.ca...
Integrating PROFESSIONAL 3D Assets into Godot 4
Просмотров 2,5 тыс.4 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ Godot 4 is a very capable 3D platform, and building out a 3D pipeline centered around Godot is pretty easy. Grab the Pipeline addon here (free updates for life, so don't worry that a new version is coming soon!): blendermarket.com/products/blender-godot-pipeline-addon 00:10 Introduction 01:05 Basic scene import (...
Procedural Generation with Godot 4!
Просмотров 8 тыс.4 месяца назад
Wishlist "A Beaver's Tale" now! store.steampowered.com/app/3047440/A_Beavers_Tale/ A small demo testing out some procedural bricks in Godot 4.3! Play the Tiny Glade demo, it is very fun: store.steampowered.com/app/2198150/Tiny_Glade/ 00:50 Tiny Glade procedural generation review 03:21 Quick demo of how the Brick scene works 05:35 Explanation of the procedural algorithm 07:50 The "magic": using ...
How to Use Substance Painter 3D and Godot 4.3
Просмотров 1,4 тыс.5 месяцев назад
How to Use Substance Painter 3D and Godot 4.3
Blender Godot 3D PIPELINE - V2.0 is Really Good...
Просмотров 3,6 тыс.5 месяцев назад
Blender Godot 3D PIPELINE - V2.0 is Really Good...
Blender-Godot Pipeline: Navigation Mesh Support
Просмотров 5496 месяцев назад
Blender-Godot Pipeline: Navigation Mesh Support
Making a Zombie: Import Animations into Godot 4 with Blender Non-Linear Animation (NLA)
Просмотров 6526 месяцев назад
Making a Zombie: Import Animations into Godot 4 with Blender Non-Linear Animation (NLA)
Making a Zombie: Non-Linear Animation (NLA), Mixamo and Rokoko
Просмотров 4956 месяцев назад
Making a Zombie: Non-Linear Animation (NLA), Mixamo and Rokoko
Making a Zombie: Blender Rigify Tutorial
Просмотров 6086 месяцев назад
Making a Zombie: Blender Rigify Tutorial
Making a Zombie: Texture Baking and Painting
Просмотров 3016 месяцев назад
Making a Zombie: Texture Baking and Painting
Blender How to Fix "Bone Heat Weighting: Failed to find solution"
Просмотров 3,7 тыс.6 месяцев назад
Blender How to Fix "Bone Heat Weighting: Failed to find solution"
Making a Zombie: 3D Character Workflow for Godot
Просмотров 1,4 тыс.6 месяцев назад
Making a Zombie: 3D Character Workflow for Godot
Custom NavMeshes in Godot 4.2 and Blender
Просмотров 2,3 тыс.7 месяцев назад
Custom NavMeshes in Godot 4.2 and Blender
Blender Timelapse: Subdivision Modeling, Texturing, Animating
Просмотров 1638 месяцев назад
Blender Timelapse: Subdivision Modeling, Texturing, Animating
Beaver Game Devlog #2: State Machines in Videogames?
Просмотров 3558 месяцев назад
Beaver Game Devlog #2: State Machines in Videogames?
clean up by merge doesn't work, there are no holes on my model, REMOVING THE HAIR DOESN'T WORK!!!! WHAT AM I DOING WRONG!? GIVE ME A SOLUTION TO FIX THIS STUPID ANNOYING ERROR!!!!!
If you had 50+ objects, imagine the pain staking work, to do that. I don't recall needing to push them all into NLA tracks, then renaming them, to get them to be all in 1 animation in Godot. In blender, on the gltf export settings, Animation, set the animation mode to Active actions merged. I'd have to test this since it's been a long time since I've done a cell fracture animation for Godot.
When you have a blender file with multiple actions spread across different objects, the import pipeline completely breaks down. NLA tracks remedies that. At least this is how it was in Godot 4.2.1 might be better now.
I haven’t fully grasped the entire pipeline yet, but you can turn on UV tiles in Blender's Show Overlays option in the UV Map viewport, which makes it a bit easier to understand all the indexing and flooring stuff. Also, is it possible to use your other addon with this pipeline as well? Thanks in advance, man. Your work is very impressive-it brings Godot closer to others professionals softwares
Ahh this is an excellent idea, I am screen capping your comment. A visualization on the UDIM tiles is exactly what I need. In theory it should work. The other pipeline is all about level design, collision shapes etc. so I don't think there's any conflict here. This pipeline just uses a particular shader and has vertex data (which is standard for gltf)
This is an excellent start to building a bridge between Blender and Godot
The problem with these sharp vertex colors is that, even though blender internally doesn't do it in its own mesh model, when exported these create duplicate vertices, and in turn very thin long triangles which are really bad for gpu performance (quad overdraw)
It's a good point. Take a look at the vertex data, it's not duplicated, it's just decoupled from the perspective of indexed drawing. The same thing happens when you shade flat or have split normals. Any of these processes splits up the vertex data in the buffers, and reduces the efficiency of indexed drawing. New and old GPUs can handle this very well, so The Ascent's pipeline just greases the wheels on the CPU/GPU traffic for textures and uniforms. The sharp vertex colors allows the model to be lower poly (some people have smooth shaded models with high poly counts to get around this, which in my opinion is not a trade-off that's worth it).
UPDATE: Almost immediately after posting this, someone very kindly informed me that although GLTF does not directly include UDIM data, you can still shift a UV map by a whole tile outside the 0-1 range, and then use that to map to a predefined color value: uniform sampler2D trimsheet; const vec3[] colors = { vec3(1,0,0), vec3(0,1,0) }; void fragment() { int color_index = int(floor(UV.x)); ALBEDO = colors[color_index]; NORMAL_MAP = texture(trimsheet, UV).rgb; } Textures still map properly because they repeat! I will likely be reworking this for part 2 :)
Thank you very much for the amazing tools ! i gonna check it out later
I’m working on a menu that would display the Edge groups like Vertex group does. There’s also an operator to create that group and give it a name. So far it should work with your branch.
That's awesome! I had a strong suspicion that people within the hard surface community would jump on this and make add-ons to improve the workflow.
Amazing stuff, thanks
Thank you so much for making this it's super useful for nondestructive hardsurface modeling
Hey Michael - addon looks great! I've been looking for a tight solution for Blender -> Godot and this seems really promising. I wanted to add my two cents though on the origin point functionality: the addon needing to move the origin point to the center of geometry to generate the collision shapes is less than ideal. In many cases (like with these Kenney assets shown in this video), the origin is intentionally placed such that the asset will snap to the floor, or such that assets can snap together perfectly (for example, if you're making a pack of modular building pieces). Moving the origin to the geometry's center of mass makes it much more difficult and less scalable to work with assets. Maybe there's a way to temporarily move the origin to create the collision shape and then set it back? I'd defer to you on the implementation. But wanted to voice this as it's a pretty essential part of the common workflow in the games industry.
I hear you entirely on this one. I have already been prototyping a second way of doing collisions, but the problem is that it effectively it requires sending more info from blender to Godot - both the bounding box origin center position and size. This would basically break the current API (and all past versions). I am considering doing this eventually. Aside from the logistics of the add-on API, it is possible to get this info from the add-on - basically the addon sets the object's origin to the center of the bounding box, captures that position, rolls back the origin change, and then send that info to Godot. On the Godot side, the collision shape itself can have the object's BB origin (offset relative to the actual origin, since it will be parented to a Body3D, i.e. the feet example) and it all works great. The problem is just time and effort to get that code in there. The collision solution would need a pretty big overhaul to make this happen.
@@michaeljburt I appreciate that you're continuing to build on the addon! And glad to hear you were already thinking about this. Godot's 3D workflow is a bit maddening in comparison to other 3D engines so tools like yours end up being live savers. Looking forward to seeing progress over time :)
That is awesome work! Do you plan on having it out as an addon/official release?
Yeah so this is a feature that is merged in blender and will ship with the next release!
@@michaeljburt Awesome!!
Could you make a video on your pipeline? These are the types of things that I look for but have a hard time finding!
Sure! Just take a look on my channel you will find a number of videos on the "Blender-Godot Pipeline".
From blender 4.3 onwards, possibly 4.4 the action data block in Blender will be system wide and any number of objects will be able to have tracks in the same animation making this workflow so much simpler.
Interesting. I did not know that!
Subscribed! Been trying to content like this... Specifically on procedural content generation. I'm planning on taking a stab at it myself, and I'm actually somewhat surprised that there isn't more content out there like this. I'd like to eventually create some sort of procedural object generation add-on for Godot that could achieve more complex things like generating buildings (how many floors, rooms per floor, stair cases, unique bottom and top floors, etc...).
Procedural gen is such an awesome area in game development. Glad you enjoyed it! An add-on would be cool. I agree, there's not too many tutorials out there on it. I feel like the people who are capable of doing it are often too busy actually working on their stuff :) Even this video is a quite simple implementation (with a focus on rendering efficiency)
Setting individual origins seems very useful for those of us who like to import whole asset libraries into godot and saving the meshes to their own files.
when using blender 4.2 I had a similar experience with the shaded viewport slowing down.for me at this usually happens the when i open blender and switch to shaded view for the first time.after that it kinda speeds up on its own again.IDK why its like that.But i switched back to 4.1 for these minor issues.Things you don't notice till u look for them
Right. Well good to know it's not just me. It's funny it didn't happen during the video, but I believe you're right. It happens when switching for the first time and I must have already done it
@@michaeljburt maybe it's the code behind the software.i feel like it's supposed to be a way of optimizing blender, like it cache's existing materials the first time for future reference in that session . But it might also be a bug for certain users cause most blender tutorials I've seen don't seem to have this problem
14:00 I had the same issues "cpp:345 - Condition !is_inside_tree() etc." get introduced to my import plugin going from 4.2 to 4.3. It was from accessing global_position of a node while it was outside of the tree. Funny enough I wasn't even using the var, just a leftover debug print causing me grief Since the scene is not in the tree when you are not currently editing it, maybe that will solve the needing scene open issue, though it's that not that big of a deal IMO
Interesting. Thanks for your comment! Yeah this one has caught me a few times. I am not sure if I totally understand why some properties are accessible outside the tree and some not.
@@michaeljburt "World3D space (global) Transform3D of this node." this the description of global_transform from docs, so I'm guessing it can't access the World3D. I've been getting errors from other scripts when trying to get_tree() from outside the tree. So it probably comes to that, can't access parts of the tree when the node isn't inside. I was able to reconstruct my scenes accurately using just the local position, so it's probably a quick fix if your worried about. Anyway, cool plugin man! Interesting to see the different work flows
hmmm sounds so useful
Can I pain texture?
No, this is only for vertex psinting. Generally you would do texture painting in Blender or Substance Painter 3D (there are others too)
@@michaeljburt means I use android editor I don't have pc, so I asked...!
Are you still updating the project! I've been wanting to use this with csg nodes, And mesh instances! I was gonna create a shader to take an RGB color and shift whatever color was painted on, To a specific texture on the ground. I really have no clue how I'd make a map in blender or if it's viable for my game.
Step 1: Delete The Cube Step 2: Add A Cube
Great video, can you share the code you do use to make the bricks wall?
I enjoyed this series, thanks for uploading it. I picked up some tips about NLA that I wasn't aware of before. For a better-looking end result, I've found that lerping the movement direction as well as the rotation is better than only lerping the rotation. Since your character changes its move direction immediately, the animation still looks like it's sliding while the rotation of it is still catching up. Does that make sense? This is how I addressed that in my own project: #Player rotation smoothly interpolated between existing rot + target rot var target_rotation_y: float = atan2(-input.x, -input.y) rotation.y = lerp_angle(rotation.y, target_rotation_y, delta * angular_accel) #Movement direction smoothly interpolated between existing dir + target dir var move_direction: Vector3 = Vector3(-sin(rotation.y), 0, -cos(rotation.y)) velocity += velocity.lerp(move_direction * max_mov_speed, delta * accel) (Note: I had to flip the sign of the input and the sin and cos because my character walked backwards without it for some reason!)
Good to know, thank you!
I like your style. Shame these videos don't have more views. Sidenote: I've never heard someone pronounce it "ridge-ify" before. Is it not "Rig-ify", because... rigging?
Yeah just slip of the tongue there. Oops. "Rig"-ify very much makes sense.
why wouldn't you just use triplanar textures?
Yeah you could. It's not exactly the same. This is a cube projection UV mapping. Triplanar is based on world coordinates.
Wow ! loved watching this.
Can I export it in the form of multi mesh with the textures ?
Yeah you can do multimesh with textures, it's just you have to be careful about how the UVs are mapped and understand that every mesh in the MultiMesh uses the same material and textures set.
Hi, your addon is really helpful but I can not export simple locator , Camera or Light... i export a mesh with a single Vertex instead
Hi there. Cameras and lights are supported in the gltf format by default. My addon doesn't provide any additional functionality for lights or cameras.
“Classic game” 💀 yeah THE classic game
There is something really engaging and thrilling about the bouncing ball and tracing its direction to make sure you can catch it. Then I think of most games I play and Im asleep at the wheel most of the time and there are 30 layers of unnecessary complexity.
I realized the samee thing when I made pong! It was truly a profound realization
Great series! Thank you!
random question, how do i get that thing in the bottom right that tells me xyz, size, objects, primitives and draw calls? also, video gud, informative :v
I think the three little dots in the 3D viewport and then near the bottom there's a Stats button
thankyou, thats gonna be a really useful tool to have on screen
Maybe this is just being totally new to 3D, but why a StaticBody over an AnimatableBody in godot? I thought you didn't want to move a static body at all?
AnimatableBody technically is a StaticBody, just has that field which allows synchronizing to a physics frame (which I'm not sure what that does precisely. Maybe animation frame times have no coupling to the physics frame by default). I need to add AnimatableBody to the pipeline. It wouldn't break anything else at this point, just another body type
cool
Nice work!
Amazing video!
Oh wow this looks awesome
Very nice!
Nice!
Hey man I've been following along as I start my 3D journey in Godot and I was wondering if you could answer a few questions. Is this addon only good if I want to use Blender for the world building? I found an addon called Asset Placer for Godot and it works really well at allowing me to build levels with assets I've imported. Also, I've learned how to write import scripts to do specific things to my assets but I haven't tried collisions yet. Is this addon better for adding collisions to assets or would an import script on all the assets do fine? Thanks!
Hi there! So there's two main usecases for this add-on. 1) is level design in Blender. 2) is designing entities (like props) in Blender. In both cases you can author collisions, assign scripts, and do lots of other things. Really I would only say people should use it if they are interested in designing in Blender rather than composing things in Godot. I could give a much longer answer but that's the short version :)
And just to add one more though. I absolutely encourage people to play around with import scripts. Of course, that's what this add-on does, but the import script has a few stages and does lots of different things. It might be overkill for some folks if they just need some very minimal import tooling.
@@michaeljburt Hey thanks for the reply! Yeah I find Blender to be clunky for more than just editing some assets I already have because I'm a complete beginner to Blender. I have a couple of import scripts that do different things for me in Godot. The main one I have is to remove the textures on import and assign a texture resource that I have to all my assets which use that particular texture. Then I can edit the texture resource in Godot and it updates all the assets using it. And if I ever wanted to adjust one or two assets differently I just make them unique. Probably my biggest gripe about 3D workflow inside of Godot is not being able to just apply different textures to assets because they are Node3D when you drag them into the scene. I do something similar with collisions. Your tool looks very helpful for the more Blender savvy users though!
спс
Great video! Anyway, I have a problem. Whenever I do texture painting, what I paint is regularly repeated on the object. So when I paint one circle with a brush, fifty more appear on the terrain. Can you think of what it could be?
I think I fixed it by using the "value" modifier in shading instead of scaling the UV in the UV Editing tab. Guess this should be the norm instead of my ghetto solution?
Sounds like a UV mapping issue
invites are invalid on youtube and steam, is it possible to get a fresh one? looking for support with the blender to godot pipeline after the humble bundle.
Ahhh that's a blunder on my part now... link in the comment should be fixed now, and I will begin fixing the others Thanks for the heads up!
Question: can't you just get the image textures out of substance painter and then slap them into a godot material, rather than going back and doing all that blender workaround? Is there a specific reason you do it this way?
Yeah that totally works. I just like doing the complete gltf export from blender that has the mesh, material and textures all together.
@@michaeljburt okay! thank you that's helpful. and i do get it, no giant mess of extra material files
How did you get your breakpoints working? Ive got debug symbols = yes, but it keeps saying how symbols have not been loaded. Perhaps a mismatch with the msvc compiler and scons which uses a different one?
Just commenting here for posterity - it seems the issue was using the mono version of the engine. You can still build and run, but no breakpoints.
The game has really cool features. I especially like building system. It need some polish though. Some pseudo background to fill the void would do the trick I think
Good idea. I will try to get that into the final release!
bobr kur*a
how does 14 have any significance with the 8 vertex. 8 + 6 faces?
Depends on UV mapping and how normals are split. In the simplest case, with smooth normals and no UV mapping, there's 8 vertices in the GPU. Depending on how you break up your UVs, some verts will share UV coords and some won't.
great addon, can you update to blender 4.2? turns out I can't go back to normal eevee hehe
If I ever get time then an update will be coming! A few things have changed, so I really need to test it well.
@@michaeljburt is there a way to setup on blender what meshs should be unwraped for lightmaps on import?
@@dani3d_b it's definitely an idea to consider. I will try tinkering with it