Unity3d 附着点

Unity3d 附着点,unity3d,3d,Unity3d,3d,我使用在Blender中设计的模型,我需要为其添加附加点以获得特殊效果。比如在模型的手上标记一个点(当然是通过手部动画修改的),我可以在需要时应用光晕。我知道如何将光晕应用于3d点,我只需要一种方法来获得该点 如何做到这一点?有几种方法可以做到这一点,但我最喜欢这种方法,因为技术艺术家很容易与之交互(它只需要在对象上有一个特殊的名称)。您可以让顶级角色脚本扫描其子级,并查找具有指定命名约定的对象 foreach(Transform child in gameObject.GetComponent

我使用在Blender中设计的模型,我需要为其添加附加点以获得特殊效果。比如在模型的手上标记一个点(当然是通过手部动画修改的),我可以在需要时应用光晕。我知道如何将光晕应用于3d点,我只需要一种方法来获得该点


如何做到这一点?

有几种方法可以做到这一点,但我最喜欢这种方法,因为技术艺术家很容易与之交互(它只需要在对象上有一个特殊的名称)。您可以让顶级角色脚本扫描其子级,并查找具有指定命名约定的对象

foreach(Transform child in gameObject.GetComponentsInChildren<Transform>()) {
    if( child.name == "AttachmentPointOrWhatever" ) {
        myEffectsObject.transform.parent = child;
        myEffectsObject.transform.localPosition = Vector3.zero;
    }
}
foreach(在gameObject.GetComponentsInChildren()中转换子对象){
if(child.name==“AttachmentPointOrWhatever”){
myEffectsObject.transform.parent=子对象;
myEffectsObject.transform.localPosition=Vector3.0;
}
}
这是因为Unity将根据导入的动画更新骨骼的位置,因此效果对象将跟随随动画导入的点

至于创建动画,我来自Maya和3ds Max,但对于blender的想法应该是一样的:为附着点添加额外的骨骼,并确保它们绑定到模型(或添加到蒙皮权重或blender中的任何术语)。它们不应该在任何顶点上具有任何权重,但它们需要位于绑定集中,以便Unity将它们识别为动画的一部分,并正确设置点的动画