模型节点链接
初级 美术人员
Note
在某些版本的 Stride 中,模型节点链接(Model node links)被称为骨骼链接(Bone links)。
模型节点链接组件用于将实体附加到另一个实体上骨架的某个节点。
例如,假设有两个模型:一个骑士和一把剑。角色有挥剑动画。你可以使用模型节点链接将剑放置在骑士手中,并附加到骑士骨架的正确节点上,这样剑就会随骑士的动画一起挥动。
设置模型节点链接组件
在场景编辑器中,选择要链接到另一个实体节点的实体。
在属性网格中,点击添加组件并选择模型节点链接。

Game Studio 会为该实体添加一个模型节点链接组件。

该组件只有两个属性:节点名称(Node name)和目标(Target)。
在 Target 旁边,点击
。选择实体窗口将打开。

选择要将实体链接到的模型,点击确定。
Note
链接的目标实体必须具有带骨架的模型,即使该模型在运行时不可见。
Tip
如果未指定模型,Stride 会将实体链接到父级实体上的模型。
在 Node name 中,选择模型中要将此实体附加到的节点。

链接节点后,实体树会在实体名称旁边以蓝色显示该链接。

偏移
要为已链接的实体添加偏移,请使用实体的 TransformComponent。

Note
如果不想添加偏移,请确保所有值都设置为 0,0,0。
脚本示例
此脚本演示如何使用 Stride 的 ModelNodeLinkComponent,将一个实体(如 SwordModel)链接到另一个实体骨架层级中的特定骨骼(weapon_bone_R,本例中为 mannequinModel)。
public class BoneLink : StartupScript
{
// 此示例假定你已创建了一个使用 Stride 默认模型
// "mannequinModel" 和 "SwordModel" 的项目。从 "Assets/Models" 文件夹将它们添加到场景中,
// 然后将此脚本附加到 "SwordModel" 实体上
ModelNodeLinkComponent boneLink;
public override void Start()
{
// 初始化脚本
// 这里我们通过搜索根场景的实体来定位名为 "mannequinModel" 的实体
Entity owner = SceneSystem.SceneInstance.RootScene.Entities.Where(e => e.Name == "mannequinModel").Single();
boneLink = new ModelNodeLinkComponent
{
// 这是目标实体(mannequinModel)上的 ModelComponent
Target = owner.Get<ModelComponent>(),
// 我们设置一个"硬链接"到 Nodes[70],
// 它对应目标骨架层级中的 "weapon_bone_R"
NodeName = owner.Get<ModelComponent>().Model.Skeleton.Nodes[70].Name
};
// 最后,将此链接组件添加到我们当前的(SwordModel)实体
base.Entity.Components.Add(boneLink);
}
}
另请参阅
有关模型节点链接用法的示例,请参见: