Need help on imported rigged object in Godot

Godot Version

4.3

Question

Hi folks,

I have successfully imported rigged object from blender and apply animations from mixamo. Please refer to the attached image:

However, I’m stuck with two actions as following:

  1. How to apply additional material or shader on imported object? For example, I need to make the object looks bluer or transparent when certain effects applied on it. I tried to import skeleton and mesh separately but I have no idea how to rig them back together, like what I did in Blender, in Godot.

  2. How to add additional scene onto the part of the imported rigged object? For example, I need a weapon held by the right hand so when animation is being played, the weapon is moved along with the right hand. To me, a straightforward way is adding an empty Node3D, which can hold the weapon, as a child of the right hand but I have no idea how to do this in Godot as the imported object/mesh is a whole thing.

I feel two questions might be solved by the same solution so I put them into one topic.

Thanks!

  1. I think you can achieve this using material overrides and/or material overlays. You could always change the geometry transparency too; various ways to do it, perhaps a little vague but I also believe this is only something you can answer/implement. I’ve used material overlays to adjust how a model looks, e.g. flashes or outlines.
  2. BoneAttachment3D where you can select the bone required, add stuff to the bone attachment (e.g. a sword). Typically, you’d create a scene that includes the rig and add the attachment to its scene, like in the second image.

Thanks for the reply.

My problem is that I’m not able to access the skeleton or mesh in the instaniated glb.

In step 3, the skeleton retarget is done in the import screen.

In step 4, the instaniated glb is just a node, without any imported children, in the tree, I cannot access either the skeleton or the mesh under it, therefore I cannot use material overlay or geometry properties.

Aha! After carefully go through the menu, I found the answer: I need ‘New Inherited Scene’ instead of directly instantiating glb.

In the new inherited scene, I can access the skeleton and mesh then do what @sp_yjase suggested.

Thanks!

1 Like