【问题标题】:My in-game meshes are inverted in unity after importing from 3ds MAX with skin从带有皮肤的 3ds MAX 导入后,我的游戏内网格被统一反转
【发布时间】:2016-08-30 07:30:04
【问题描述】:

从带有皮肤的 3ds MAX 导入后,我的游戏内网格被统一反转,

网格和法线看起来都是“颠倒的”,就像我在看某种幽灵一样。

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

【问题讨论】:

  • 相当。在此过程中,请记住 (a) 3D 行业中的模型必须在 z-forward 中; (b) 必须使用实际仪表作为单位。

标签: javascript c# unity3d 3dsmax


【解决方案1】:

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

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

第 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 步:删除最后一个脚本,现在模型已修复。

编辑

还要确保您的骨骼或网格没有任何负比例,这也可能会搞砸并且不会导致 .fbx 导出失败。

【讨论】:

  • 虽然很赞,但我绝对不会这样做。在 Max. 中修复模型。
  • 直到我在导出这个混凝土蒙皮且非常精细的模型时发现该死的发生,这会没事的。
  • 该死的 o_o 负秤是怎么进来的?我从来没有缩放过任何东西:/
  • 例如当您使用镜像工具时会应用负比例。
猜你喜欢
  • 2020-09-12
  • 1970-01-01
  • 2020-03-12
  • 2011-05-04
  • 2017-08-20
  • 2018-10-16
  • 1970-01-01
  • 1970-01-01
  • 2012-11-02
相关资源
最近更新 更多