All 219 Godot Nodes Explained In 42 Minutes !
概要
TLDRIn this video, the presenter explains every node within the Godot game engine, detailing their functionalities and use cases. The video is structured to provide a comprehensive understanding of both 2D and 3D nodes, including their properties and how they can be utilized in game development. The presenter emphasizes the importance of node hierarchy and relationships, making it a valuable resource for developers looking to enhance their skills in Godot. Additionally, the video encourages viewers to explore interactive learning platforms for further skill development.
収穫
- 🎮 Comprehensive overview of Godot nodes
- 📜 30 pages of script and 3 hours of audio
- 🔍 Detailed explanation of node functionalities
- 🌐 Links to Godot documentation provided
- 📚 Interactive learning recommended
- 🛠️ Importance of node hierarchy in game development
- 👾 Suitable for beginners and experienced developers
- 💡 Encourages exploration of new skills
- 📈 Enhances understanding of game structures
- 🕹️ Valuable resource for game developers
タイムライン
- 00:00:00 - 00:05:00
The video begins with the creator expressing gratitude for the support received while completing a comprehensive project on GDAU, which involved extensive scripting and recording. They introduce the video as a detailed guide covering every note within GDAU, emphasizing the importance of the content.
- 00:05:00 - 00:10:00
The creator discusses the significance of continuous skill development as a game developer and introduces Brilliant, an interactive learning platform that aids in learning math, data science, and computer science. They highlight the platform's engaging approach to learning and its accessibility across devices, encouraging viewers to try it out.
- 00:10:00 - 00:15:00
The video transitions into the main content, starting with an explanation of notes in GDAU, describing how they can be organized into a tree structure to create scenes. The creator explains the foundational note, Note2D, and introduces various types of 2D notes, including Camera2D, Sprite2D, and CollisionObject2D, detailing their functions and uses in game development.
- 00:15:00 - 00:20:00
The creator continues to elaborate on additional 2D notes, such as PhysicsBody2D, StaticBody2D, and RigidBody2D, explaining their roles in physics simulations and interactions within the game environment. They also introduce various joints and area nodes, emphasizing their importance in creating dynamic gameplay elements.
- 00:20:00 - 00:25:00
The discussion shifts to 2D lighting in GDAU, covering nodes like Light2D and PointLight2D, explaining how they contribute to scene illumination and shadow casting. The creator also touches on particle systems, including CPU and GPU particles, and their applications in creating visual effects in games.
- 00:25:00 - 00:30:00
The video then transitions to 3D notes, starting with the basic Note3D and its derivatives, such as Marker3D and VisualInstance3D. The creator explains how these notes are used to manage 3D objects, including geometry instances and mesh instances, and discusses their properties and functionalities in rendering 3D scenes.
- 00:30:00 - 00:35:00
The creator continues with an in-depth explanation of various 3D physics bodies, including RigidBody3D and CharacterBody3D, detailing their interactions and behaviors in a 3D environment. They also cover navigation nodes and how they facilitate pathfinding in 3D games, emphasizing the importance of navigation regions and agents.
- 00:35:00 - 00:42:08
Finally, the video concludes with a discussion on UI elements and containers in GDAU, explaining how to structure and manage user interfaces effectively. The creator summarizes the key points covered throughout the video, expressing appreciation for the viewers' attention and encouraging them to explore the GDAU documentation for further learning.
マインドマップ
ビデオQ&A
What is the main focus of the video?
The video explains every node within the Godot game engine, covering both 2D and 3D nodes.
How long did it take to create this video?
The presenter wrote almost 30 pages of script and recorded over 3 hours of audio.
What is the purpose of the nodes in Godot?
Nodes are the building blocks of scenes in Godot, allowing developers to create complex game structures.
Are there any resources for learning more about Godot nodes?
Yes, the presenter provides links to the Godot documentation for further tutorials.
Can I learn about Godot nodes interactively?
Yes, the presenter recommends using platforms like Brilliant for interactive learning.
What types of nodes are covered in the video?
The video covers various types of nodes including 2D nodes, 3D nodes, physics bodies, and UI elements.
Is this video suitable for beginners?
Yes, the video is designed to help both beginners and experienced developers.
What is the significance of the node hierarchy in Godot?
The node hierarchy allows for organized scene management and efficient game development.
How can I access the Godot documentation?
Links to the Godot documentation are provided in the video description.
What is the benefit of understanding nodes in Godot?
Understanding nodes is crucial for effectively utilizing the Godot engine to create games.
ビデオをもっと見る
- 00:00:03yes ladies and gentlemen we made it
- 00:00:04after writing almost 30 pages of script
- 00:00:06recording over 3 hours of audio and
- 00:00:08recording over 300 Clips I have finally
- 00:00:11explained every note within gdau all
- 00:00:13notes will be covered in this video this
- 00:00:15has definitely been one of the biggest
- 00:00:16projects I ever did on this channel and
- 00:00:18I want to thank you guys so much for the
- 00:00:19support all right now without further
- 00:00:21Ado let's turn that go. search bar into
- 00:00:23the go. findind
- 00:00:25[Music]
- 00:00:27bar as a game developer I'm constantly
- 00:00:29trying to keep my skills sharp to create
- 00:00:31Innovative games and video content for
- 00:00:33you guys that's when I discovered
- 00:00:34brilliant the free Interactive Learning
- 00:00:36platform that has been a game changer
- 00:00:38for me brilliant is the best way to
- 00:00:40learn math data science and computer
- 00:00:42science interactively with thousands of
- 00:00:44lessons from basic to Advanced topics
- 00:00:46and new lessons being added every month
- 00:00:48there's always something new to learn
- 00:00:49the one thing I love most about
- 00:00:51Brilliance is its interactive approach
- 00:00:52unlike traditional lectures and
- 00:00:54textbooks Brilliance lessons are
- 00:00:55designed to actively engage your mind
- 00:00:57through problem solving exercises
- 00:00:59simulations and real world examples this
- 00:01:01Hands-On approach makes learning fun and
- 00:01:03interactive I personally found brilliant
- 00:01:05math courses to be incredibly helpful I
- 00:01:07used to feel embarrassed about having to
- 00:01:08Google basic math operations but
- 00:01:10brilliant has helped me get back on top
- 00:01:12of my math game the platform's coding
- 00:01:13courses are equally impressive they
- 00:01:15teach the fundamentals of programming in
- 00:01:16a clear and conis of way use practical
- 00:01:19examples that are relevant to the real
- 00:01:20world whether you're a seasoned
- 00:01:22programmer or a complete beginner
- 00:01:24brilliant has courses that will help you
- 00:01:25level up your skills and the best part
- 00:01:27is brilliant is accessible anytime
- 00:01:29anywhere you can learn on your phone
- 00:01:31tablet or PC making it easy to fit
- 00:01:33learning into your busy schedule so if
- 00:01:35you're a game developer looking to level
- 00:01:37up your skills I highly recommend
- 00:01:38checking out brilliant try brilliant for
- 00:01:40free for a full 30 Days by visiting
- 00:01:42brilliant.org luuy or clicking the link
- 00:01:44in the description and the first 200
- 00:01:46people that sign up using my link will
- 00:01:48get 20% off brilliant's annual premium
- 00:01:50subscription that's brilliant.org lucky
- 00:01:53all right onto the
- 00:01:58notes
- 00:02:03the note notes are G those building
- 00:02:05blocks they can be assigned as a child
- 00:02:07of another notes resulting in a tree
- 00:02:09Arrangement a given note can contain any
- 00:02:11number of notes as children these trees
- 00:02:13of notes are what we call a scene a
- 00:02:15scene can be saved to disk and
- 00:02:17instantiated in another scene and these
- 00:02:19combinations of scenes are what make up
- 00:02:21a complete go do game now in case you're
- 00:02:23wondering what kind of notes can I use
- 00:02:25in these scenes you came to the right
- 00:02:27address my friend the note 2D the note
- 00:02:302D is the basis of all 2D notes it keeps
- 00:02:32track of rotation position and skill all
- 00:02:34the notes we're going to cover today
- 00:02:35inherit from the note 2D the camera 2D
- 00:02:39the camera 2D node specifies the points
- 00:02:41from which your scene is viewed it's
- 00:02:42very simple it contains some parameters
- 00:02:44for rotation and position and making
- 00:02:46your camera movement more easy on the
- 00:02:48eyes by setting up camera drag and
- 00:02:50smoothing the animated Sprite 2D and the
- 00:02:52Sprite 2D the Sprite 2D and animated
- 00:02:54Sprite 2D are used to render 2D textures
- 00:02:56to the screen the texture displayed can
- 00:02:58be the region of a larger texture Atlas
- 00:03:00And The Animated Sprite 2D contains a
- 00:03:02great tool for setting up Sprite sheet
- 00:03:04animations the Collision object 2D the
- 00:03:06Collision object 2D cannot be used to
- 00:03:08Standalone but it serves as a base class
- 00:03:09for all 2D objects that have collisions
- 00:03:12it has properties for its Collision
- 00:03:13layer and whether it's enabled or not
- 00:03:15the physics body 2D the physics body 2D
- 00:03:18can also not be used Standalone but
- 00:03:19serves as a base glass for all 2D
- 00:03:21objects that are affected by physics the
- 00:03:24Collision shape and the Collision
- 00:03:25polygon 2D the following notes we're
- 00:03:27about to cover all require a collision
- 00:03:29shape the Collision shape will need to
- 00:03:30be a child of the physics body and you
- 00:03:32can set your Collision shape within the
- 00:03:33Spector here the static body Tod the
- 00:03:36static body Tod is a physics body that
- 00:03:38cannot be moved however other physics
- 00:03:40bodies can be affected by it it can be
- 00:03:42used for things like walls floors or
- 00:03:44ceilings and if you decide to move
- 00:03:46aesthetic body it doesn't push any other
- 00:03:48physics bodies but instead teleports to
- 00:03:50the new location the animatable body 2D
- 00:03:53the animatable body 2D is almost the
- 00:03:55same as a static physics body only this
- 00:03:57physics body can be moved it's still not
- 00:03:59affected by Gra gravity or other physics
- 00:04:00bodies but if you move it in code or an
- 00:04:02animation the other physics bodies in
- 00:04:04its way will be pushed appropriately the
- 00:04:07rigid body Tod the rigid body Tod is the
- 00:04:09physics body that is affected by other
- 00:04:11physics bodies and gravity this is the
- 00:04:13physics body used for all your physics
- 00:04:14items that can be moved and are not
- 00:04:16directly controlled by the player the
- 00:04:18character body 2D the character body 2D
- 00:04:20is a specialized physics body that is
- 00:04:22meant to be controlled by the player it
- 00:04:24contains built in functionality for
- 00:04:25precise movement controlling with code
- 00:04:28within the physics simulation The Joint
- 00:04:302D The Joint 2D cannot be used
- 00:04:32Standalone but it's a base class for all
- 00:04:332D physics joints these are nodes that
- 00:04:35connect two physics bodies together and
- 00:04:37Gau contains the following 2D joints The
- 00:04:40Damp and spring joint 2D The Damp and
- 00:04:42spring joint 2D connects two physics
- 00:04:43bodies together in a spring-- like
- 00:04:45manner it contains parameters for the
- 00:04:46Spring's length stiffness and dampening
- 00:04:49the groove joint Tod the groove joint
- 00:04:51Tod is a bit of a confusing name but it
- 00:04:53connects two physics poies together like
- 00:04:55a piston meaning they can only retract
- 00:04:57and extend in one movement axis and
- 00:05:00finally the pin joint 2D the pin joint
- 00:05:022D can be used to pin two physics bodies
- 00:05:04together they're basically connected at
- 00:05:05one point and are allowed to freely
- 00:05:07rotate in any direction the area Tod the
- 00:05:10area Tod access two things one a
- 00:05:12detection field that checks whether
- 00:05:14Collision objects leave or enter it and
- 00:05:16to an area of space with its own physics
- 00:05:18and audio settings you can change things
- 00:05:20like gravity wind audio channels and
- 00:05:23this allows you to create things like
- 00:05:24underwater areas or zero gravity areas
- 00:05:26within your game the audio listener 2D
- 00:05:29by default the camera will be the point
- 00:05:31that listens to 2D audio but if you want
- 00:05:33to hear your scene from a different
- 00:05:34location you can use this note to set up
- 00:05:36a listening point the audio stream
- 00:05:38player 2D this is the 2D audio source of
- 00:05:40gdau it can be used to play audio from a
- 00:05:42certain point in space and it has all
- 00:05:44the audio settings that you would expect
- 00:05:46volume pitch range attenuation the CPU
- 00:05:49particle 2D and the GPU particle 2D
- 00:05:52these are the 2D particle systems of c a
- 00:05:54lot of fun and cool particle systems can
- 00:05:56be built here there's so many parameters
- 00:05:58way too much to explain here but but I
- 00:05:59find that particle systems are quite
- 00:06:00straightforward I would say a good way
- 00:06:02to learn them is just to add one to your
- 00:06:04seene and start playing with the
- 00:06:05parameters the tail map the ti map node
- 00:06:08is a huge note way too big to explain
- 00:06:10here it is used to build 2D til Maps it
- 00:06:12has a great build-in tool for painting
- 00:06:14your ti maps and setting up tile sets
- 00:06:16cell also contains functionality to
- 00:06:18adding physics layers navigation layers
- 00:06:19to your tail map again a lot of awesome
- 00:06:21functionality here I'll leave a link to
- 00:06:23the god do docs that contains a lot of
- 00:06:24great tutorials now let's talk about 2D
- 00:06:27Lighting in gdau the canvas modulate
- 00:06:29node the canvas modulate node is needed
- 00:06:31to set up 2D shadows in your scene it
- 00:06:32first darkens your scene so that 2D
- 00:06:35lights can light it back up again the
- 00:06:37light 2D node the light 2D node cannot
- 00:06:39be used Standalone but it's the base
- 00:06:40class for all 2D lights it has settings
- 00:06:42for light color energy and it's blend
- 00:06:44mode the point light 2D the point light
- 00:06:47is used to light up a scene from one
- 00:06:49specific point you do however need to
- 00:06:50give it a texture this is the way the
- 00:06:52light looks it's not a point as in
- 00:06:54there's a single point in the center
- 00:06:55that emits light to all directions but
- 00:06:57instead it's this texture that lights up
- 00:06:59your scene so why is it called a point
- 00:07:01light and not a texture light this is
- 00:07:02because it casts Shadows from its Center
- 00:07:04so lighting is done with the texture and
- 00:07:06the shadow casting is done from the
- 00:07:08point the directional light Tod the
- 00:07:10directional light Tod is used to light
- 00:07:12up an entire scene at once is used for
- 00:07:14things like the sun and the moon and the
- 00:07:15directional light Tod shines from one
- 00:07:17angle and does not warp Shadows based on
- 00:07:19its distance like a point light the
- 00:07:21light uder Tod the light uder Tod is the
- 00:07:24shape that is used to cast a shadow in
- 00:07:26your scene you can set up the shape of a
- 00:07:28certain object and based on this it will
- 00:07:29cast shadows in the rest of the scene
- 00:07:32the line 2D the line 2D node does what
- 00:07:34it says on the tin it allows you to draw
- 00:07:352D Lines by adding points to this array
- 00:07:38it is a lot of properties for styling
- 00:07:39the line like setting up his WID taper
- 00:07:42and how the corners of the lines are
- 00:07:43rounded and rendered the marker 2D the
- 00:07:46marker 2D node is a debuging note it's
- 00:07:48just a node 2D only it shows its
- 00:07:49position and rotation in the editor it
- 00:07:51can be used to keep track of invisible
- 00:07:53notes or points in Space the mesh
- 00:07:55instance 2D the mesh instance Tod node
- 00:07:57can be used to render a mesh AK a 3D
- 00:07:59model in 2D it has properties for what
- 00:08:02mesh it renders and its material the
- 00:08:04multi mesh instance 2D the multi mesh
- 00:08:06instance 2D can be used to render a lot
- 00:08:08of meshes efficiently it is recommended
- 00:08:10to be used with a lot of meshes in close
- 00:08:12proximity think for example a field of
- 00:08:14grass a navigation region 2D the
- 00:08:16navigation link 2D and the navigation
- 00:08:18obstacle 2D these are notes to set up
- 00:08:20path finding in 2D they're a bit more
- 00:08:22complicated than the 3D nav finding
- 00:08:23notes as you'll need to set up your own
- 00:08:25navigation regions manually well in 3D
- 00:08:27there's a tool for automatically
- 00:08:28generating your nav mesh there's a great
- 00:08:30read in the docks on how to set up nav
- 00:08:32finding in 2D and I'll leave a link in
- 00:08:33the description the parallx layer and
- 00:08:35the parallx background note the paralex
- 00:08:37layer and the paralex background node
- 00:08:39are used to set up paralex in
- 00:08:40backgrounds in a 2d scene any 2D
- 00:08:43Graphics can be used as long as they're
- 00:08:44a child of its appropriate paral Xing
- 00:08:46layer the path 2D and the path follow 2D
- 00:08:49the path 2D node and the path follow 2D
- 00:08:51node are used to set up a 2d path or
- 00:08:53curve and then bind another node to this
- 00:08:55path using the path follow 2D node the
- 00:08:57polygon 2D the polygon 2D node allows
- 00:09:00you to set up shapes in 2D you can add
- 00:09:01the points of the polygon into the array
- 00:09:03here or drag and drop them in the editor
- 00:09:05right here the rast 2D the rast Tod node
- 00:09:08can be used to check collisions in a
- 00:09:09straight line the node reports on
- 00:09:11whether it hit something the point of
- 00:09:12collision and what it collided with the
- 00:09:14shape cast Tod the shape cast Tod works
- 00:09:17exactly the same as the ray cast Tod
- 00:09:18only it checks for Collision in a line
- 00:09:20using a shape so where a ray cast would
- 00:09:22shoot at an infinitely Thin Line the
- 00:09:23shape cast would shot out in a shape for
- 00:09:25example a rectangle or a circle the
- 00:09:27remote transformed 2D the remote
- 00:09:29transform Tod node can set another
- 00:09:30node's transform to its own it basically
- 00:09:32acts as a parent to that node without
- 00:09:34actually being the parent in the
- 00:09:36hierarchy it contains properties for
- 00:09:37whether to affect the position rotation
- 00:09:39or scale or all of them the skeleton 2D
- 00:09:42the bone 2D and the physical bone 2D
- 00:09:44these notes are all used to set up 2D
- 00:09:46skeleton and 2D skeletal animations
- 00:09:48there is some third party software to
- 00:09:49set up these skeletons but gdau also
- 00:09:51allows you to build your own skeletons
- 00:09:52within kdo there's a lot that goes into
- 00:09:54building and managing your 2D skeletons
- 00:09:56the ducks have a great read on the whole
- 00:09:58process Link in the description the
- 00:10:00visible onscreen Notifier 2D and the
- 00:10:02visible onscreen enabler 2D these nodes
- 00:10:04are used to detect whether a visual is
- 00:10:06on screen or not the visual onscreen
- 00:10:08Notifier sends out a signal to code when
- 00:10:10it is on screen and the visible onc
- 00:10:12screen enabler Tod enables itself when
- 00:10:14it is visible the canvas group the
- 00:10:17canvas group note can be used to merge
- 00:10:18all its children into a single draw call
- 00:10:21this can be useful when you want to
- 00:10:22combine some textures into one for
- 00:10:23example a translucent bottle and its
- 00:10:25contents and finally the back buffer
- 00:10:28copy the back copy note is used to
- 00:10:30capture a region of your screen or your
- 00:10:31whole screen to be used in shaders you
- 00:10:33can Define what part of the screen it
- 00:10:35captures and this texture can be
- 00:10:36accessed within your Shader script with
- 00:10:38the hint uncore screen uncore texture
- 00:10:41variable the no treaty this is the most
- 00:10:44basic treaty note all notes we're going
- 00:10:46to cover today inherit from the note 3D
- 00:10:48it keeps track of position rotation
- 00:10:50skill and visibility and is most used as
- 00:10:53a basis to inherent from or is a parent
- 00:10:55note to contain a bunch more notes the
- 00:10:57marker 3D the marker 3D note is exactly
- 00:10:59the same as the note 3D only it shows
- 00:11:01the axis of the noes within the editor
- 00:11:03it can be useful to keep track of
- 00:11:04invisible notes or a point in space
- 00:11:07visual instance 3D this note is not used
- 00:11:09Standalone but it's a basis for all
- 00:11:11visible notes to inherent from so
- 00:11:13everything that you can see in your
- 00:11:14scene it's based on a visual instance 3D
- 00:11:17it keeps track of what visual layer the
- 00:11:18note is on and it's bounding box so
- 00:11:20basically the space in which the visual
- 00:11:22is contained the geometry instance 3D
- 00:11:25just like the visual instance 3D this no
- 00:11:27is not used standalone but it's a basis
- 00:11:29for all geometry based nodes AKA models
- 00:11:32it keeps track of lighting Shadow and
- 00:11:34LOD settings and it has a very useful
- 00:11:37material override property which can be
- 00:11:39used to easily apply a custom material
- 00:11:40across all material Slots of a model the
- 00:11:43mesh instance 3D this node takes mesh
- 00:11:46data and combined with the two previous
- 00:11:47nodes instantiates that mesh it can be
- 00:11:49used with gados build-in meshes or you
- 00:11:51can import your own models it holds the
- 00:11:53model and all its
- 00:11:55materials the multi mesh instance 3D if
- 00:11:58you intend to to instantiate a bunch of
- 00:12:00meshes like I'm talking more than a
- 00:12:02thousand in a close proximity this not
- 00:12:03allows you to do that with optimized GPU
- 00:12:05performance it has a buil-in population
- 00:12:07tool which allows you to distribute the
- 00:12:09mesh upon another mesh this note
- 00:12:11definitely has a lot more to get into so
- 00:12:12I'll leave the link to the docs down
- 00:12:14below the label 3D the label 3D note is
- 00:12:17used for displaying text in 3D that
- 00:12:19simple the most important property on
- 00:12:20this note is the Billboard flag which
- 00:12:22makes the text face the camera and the
- 00:12:24pixel size and font size properties this
- 00:12:26allows you to change the resolution of
- 00:12:27the text decal the decal node is used to
- 00:12:31project the texture onto geometry Deal's
- 00:12:34most famous use is in bullet holes and
- 00:12:36walls or sprays in games like Team
- 00:12:37Fortress 2 and Counterstrike the Sprite
- 00:12:403D and animated Sprite 3D Sprite 3D and
- 00:12:42animated Sprite 3DS are used for
- 00:12:44rendering 2D Sprites in 3D they differ
- 00:12:46from just drawing a texture on the basic
- 00:12:48plane because they have built in
- 00:12:49features like a billboard property which
- 00:12:51makes the Sprite face the camera and
- 00:12:53animation properties that allow you to
- 00:12:54easily Implement 2D Animation Sprite
- 00:12:57sheets into 3D the world environment Noe
- 00:13:00this is one of the most useful notes in
- 00:13:02gdau the world environment note allows
- 00:13:04you to change the global lighting
- 00:13:05settings of your scene at various
- 00:13:07postprocessing effects like tone mapping
- 00:13:09ssao and depth F field for example and
- 00:13:12it allows you to set up effects like
- 00:13:14volumetric fog and Global
- 00:13:16illumination the fog volume note when
- 00:13:18volumetric fog is enabled in the world
- 00:13:20environment this note allows you to add
- 00:13:22volumes of fog to your scene GPU
- 00:13:25particles 3D this is the particle system
- 00:13:27of Gau it really deserves a video of its
- 00:13:29own because it has a lot of features and
- 00:13:31settings the most important things to
- 00:13:33know are the emitting settings can be
- 00:13:34changed in the process material property
- 00:13:36where you need to create a new process
- 00:13:38material and the visual of the particle
- 00:13:40itself can be set up in the draw passes
- 00:13:42again there's way too much to cover here
- 00:13:43in this video but most of the properties
- 00:13:45are very straightforward so definitely
- 00:13:47just play around with it and see what
- 00:13:49you can make GPU particle attractors and
- 00:13:52GPU particle condition conditions these
- 00:13:54six nodes are used to manipulate
- 00:13:56particles in the GPU particle system
- 00:13:58node the Collision nodes are used as you
- 00:14:00would expect and they can be used to
- 00:14:01give the particles something to collide
- 00:14:03with and the attractors can be used to
- 00:14:04manipulate the flow of the particles by
- 00:14:06pushing or pulling them the light 3D Noe
- 00:14:09the light 3D node is once again one of
- 00:14:11those noes that cannot be used
- 00:14:12Standalone but instead serves as a bases
- 00:14:15for various different lights in gdau it
- 00:14:17contains properties like light strength
- 00:14:19color and size and Shadow settings these
- 00:14:22settings will be applied to the
- 00:14:23following different lights the
- 00:14:25omnidirectional light 3D this is the
- 00:14:27most basic type of light it shines from
- 00:14:29one point to all directions around it it
- 00:14:31contains two important properties its
- 00:14:33range which determines the distance the
- 00:14:35Light reaches and its attenuation which
- 00:14:37controls the fall off meaning how much
- 00:14:39the light dims over the distance that it
- 00:14:41travels the spot light 3D this light is
- 00:14:43very similar to the omnidirectional
- 00:14:45lights in the way that they both have a
- 00:14:46range and an attenuation but as you can
- 00:14:48imagine the spot light 3D has a specific
- 00:14:50angle in which it emits light giving the
- 00:14:52spotlight effect the directional light
- 00:14:543D this light is a little different it
- 00:14:56lights up the scene from one angle and
- 00:14:58has no range or fallof it's used to set
- 00:15:00up a Sun or a Moonlight in your scene
- 00:15:02and has a lot of properties for tweaking
- 00:15:04its shadow settings the most important
- 00:15:06properties are the fade start and the
- 00:15:07max distance these properties allow you
- 00:15:09to tweak how far away from the camera
- 00:15:11the Shadows are rendered CSG shapes CSG
- 00:15:15shapes or constructive solid geometry
- 00:15:17shapes are meant to be used in
- 00:15:18prototyping and allow you to easily
- 00:15:20combine and subtract 3D shapes using
- 00:15:22boan operations with the option to
- 00:15:24enable collisions they are great for
- 00:15:26quickly combining shapes and blocking
- 00:15:28out stages and Interiors they can be
- 00:15:30used Standalone or combined into new
- 00:15:32shapes using the CSG combiner
- 00:15:34node let's get into the physics the soft
- 00:15:37body 3D this is kind of a weird one the
- 00:15:40soft body 3D node inherit from the
- 00:15:42geometry node and converts the geometry
- 00:15:44to a soft body physics simulation it is
- 00:15:46currently quite buggy so don't use it
- 00:15:48for gameplay elements but they are great
- 00:15:50for quick visuals like flags and cloth
- 00:15:53the Collision object 3D this is another
- 00:15:55note that cannot be used Standalone but
- 00:15:56it serves as the basis for all 3D notes
- 00:15:58that collide with other objects the most
- 00:16:00important properties are its Collision
- 00:16:02mask and layer these layers allow you to
- 00:16:04specify what objects can collide with it
- 00:16:07and what objects it can collide with
- 00:16:09these may sound like the same thing but
- 00:16:10this is actually a very important
- 00:16:12distinction for example you could have a
- 00:16:14door that triggers a cut scene you would
- 00:16:16want your enemies and your players to
- 00:16:17collide with the door so they can move
- 00:16:19past it but you would only want the door
- 00:16:21to collide with the player to trigger
- 00:16:22the cut scene upon that Collision the
- 00:16:25physics body 3D again a note that does
- 00:16:27nothing on its own but serves as a
- 00:16:29basics for all physics bodies it
- 00:16:30contains some properties for locking
- 00:16:32certain movement or rotation axis of the
- 00:16:34physics body the following notes we are
- 00:16:36about to cover our different types of
- 00:16:37physics bodies all these physics bodies
- 00:16:39will need a collision shape to work the
- 00:16:41Collision shape defines the shape of
- 00:16:43physics bodies and G do comes with a lot
- 00:16:45of default shapes like boxes capsules
- 00:16:46and squares but of course you can import
- 00:16:48or create your own shapes athetic body
- 00:16:513D athetic body 3D node is a physics
- 00:16:54body that stays in one place meaning it
- 00:16:56cannot be pushed around or dragged down
- 00:16:57by gravity it is used for things like
- 00:16:59walls and floors and if the static body
- 00:17:01is moved for example by code it is in a
- 00:17:04physic sense teleported to the new
- 00:17:06location so it won't push balls up or
- 00:17:08move things to the side when it's moved
- 00:17:10you can however do that with a
- 00:17:11animatable body 3D this is a static
- 00:17:14physics body in the way that it cannot
- 00:17:15be pushed or pulled down by gravity but
- 00:17:17it does have the ability to push or pull
- 00:17:20other objects so when you move this
- 00:17:21within an animation or within code it
- 00:17:23will apply the appropriate effects to
- 00:17:25the physics bodies in its way the rigid
- 00:17:26body 3D this is the physics body that is
- 00:17:29used for almost all physics objects not
- 00:17:31controlled by the player so falling
- 00:17:33boxes flying arrows you name it it is
- 00:17:36pulled down by gravity and can collide
- 00:17:37with other physics bodies and it has
- 00:17:39properties for defining its mass
- 00:17:41bounciness and friction the character
- 00:17:43body 3D character body 3DS are types of
- 00:17:46physics bodies that can be controlled by
- 00:17:47the player they contain a lot of
- 00:17:49built-in features to make movement easy
- 00:17:50to control with code and GD comes with a
- 00:17:52beautiful template that demonstrates
- 00:17:54these
- 00:17:55features the area 3D note this note was
- 00:17:58a little confusing to me at first but
- 00:18:00the area 3D node acts as two things one
- 00:18:02a detection field it detects when
- 00:18:04Collision objects enter it and leave it
- 00:18:06so it can be used for a trigger area or
- 00:18:08a Teleport area and two it can be used
- 00:18:10to define an area with its own physics
- 00:18:12and audio settings you can change things
- 00:18:14like gravity wind and the audio channel
- 00:18:16that the sound is going through this
- 00:18:17allows you to create areas like
- 00:18:19underwater areas or zero gravity areas
- 00:18:21in your game camera 3D the camera 3D
- 00:18:24node shows what is visible from its
- 00:18:26location and shows that on the nearest
- 00:18:27viewpoint by default this is your game
- 00:18:29window but a camera can also be used to
- 00:18:31render a secondary viewport for example
- 00:18:33a mini map or a mirror a camera has
- 00:18:35properties for what visual layer it sees
- 00:18:37it's fov its near and far clipping point
- 00:18:39and it has two slots for a custom World
- 00:18:41environment or camera attributes which
- 00:18:43can be used to add post processing
- 00:18:44effects to the camera the vehicle body
- 00:18:46and vehicle wheel 3D these nodes
- 00:18:48Implement all the logic needed to
- 00:18:49simulate a car and are based on the
- 00:18:51raycast vehicle system personally I have
- 00:18:53not had great results with the vehicle
- 00:18:55body 3D and even the Ducks note that
- 00:18:56there are known issues with the notes
- 00:18:57and the writing your own integration is
- 00:18:59advised for a more advanced solution The
- 00:19:02Joint 3D The Joint 3D cannot be used
- 00:19:04Standalone but it serves as a base class
- 00:19:06for making physics joints in this note
- 00:19:08the two physics bodies that are
- 00:19:09connected by The Joint are assigned and
- 00:19:11G comes with the following physics
- 00:19:12joints the hinge joint 3D the hinge
- 00:19:15joint works as you would expect it
- 00:19:16restricts the rotation of two physics
- 00:19:18bodies in a hinge likee Manner and it
- 00:19:20has properties for setting its limits
- 00:19:21behavior and applying a motor Force to
- 00:19:23the hinge the cone twist joint 3D this
- 00:19:26joint acts like a ball and socket joint
- 00:19:27it is proper for its range or swing span
- 00:19:30and its rotation or twist span the
- 00:19:32slider joint 3D the slider joint
- 00:19:34restricts the movement of a physics body
- 00:19:36along a certain axis the best way to
- 00:19:38think about a slider joint is to see it
- 00:19:39as a piston it can only extend and
- 00:19:41retract in One Direction pin joint 3D
- 00:19:44the pin joints can be used to pin two
- 00:19:45physics bodies together while allowing
- 00:19:47them to freely rotate I think the best
- 00:19:49way to think about this joint is like a
- 00:19:50chandelier from the ceiling it's hanging
- 00:19:52from one point but you can twist it and
- 00:19:54turn it in any way you want the generic
- 00:19:576df joint joint the generic six degrees
- 00:19:59of freedom joint can be shaped into a
- 00:20:01lot of different physics joints it
- 00:20:03allows you to tweak the limits forces
- 00:20:05and feels of all three rotation and
- 00:20:07movement axis this physics joint is
- 00:20:09great for Designing custom complex
- 00:20:10physics joints the skeleton 3D node the
- 00:20:13skeleton 3D node provides an interface
- 00:20:14for managing 3D skeletons and 3D
- 00:20:16skeletal animations you will probably
- 00:20:18never add a skeleton note yourself as
- 00:20:20gdau does not contain functionality for
- 00:20:22building 3D skeletons but when importing
- 00:20:24a model with a skeleton gdau uses this
- 00:20:26note as an interface for all your
- 00:20:27skeletal needs and it contains an
- 00:20:29hierarchy of all the bones in your
- 00:20:30skeleton the bone attachment 3D this
- 00:20:33note allows you to easily attach a note
- 00:20:35or a group of notes to a bone in a
- 00:20:36skeleton 3D think armor pieces weapons
- 00:20:39or attachments that need to be welded to
- 00:20:41the Bone to copy its transform
- 00:20:42throughout an animation or R do
- 00:20:44simulation the root motion view note
- 00:20:47this is an editor only debuging note all
- 00:20:49it does is show a grid in the editor and
- 00:20:51it's intended to be used with root
- 00:20:52motion animations these are animations
- 00:20:55that have the movement of the character
- 00:20:56baked into the animation and it can can
- 00:20:58be used for a ground reference to root
- 00:20:59the animation the following notes are
- 00:21:01all used to set up different kinds of
- 00:21:03global illuminations in your scene the
- 00:21:05go do docks has a great read on what
- 00:21:07type of global illumination is best for
- 00:21:08your scene and how to implement that
- 00:21:10type I'm going to go over them here real
- 00:21:11quick but definitely give the dock a
- 00:21:13read don't worry it has pictures the
- 00:21:15voxal GI note the voxal GI is one of the
- 00:21:17heavier ones but it's quite easy to set
- 00:21:19up just by adding the voxal GI notes and
- 00:21:21clicking bake right here please note
- 00:21:23that this does not bake the lights and
- 00:21:25shadows into your scene just the foxal
- 00:21:27GI map can still change the lighting
- 00:21:29after your scene has been baked the
- 00:21:30light map GI and light map probe the
- 00:21:33light map GI does bake lights and
- 00:21:35shadows into your scene you will need to
- 00:21:36set up a second UV map on your models
- 00:21:38for the lighting data to bake onto you
- 00:21:40do however get the option to bake only
- 00:21:42certain lights and I'll leave a great
- 00:21:43link to tutorial down below the
- 00:21:45reflection probe the reflection probe is
- 00:21:47used to capture a reflection map it
- 00:21:48basically takes a 360 photo from its
- 00:21:50location and all reflective materials
- 00:21:52can sample from this photo to generate
- 00:21:54realistic Reflections the reflection
- 00:21:56probe has a low performance cost and it
- 00:21:57gives great great results definitely try
- 00:21:59this one out the Importer mesh instance
- 00:22:013D this one I need your help with it has
- 00:22:04no documentation and I couldn't find
- 00:22:06anything about it online I asked for it
- 00:22:08on Reddit and some people thought it was
- 00:22:09just a port of the 2D mesh importer or
- 00:22:12that was used in the import process but
- 00:22:14actually not used by the user within a
- 00:22:16project I'm not sure if anybody knows
- 00:22:18let me know the visible on screen
- 00:22:20Notifier 3D and the visible on screen
- 00:22:22enabler 3D these two notes are used to
- 00:22:24detect whether the camera can see a
- 00:22:26certain note the Notifier sens out
- 00:22:28signal when the visual node is seen and
- 00:22:29the enabler enables the node when it is
- 00:22:32seen by the camera the grid map node a
- 00:22:34grid map is basically a 3D to set you
- 00:22:36can set up a mesh library that acts as
- 00:22:38tiles within the ti set and you can
- 00:22:39paint those into a grid it also allows
- 00:22:41for vertical tiling using the floor
- 00:22:43parameter defl Logan has a great
- 00:22:45demonstration of this in his video T
- 00:22:47dungeons link is in the description the
- 00:22:49audio listener 3D by default the camera
- 00:22:52will be the point that listens to 3D
- 00:22:53audio but in case you want your ears to
- 00:22:55be somewhere else than your eyes you can
- 00:22:57use this notes to to set up a listening
- 00:22:58Point anywhere in your scene the audio
- 00:23:00stream player 3D this is the 3D audio
- 00:23:03source of gdau it can be used to play
- 00:23:04audio from a certain point in space and
- 00:23:06it has all the audio settings that you
- 00:23:07would expect from an audio Source it can
- 00:23:09also be given an emission angle which
- 00:23:11can limit the angle that the audio can
- 00:23:12be heard from the navigation link
- 00:23:15navigation obstacle navigation region
- 00:23:17and navigation agent 3D these notes are
- 00:23:19used to set up a nav mesh within your
- 00:23:21scene for path finding the navigation
- 00:23:22region 3D looks at your scene and sets
- 00:23:24up a mesh of all the services that can
- 00:23:26be walked on and how they can be
- 00:23:28connected the navigation agent 3D can
- 00:23:30then Traverse your map in a natural and
- 00:23:31efficient flow I personally had great
- 00:23:33results using the nav meshes within gdo
- 00:23:36but they're still marked as experimental
- 00:23:37so they might change in the future keep
- 00:23:39that in mind the occluder instance 3D
- 00:23:41the occluder instance 3D note can be
- 00:23:43used to improve performance by hiding
- 00:23:45objects that aren't visible to the
- 00:23:46camera please take note that the
- 00:23:47occluder is recommended to be used on
- 00:23:49static objects as moving the occluder
- 00:23:51instance 3D will trigger a recompilation
- 00:23:53that can take several frames it is also
- 00:23:55recommended to use them in closed or
- 00:23:57semi-closed eror areas as in large open
- 00:23:59areas lods and visibility ranges are
- 00:24:01recommended to improve performance the
- 00:24:03path 3D and path follow 3D these are
- 00:24:06super fun I didn't know about them yet
- 00:24:08but they can be used to create 3D paths
- 00:24:09or 3D curves and bind a note to this
- 00:24:12path they're great for setting up small
- 00:24:14animations and quick organic flows
- 00:24:15within your game the raycast 3D the
- 00:24:18raycast 3D node shoots out array in a
- 00:24:20given Direction and reports on whether
- 00:24:22it hit something and what it hit it's
- 00:24:24great for a lot of uses but it's most
- 00:24:25used in shooting mechanics and
- 00:24:27interaction mechanics
- 00:24:28the shape cast 3D the shape cast 3D
- 00:24:30works the same as the raycast 3D only
- 00:24:32instead of shooting an infinitely thin
- 00:24:34Ray it shoots out a shape so you can
- 00:24:35check for collisions in larger areas the
- 00:24:37spring arm 3D the spring arm 3D is
- 00:24:39basically a raycast 3D only it has to
- 00:24:41build in functionality to move all its
- 00:24:43children to the point of collision the
- 00:24:45best way to think about this note is I
- 00:24:46think a laser pointer if you have the
- 00:24:48laser point as a child of the spring arm
- 00:24:503D it will automatically act like a
- 00:24:52laser pointer by moving that laser point
- 00:24:54to the point of collision the remote
- 00:24:56transform 3D the this note copies
- 00:24:58another not's transform to its own so
- 00:25:00you can parent a note to this note
- 00:25:02without it actually being the parent in
- 00:25:04the IR key sounds a little confusing but
- 00:25:06once you see it it's not that confusing
- 00:25:08the XR camera 3D the XR no 3D the open
- 00:25:12XR hands the XR anchor 3D the XR
- 00:25:15controller 3D and the XR origin 3D pH
- 00:25:19these are all notes Ed to set up vr/ XR
- 00:25:21games I currently don't have a
- 00:25:22functional VR setup and I haven't played
- 00:25:24with these myself and instead of
- 00:25:26guesstimating what all these notes do
- 00:25:27and maybe spreading misinformation I'll
- 00:25:29leave this to the father of varar in
- 00:25:31gdau himself Bastian link is in the
- 00:25:33description of this video the container
- 00:25:35note the container note is the base
- 00:25:37class of all different types of
- 00:25:38containers a container is a type of note
- 00:25:40that holds other noes within it and
- 00:25:42determines how they are positioned the
- 00:25:43aspect ratio container the aspect ratio
- 00:25:46container is a type of container Noe
- 00:25:48that sets an aspect ratio so no matter
- 00:25:50what the resolution of your game is or
- 00:25:51how your UI is resized this container
- 00:25:54will keep its aspect ratio it's great
- 00:25:56for things like images or videos to need
- 00:25:57to be fully displayed the box container
- 00:26:00the vbox container and the hbox
- 00:26:01containers the vbox and the hbox
- 00:26:03containers are your bread and butter of
- 00:26:05most UI everything within these
- 00:26:07containers will be aligned horizontally
- 00:26:08or vertically most uis can be boiled
- 00:26:11down to vbox and hbox containers the
- 00:26:13center container the center container is
- 00:26:15super simple and super useful all the
- 00:26:17children within this container will be
- 00:26:18put perfectly in the center the flow
- 00:26:21containers the flow containers allow
- 00:26:22elements to be positioned in the same
- 00:26:24way that text would be positioned
- 00:26:26meaning it will put them from right to
- 00:26:27left until they reach the end of the
- 00:26:29container at which point it will create
- 00:26:30a new line underneath just like words in
- 00:26:32a sentence in a text box the grid
- 00:26:35container the grid container is kind of
- 00:26:36self-explanatory but it displays
- 00:26:38elements in a grid most used for things
- 00:26:40like inventories you can set the amount
- 00:26:42of columns in your container and the
- 00:26:43elements will be added in text-like
- 00:26:45manner meaning from left to right and
- 00:26:47then onto a new line the H split and the
- 00:26:49V split container the split container
- 00:26:51allows you to split your view with this
- 00:26:53little handle in between uh Gau editors
- 00:26:55build up of the split containers a lot
- 00:26:57of softare is built up like this yeah it
- 00:26:59might be very useful if you want to
- 00:27:00display a lot of data the margin
- 00:27:02container this container allows you to
- 00:27:04add custom spacing to your elements very
- 00:27:06simple and by the way the settings for
- 00:27:08this container are in the team overwrite
- 00:27:10they're not in the noes property but
- 00:27:12yeah down there kind of confusing but
- 00:27:13yeah panel container the panel container
- 00:27:16is a very basic container uh it's
- 00:27:17basically the base container but it has
- 00:27:19a little background like a panel can be
- 00:27:22used for grouping things together
- 00:27:23visually the scroll container the scroll
- 00:27:25container creates a container that can
- 00:27:27be scrolled using the mouse wheel they
- 00:27:28can be scrolled horizontally and
- 00:27:30vertically but please take note that
- 00:27:31there's only supposed to be one other
- 00:27:33container within the scroll container
- 00:27:35meaning that you'll need to add a v box
- 00:27:36or an hbox and then add your elements
- 00:27:38within there for the scroll container to
- 00:27:40work properly the tab container the tab
- 00:27:42container will set up this tab based
- 00:27:44system all the elements within the tab
- 00:27:45container will get their own tab so
- 00:27:47again it's meant to be used with other
- 00:27:49containers within the tab container uh
- 00:27:51the tabs can be accessed here at the top
- 00:27:53and they'll get the name of the note uh
- 00:27:56that is in the tab container so those
- 00:27:57are all containers by combining these
- 00:27:59containers and putting containers within
- 00:28:01containers you'll be able to create
- 00:28:03almost any layout you can think of now
- 00:28:05we're going to get into the elements
- 00:28:06that you're going to put inside of these
- 00:28:08containers the label the label is the
- 00:28:10basic text display of gdau it allows you
- 00:28:11to display a single line of text or
- 00:28:13whole paragraphs the rich text label the
- 00:28:16rich text label is almost the same as
- 00:28:17the label note only it allows for things
- 00:28:19like bold text italic text and other
- 00:28:21text highlighting using these tags the
- 00:28:23color wct the color wct is just that
- 00:28:25it's a rectangle that you can set a
- 00:28:27color to cre for backgrounds or just
- 00:28:28blocking out UI the texture direct it's
- 00:28:31basically the same as the color direct
- 00:28:32only instead of a color it displays an
- 00:28:34image the video stream player the video
- 00:28:37stream player allows the user to view
- 00:28:38video within your UI the separator the H
- 00:28:42separator and the V separators these are
- 00:28:44just little Lines within your elements
- 00:28:45you know they're also used a lot in text
- 00:28:47documents just these lines to separate
- 00:28:48certain parts yeah very simple the panel
- 00:28:51the panel is basically the background
- 00:28:53component of the panel container I don't
- 00:28:55recommend using the panel on its own
- 00:28:56it's better to be used with the panel
- 00:28:57container but in case you just need a
- 00:28:59panel like a random loose panel you can
- 00:29:01use it here the nine patch W these are
- 00:29:03actually very nice the nine patch W
- 00:29:05allows you to set up a responsive
- 00:29:06texture it basically keeps the corners
- 00:29:08of the texture intact and then stretches
- 00:29:10the sides and the center to match the
- 00:29:11panels width and height now we're going
- 00:29:14to get into input elements I'd quickly
- 00:29:16like to explain how you use these uh
- 00:29:17every input element has a signal meaning
- 00:29:20that if you go to the inspector to the
- 00:29:21Note Tab right here then you can see all
- 00:29:24its signals so basically all it
- 00:29:25different types of input and by double
- 00:29:26clicking that you can connect them to
- 00:29:28any script you want in these scripts
- 00:29:29they will then create a function that is
- 00:29:31called when you're using the input very
- 00:29:33simple the base button the button and
- 00:29:35the textured button these are all your
- 00:29:37basic buttons they do what you expect
- 00:29:39the base button is sted using a team or
- 00:29:41its team overwrite and the textured
- 00:29:43button can be given a custom texture
- 00:29:44these are great for like your special
- 00:29:46big play now buttons the link button
- 00:29:48this is just another basic button but it
- 00:29:50is styled like a link meaning the text
- 00:29:51is in Boldt and it's underlines how you
- 00:29:53would see links in a web page for
- 00:29:55example the checkbook and the check
- 00:29:56button these are toggle buttons meaning
- 00:29:59that they can be on or off and they will
- 00:30:00retain their state great for binary
- 00:30:02settings the menu button the menu button
- 00:30:05opens a little menu when pressed you can
- 00:30:07build your menu here within these
- 00:30:09parameters the option button the option
- 00:30:11button opens this little drop-down
- 00:30:13selector the item chosen within this
- 00:30:15dropdown becomes the current item you
- 00:30:17have seen this type of button used for
- 00:30:18things like resolution selection within
- 00:30:20games the Color Picker button the Color
- 00:30:23Picker button opens this little Color
- 00:30:24Picker menu you can select the color
- 00:30:26it's all very straightforward the line
- 00:30:28edit the line edit is a single line text
- 00:30:30field it's got properties for formatting
- 00:30:32and max length and it also got property
- 00:30:34for rendering it as a secret for things
- 00:30:36like passwords the text edit and the
- 00:30:39code edit the text edit and the code
- 00:30:40edit are both input text Fields meaning
- 00:30:42they allow for multiple lines of text
- 00:30:44the code edit is actually kind of insane
- 00:30:46it's got a whole setup for setting up
- 00:30:48code completion gutters line numbering
- 00:30:50setting break points it's basically the
- 00:30:52build-in code editor of gdo range the
- 00:30:55following notes are all range notes
- 00:30:56meaning they're used used to display or
- 00:30:58take input of a value within a range the
- 00:31:00progress bar and the textured progress
- 00:31:02bar these are super straightforward
- 00:31:04progress bars are used a lot in video
- 00:31:05games for things like loading bars and
- 00:31:07health bars the spin box spin boxes are
- 00:31:09these little number input Fields with
- 00:31:11have the arrows next to them allowing
- 00:31:12you to increase and decrease the value
- 00:31:14by clicking the little arrows the scroll
- 00:31:16bar the H scroll bar and the V scroll
- 00:31:18bar these are the scroll bars at the
- 00:31:19sides of the scroll container in case
- 00:31:21you're building some crazy custom UI and
- 00:31:23you want to add your own functionality
- 00:31:25to these loose scroll bars you can add
- 00:31:27them in most cases however you're just
- 00:31:29going to want to use the scrollable
- 00:31:30container and not these loose scroll
- 00:31:32bars the slider the H slider and the V
- 00:31:34slider these are your sliders allowing
- 00:31:36you to grab the handle and select the
- 00:31:37value within a range very simple the
- 00:31:40item list the item list allows you to
- 00:31:42create a clickable menu of items that
- 00:31:44again can be created here within the
- 00:31:46expector it's basically the menu of the
- 00:31:47menu button without having to click a
- 00:31:49button to open it the menu bar the menu
- 00:31:52bar allows you to set up a row of drop-
- 00:31:54down menus you will need to use popup
- 00:31:56menu notes uh for every drop down within
- 00:31:58the menu bar and it can be populated the
- 00:32:00same way as the menu button or the item
- 00:32:01list the tab bar the tab bar is
- 00:32:04basically the top of the tab container
- 00:32:06in case you want to build your own
- 00:32:07functionality and just have the tab bar
- 00:32:09instead of the whole container you can
- 00:32:10use that here the reference rect the
- 00:32:13reference rect is a debugging note it
- 00:32:14just renders a wct in the editor and can
- 00:32:16be useful for positioning notes uh
- 00:32:18within empty space the tree the tree
- 00:32:21node renders a tree the same way the
- 00:32:22hierarchy of your scene is rendered
- 00:32:24great for displaying branching data like
- 00:32:26complicated Quest l or something the
- 00:32:28graph node and the graph edit the graph
- 00:32:30node and a graph edit can be used to set
- 00:32:32up and render graphs however they're
- 00:32:34going to get a big overhaul in the
- 00:32:35coming updates so I would not recommend
- 00:32:37learning them now but instead holding
- 00:32:39off until the new updates to learn new
- 00:32:41ones and finally the touchcreen buttton
- 00:32:43all of gd's UI elements work with a
- 00:32:45touchcreen by default but in case you
- 00:32:47want to map actions like in your input
- 00:32:49map to unscreen buttons you can do that
- 00:32:51with the touchcreen button the control
- 00:32:53noes this is like I said before the base
- 00:32:55note of all UI noes every everything
- 00:32:57inherits from this Noe and it's got a
- 00:32:58lot of parameters uh a lot of these
- 00:33:00you're never going to touch and you
- 00:33:01should never touch but I'm just going to
- 00:33:03explain them anyway so you'll know
- 00:33:04everything about every note at the end
- 00:33:06of this video clip contents this
- 00:33:08parameter determines whether UI notes
- 00:33:10within this note will be cut off when
- 00:33:12they're outside of the note meaning that
- 00:33:14if a text overflows outside of its text
- 00:33:16box for example it will be cut off or
- 00:33:18you can still see it out of bounds
- 00:33:20custom minimum size this parameter sets
- 00:33:22a minimum size for your UI Element no
- 00:33:24matter what the element will never be
- 00:33:25smaller than the size set here layout
- 00:33:27Direction This determines whether the
- 00:33:29elements within this element are aligned
- 00:33:31from left to right or from right to left
- 00:33:33it also contains a setting for copying
- 00:33:34whatever it's parent has for a layout
- 00:33:36direction or based on the current
- 00:33:37localization layout mode this parameter
- 00:33:40determines whether the node's location
- 00:33:41is set with a hardcoded x and yv value
- 00:33:44or by its anchors Now setting a UI
- 00:33:46elements position by a hardcoded x and
- 00:33:48yv value can be useful in some rare
- 00:33:49cases but 99% of the time you want to
- 00:33:51set this to Anchored mode anchored mode
- 00:33:53allows your elements to be resized and
- 00:33:55repositioned based on the viewport side
- 00:33:57Dev making them responsive so a lot of
- 00:33:59the times you're going to want to use
- 00:34:00this but in case you're making some Jam
- 00:34:01game that only is going to run at one
- 00:34:03resolution you might want to set your
- 00:34:04elements hardcoded now you can set your
- 00:34:06layout mode and anchor type within this
- 00:34:08menu here but a way easier option is to
- 00:34:10use the little menu at the top of the UI
- 00:34:12right here the transform here you can
- 00:34:14find your size position rotation and
- 00:34:16scale of your elements you can tweak
- 00:34:18these settings by hand but once you're
- 00:34:19using the anchor system these values
- 00:34:21will be set automatically and you can't
- 00:34:23touch them or you won't need to touch
- 00:34:24them localization these parameters can
- 00:34:27said if you want the text within your
- 00:34:28element to be translated to another
- 00:34:29language you have set up in your game
- 00:34:31the tool tip the tool tip is the little
- 00:34:33message that pops up when you're
- 00:34:34hovering your mouse over an element you
- 00:34:36can set this in the parameter here focus
- 00:34:38a UI element's Focus basically means
- 00:34:40it's selected in well-made UI you can
- 00:34:42navigate between buttons and inputs
- 00:34:44using tab or the arrow keys in this
- 00:34:46parameter you can set up the notes
- 00:34:48neighbors meaning what element should we
- 00:34:50focus next when you press the tab key or
- 00:34:52what the next focused element should be
- 00:34:53when you press the up or the down key
- 00:34:55when you're building a game for a PC and
- 00:34:56you're using the mouse it's not
- 00:34:58necessary to have a good Focus layout
- 00:35:00but it's very easy to set up and once
- 00:35:02you have it set up you gain instant
- 00:35:03controller support because with a
- 00:35:05controller you can navigate focus of a
- 00:35:06UI the mouse the filter and force pass
- 00:35:09scroll event are a bit complicated and
- 00:35:11in 99% of the cases you will not need to
- 00:35:13change them but I'll go over them real
- 00:35:15quick the filter determines how the node
- 00:35:16handles Mouse input signals by default
- 00:35:19it is set to stop meaning that if you
- 00:35:20click on an element the mouse click
- 00:35:22stops there and the click doesn't go
- 00:35:23through to the elements underneath it
- 00:35:25you can also set it to pass meaning that
- 00:35:26click will go through this element and
- 00:35:28click on something underneath the
- 00:35:29element but like I said in 99% of the
- 00:35:32cases you just want your mouse to stop
- 00:35:33on the element that it clicked on and
- 00:35:35not go through it then the force pass
- 00:35:36scroll event is there because we want to
- 00:35:38make an exception for this behavior when
- 00:35:39scrolling your mouse wheel because if
- 00:35:41you're scrolling and you're hovering
- 00:35:43over a button you do not want that
- 00:35:44scroll event to stop at the button you
- 00:35:46want it to go through to the scrollable
- 00:35:48list so that the list can scroll don't
- 00:35:50worry if these last two don't make any
- 00:35:51sense to you the default settings are
- 00:35:53what you're going to need for most UI
- 00:35:54cases the last parameter in the mouse
- 00:35:56category is surprisingly very simple
- 00:35:58it's the cursor shape so you can have
- 00:35:59like the little loading icon or like the
- 00:36:01canceled icon or all the different Mouse
- 00:36:03pointers you can set whatever you want
- 00:36:05up in here the input this one only
- 00:36:07contains one parameter the shortcut
- 00:36:09context uh in gdau you can set shortcuts
- 00:36:11for buttons so for example contrl Z
- 00:36:14would be an undo button somewhere on
- 00:36:15your screen and within here you can set
- 00:36:17an element that needs to be in focus for
- 00:36:19this shortcut to work so for example if
- 00:36:21you need to be focused on your main
- 00:36:22window when pressing contrl C or contrl
- 00:36:24V you can select the main window here so
- 00:36:26you don't copy and paste everywhere at
- 00:36:28once I think this setting is more used
- 00:36:30for like software or like really
- 00:36:32complicated uis and not that much in
- 00:36:34game development but yeah that's what it
- 00:36:35means team teams are just that they
- 00:36:38allow you to create custom UI teams by
- 00:36:40creating one right here and then in the
- 00:36:42team menu right here you can pick a new
- 00:36:44element with the little picker and
- 00:36:45change all its styling options however
- 00:36:47you don't need to build a completely
- 00:36:49custom team for every type of styling
- 00:36:50that you want to do as every element
- 00:36:52also contains team overrides meaning
- 00:36:54that in the inspector here you can can
- 00:36:56set its own parameters so without a
- 00:36:58complete theme just for this button or
- 00:37:00just this text label however if you're
- 00:37:02planning to build a bigger UI system
- 00:37:03building a complete custom team can be a
- 00:37:05great all-in-one
- 00:37:07solution the viewport the viewport is
- 00:37:10quite self-explanatory it's a view into
- 00:37:12your game so whatever UI 3D scene or 2D
- 00:37:15scene you are rendering it is shown on
- 00:37:17the viewport by default there is one
- 00:37:19viewport at the top of every scene that
- 00:37:20you don't see so you don't need to add
- 00:37:22one yourself unless you want to create a
- 00:37:24secondary Viewpoint for which you'll use
- 00:37:27the SUB viw port and a SUB viw port
- 00:37:29container the SUB viw port and a SUB viw
- 00:37:31port container are notes that are used
- 00:37:33to set up a secondary view of in your
- 00:37:34game they're most famously used for
- 00:37:36things like mini Maps mirrors and other
- 00:37:38ways to render a second camera in your
- 00:37:40game the window node the window node is
- 00:37:42also quite self-explanatory the node
- 00:37:44creates a window this can either be a
- 00:37:46native Windows Linux or Mac window or an
- 00:37:48embedded window within your game your
- 00:37:50game can consist of however many windows
- 00:37:52you want a secondary window can be super
- 00:37:54helpful for displaying useful debugging
- 00:37:55information the accept dialogue and the
- 00:37:57confirmed dialogue notes the accept and
- 00:37:59confirmed dialogue notes are basic
- 00:38:01window pop-ups the accept dialogue pops
- 00:38:03up a window that gives the user one
- 00:38:04option only to accept and the confirm
- 00:38:07dialogue will ask the user whether to
- 00:38:08accept or cancel the file dialogue the
- 00:38:11file dialogue notice a pre-built window
- 00:38:13that allows the user to select a file
- 00:38:14within the file system super useful for
- 00:38:16saving and loading custom user resources
- 00:38:20the popup the popup are a little
- 00:38:21different from Windows they don't show
- 00:38:23up as separate windows in your OS and
- 00:38:24they close whenever you click outside
- 00:38:26them a good example of a pop-up menu is
- 00:38:28one of those right click menus the popup
- 00:38:30menu note the pop-up menu note contains
- 00:38:32functionality to build a menu within a
- 00:38:34popup the popup panel the popup panel is
- 00:38:37a more barebones version of one of those
- 00:38:39pop-up menus it only contains a
- 00:38:40background panel for you to build a
- 00:38:42custom UI on top of the canvas item it's
- 00:38:44quite weird I didn't talk about this
- 00:38:46before but the canvas item is the base
- 00:38:47class for everything that is 2D in gdau
- 00:38:50Al to the elements inherit from the
- 00:38:52canvas item it keeps track of things
- 00:38:53like visibility albo modulation and Z
- 00:38:56ordering it also contains settings for
- 00:38:57texture filtering the confus layer all
- 00:39:00confus items in gdau are drawn on a
- 00:39:02confus layer by default this is the gdau
- 00:39:04base layer with an index of zero and if
- 00:39:06you want to add another convas this can
- 00:39:08be done with the convas layer note the
- 00:39:09convas layers are drawn based on index
- 00:39:12meaning that the zindex of a confus item
- 00:39:14will always be overruled by an item that
- 00:39:16is on confus layer with a higher index
- 00:39:18the audio stream player the audio stream
- 00:39:20player note is used to play non-spatial
- 00:39:22audio meaning things like menu music UI
- 00:39:24sound effects and all sounds that AR AR
- 00:39:26emitting from a point in Space the
- 00:39:28animation player the animation player is
- 00:39:30one of the most versatile nodes of Ino
- 00:39:32it can be used for imported skeletal
- 00:39:33animations but beside that you can
- 00:39:35animate nearly anything in gdau using
- 00:39:37this animation tool the animation tree
- 00:39:40the animation tree note can manage
- 00:39:41animations within gdau it can be used to
- 00:39:43build complex animation structures and
- 00:39:45handle things like Transitions and blend
- 00:39:47times the HTTP request note this note
- 00:39:50has the ability to send HTTP requests
- 00:39:52meaning they can download or upload
- 00:39:54files or web content the multi player
- 00:39:56spawner and the multiplayer synchronizer
- 00:39:58ah yes the multiplayer notes of gdau
- 00:40:00these are used to spawn and synchronize
- 00:40:02notes across a multiplayer session of
- 00:40:04course I can explain the whole of G
- 00:40:06multiplayer in this video so I'll leave
- 00:40:08you with a link to a gr tutorial in the
- 00:40:09description the resource preloader the
- 00:40:12resource pre-loader note can be used to
- 00:40:13preload resources within your scene in
- 00:40:15most cases however you'll use the
- 00:40:17preload method within your GD scripts
- 00:40:19but in some advanced cases preloading
- 00:40:21resources in bulk within the resource
- 00:40:23preloader note can be useful the Shader
- 00:40:25global overwrite the Shader Global
- 00:40:27override can be used to override Shader
- 00:40:29parameters globally within a scene kind
- 00:40:31of how the world environment overrides
- 00:40:32the current environment in a scene the
- 00:40:34Shader Global override can be used to
- 00:40:36manipulate a lot of shaders at once take
- 00:40:38note that the node does not overwrite
- 00:40:39the actual Shader it just sets the
- 00:40:41parameter for all shaders within the
- 00:40:43scene the skeleton i3d the skeleton i3d
- 00:40:46note can be used to set up inverse
- 00:40:47kinematics in your armatures inverse
- 00:40:49kinematics is kind of a big Topic in
- 00:40:51short it means it will rotate a bone of
- 00:40:53change in a natural way to reach a
- 00:40:55certain endo there are a lot of great
- 00:40:57tutorials on ik and I'll leave one in
- 00:40:58the description the timer node the timer
- 00:41:01node is just that it manages a timer it
- 00:41:03can be started stopped and trigger a
- 00:41:05callback function upon completion all
- 00:41:07right so after making this complete
- 00:41:08video I realized I forgot three notes so
- 00:41:10I'm just going to add them on at the end
- 00:41:11I'm sorry the CPU particle 3D the CPU
- 00:41:14particle 3D provides the same
- 00:41:16functionality as the GPU particle 3D
- 00:41:18only without Hardware acceleration it
- 00:41:20can be useful to run on older devices
- 00:41:22that don't support Hardware accelerated
- 00:41:24particle systems the physical bone
- 00:41:25treaty
- 00:41:26this is a note that can make bones in
- 00:41:28armatures react to physics and the last
- 00:41:31note is the Sprite base 3D this is the
- 00:41:33base class for all 3D Sprites it can't
- 00:41:35be used Standalone but instead the
- 00:41:37Sprite 3D and the animated Sprite 3D
- 00:41:39inherit from it and it's got a lot of
- 00:41:41functionality for making Sprites in 3D
- 00:41:42work like the type of shading
- 00:41:44billboarding Alpha cutting modulation
- 00:41:47and the other Sprite settings that the
- 00:41:482D Sprite has all right it's very late
- 00:41:51at night I've been looking for these
- 00:41:53last three notes for like an hour I
- 00:41:54couldn't figure out what I missed but
- 00:41:56I'm very glad I finally found them this
- 00:41:58was every single note withing gdo
- 00:42:00explained I'm going to get some sleep
- 00:42:02and if you're still watching at this
- 00:42:03point thank you so much for watching and
- 00:42:04I'll see you in the next one bye
- Godot
- game development
- nodes
- 2D
- 3D
- programming
- game design
- interactive learning
- Brilliant
- tutorial