Godot Version
v4.4.1.stable.official [49a5bc7b6]
Question
I’d like to write my own class extending SkeletonModifier3D so that I can make some runtime changes to a skeleton. I’m trying to figure out how to even begin by creating a node that overrides SkeletonModifier3D. Since SkeletonModifier3D is an abstract class, I can’t select it in the node creation dialog.
This example is from a demo project that I’m copying, using Godot 4.3. How can I create my own scene that has a SkeletonModifier3D as a root?
A work around that I found is to open the scene’s .tres file in a text editor and change the root node class there. Would still like to know if there is a more proper way to do this.
Perhaps I am not understanding your question properly, but it looks to me like you already have.
PoseWarping is extending the abstract class. If you go the Create New Scene dialog you should be able to select PoseWarping from there.
I was able to hack it by editing the .tres file in an independent text editor. I can’t find any way to do it without circumventing the Godot editor. If I try to create a new node from the Scene menu, the
SkeletonModifier3D option is unselectable.
Respectfully, I do not think you understand what an abstract class is.
Here is the definition for c++
Pertinent bit:
Defines an abstract type which cannot be instantiated, but can be used as a base class.
The editor is behaving properly by not allowing you to create an instance.
Further:
Pertinent bit:
SkeletonModifier3D is a virtual class, so you can’t add it as stand alone node to a scene.