I have a character that is an instance with a base CharacterBody3d node, whose visible elements are imported glFT2.0 (.glb) meshes. I am trying to give it a first person camera by sticking a Camera3D inside it, then using its Cull Mask to exclude the character itself.

The problem is, I have no idea how/where to actually set the visibility layer. According to the documentation any node that inherits from VisualInstance3d should have them, however none of the objects on the character qualify, the base is a CharacterBody3d and the meshes imported as basic Node3Ds; they may contain MeshInstance3ds inside them, but that's not exposed in Godot itself.

So, how do I set the visibility layer for this object?

  • xyz and award replied to this.
  • CodingFerret mouse_* things are scenes. There's other nodes "inside" them. Click on the movie clap icon to "enter" them. If they are directly imported you're probably going to need to make inherited scenes in order to edit them. Godot will prompt you about it.

    CodingFerret but that's not exposed in Godot itself

    What do you mean by that. If the imported scene contains visible meshes there must be some mesh instance nodes in it.

    CodingFerret the meshes imported as basic Node3Ds;

    That sounds very strange and unlikely. Can you show us a screenshot of your scene tree?

    Here's the scene tree of the character (that is then instantiated into the level). mouse_* items are the imported glFT2.0 objects.

    • xyz replied to this.

      CodingFerret mouse_* things are scenes. There's other nodes "inside" them. Click on the movie clap icon to "enter" them. If they are directly imported you're probably going to need to make inherited scenes in order to edit them. Godot will prompt you about it.

        xyz Aaah, you are correct! This is what I get for taking a break from Godot, I forget basic things.