|
|
|
@ -13,7 +13,7 @@ public partial class RenderModule |
|
|
|
|
|
|
|
private float xPos = -8f; |
|
|
|
|
|
|
|
private int UploadAliasModel(string name, QVec3 boundsMin, QVec3 boundsMax, QAliasHeader header, |
|
|
|
private int UploadAliasModel(string name, QAliasHeader header, |
|
|
|
QTriVertex[][] poseVertices, QTriangle[] triangles, QSTVert[] stVertices) |
|
|
|
{ |
|
|
|
Debug.Log($"Alias model '{name}' with {header.numVerts} vertices, {header.numTriangles} triangles, {header.numFrames} frame(s)"); |
|
|
|
@ -21,7 +21,8 @@ public partial class RenderModule |
|
|
|
ConvertTriangles(triangles, out var indices); |
|
|
|
ConvertUVs(stVertices, header.skinWidth, header.skinHeight, out var uvs); |
|
|
|
|
|
|
|
AliasModel aliasModel = new AliasModel(); |
|
|
|
string modelName = System.IO.Path.GetFileNameWithoutExtension(name); |
|
|
|
AliasModel aliasModel = new AliasModel(modelName); |
|
|
|
|
|
|
|
Mesh mesh; |
|
|
|
string animName = null; |
|
|
|
@ -38,7 +39,7 @@ public partial class RenderModule |
|
|
|
if (frameName != animName) |
|
|
|
{ |
|
|
|
// New animation sequence; convert the previous sequence into a blend shape animation
|
|
|
|
mesh = CreateAnimatedMesh(header, poseVertices, indices, uvs, animName, startFrame, frameIdx); |
|
|
|
mesh = CreateAnimatedMesh(header, poseVertices, indices, uvs, $"{modelName}_{animName}", startFrame, frameIdx); |
|
|
|
aliasModel.AddAnimation(startFrame, mesh); |
|
|
|
|
|
|
|
animName = frameName; |
|
|
|
@ -46,10 +47,10 @@ public partial class RenderModule |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
mesh = CreateAnimatedMesh(header, poseVertices, indices, uvs, animName, startFrame, header.numFrames); |
|
|
|
mesh = CreateAnimatedMesh(header, poseVertices, indices, uvs, $"{modelName}_{animName}", startFrame, header.numFrames); |
|
|
|
aliasModel.AddAnimation(startFrame, mesh); |
|
|
|
|
|
|
|
var go = new GameObject(System.IO.Path.GetFileNameWithoutExtension(name)); |
|
|
|
var go = new GameObject(modelName); |
|
|
|
go.transform.SetPositionAndRotation(new Vector3(xPos, 0, 0), Quaternion.Euler(-90, 90, 0)); |
|
|
|
|
|
|
|
if (header.numFrames > 1) |
|
|
|
|