Wednesday, August 17, 2016

Tales Runner


有朋友要求看一下 Tales Runner 的格式:
m1 是模型
a1 是動作
p1 是主結構/材質

整體格式不太複雜, 但是模型中的骨骼資料沒有父子的連接關係(m1,a1,p1檔內都沒有!?)
而動畫檔內的動作都是相對性的, 模型檔內的蒙皮資料是相對面分段的!

所以我沒興趣完成了, 有興趣的朋友可看行參考研究!


模型格式:
struct {
  char[16] Header_ID
  dword unknown
  dword unknown
  word length
  char[length] Mesh_Name
  dword unknown
  byte[52] unknown //possibly padding
  dword/float unknown
  dword Face_Block_Size
  dword String_Block_Size //Bones name
}

struct Bone_String_Block {
  dword num_Bones
  word length
  char[length] Bone_Name
}

struct Vert_Block {
  word unknown
  dword num_Material
  byte unknown
  dword FVF
  dword num_Verts
  dword num_Face_Idices
  dword Verts_Block_Size

  struct Vert {
    float[3] coordinate
    float[4] skin_weight
    byte[4] bone_indices
    float[3] normal
    float[3] Tex_UV
  }
}

struct Face_Block {
  dword Face_Indices_Size  
  struct Face {
    word Index_123
  }

  struct Face_Neighbour {
    dword Index_123
  }

}

struct Face_Strip_ID {
  dword Strip_ID
}

struct Face_Skin_Block {
  word num_Face_Strips
  
  struct Face_Strip {
    word Material_ID
    word num_Bones

    struct Skin_Bone {
      word String_Index //Reference to Bone_String_Block
      word Matrix_Index //Reference to matrix below
    }
  }

}

Struct Matrices_Block {
  word num_Matrices

  struct Matrix_4X4 {
    float[16] matrix
  }

}

簡單的 Maxscript 導入腳本