从带有皮肤的3ds MAX导入后,我的游戏中网格将反转为一体

My in-game meshes are inverted in unity after importing from 3ds MAX with skin

本文关键字:网格 中网 游戏 我的 3ds 导入 MAX      更新时间:2023-09-26

从3ds MAX导入带有皮肤的后,我的游戏中网格将反转为一体

网格和法线看起来都是"颠倒的",就像我在看某种鬼一样。

如果我取消选中皮肤,它工作正常。

步骤1:设置模型并导出为FBX。

第二步:统一导入。顶点和法线将被翻转。

第3步:附加这个c脚本,只运行一次。

public class meshInverter : MonoBehaviour {
    // Use this for initialization
    void Start () {
        Mesh mesh = GetComponent<SkinnedMeshRenderer>().sharedMesh;
        mesh.triangles = mesh.triangles.Reverse().ToArray();
    }
    // Update is called once per frame
    void Update () {
    }
}

步骤4:删除最后一个脚本,附加这个JS脚本,然后只运行一次:

#pragma strict
import System.Linq;
function Start () {
    var mesh = (transform.GetComponent("SkinnedMeshRenderer") as SkinnedMeshRenderer).sharedMesh;
    var normals : Vector3[] = mesh.normals;
    for (var i=0;i<normals.Length;i++){
        normals[i] = -normals[i];
    }
    mesh.normals = normals;
}
function Update () {
}

步骤5:删除最后一个脚本,现在模型已经修复。

编辑

也要确保你的骨骼o网格没有任何负比例,这可能会把它搞砸,不会导致.fbx导出失败。