1. 程式人生 > >LOL模型與骨骼動作的匯入與匯出

LOL模型與骨骼動作的匯入與匯出

1) [英雄聯盟遊戲安裝目錄\Game] 下有名為“HeroPak_client.zip” 的壓縮檔案,裡面的 [Data\Characters\英雄英文名稱] 目錄下就是英雄的面板(模型檔案),直接解壓出來。


2) 使用maya的RiotFileTranslator外掛匯入.skn檔案, 還可以匯入.anm動作檔案,(安裝方法請自行百度:maya外掛的安裝)

3) 設定好對應的材質貼圖

 這樣就有了完整的模模型,材質,骨架和蒙皮資訊。

可以匯出fbx,就能直接匯入u3d裡面使用了。

該外掛也可以匯出skn格式的檔案,所以可以對模型修改後,替換lol的模型,我沒有試過,有興趣的可以試試。

下面是關於lol的檔案的結構資訊。 
*.skn

int32

檔案型別標識,沒有副檔名時可以判斷檔案型別

int16

Material數量

int16

Obj數量(不知道什麼作用)

char[28]*Material數量

Material資料

int[32]

序號

char[64]

名稱

int[32]

開始的頂點位置

int[32]

擁有的頂點數量

int[32]

開始的頂點索引位置

int[32]

擁有的頂點索引數量

int32

頂點索引數量

int32

頂點數量

int16*頂點索引數量

頂點索引,每3個頂點組成一個面

char[52]*頂點數量

頂點資料

float*3

頂點位置: x,y,z

char[4]

4個骨骼索引,每個索引用一個

char表示(這裡還有疑問,骨骼索引可能還有演算法)

float*4

對應4個骨骼索引的權重

float*3

頂點的法線

float*2

頂點的UV座標

*.skl

char[8]

檔案型別標識,沒有副檔名時可以判斷檔案型別

int32

Obj數量(不知道什麼作用)

int32

意義不詳(不知道什麼作用)

int32

骨骼數量

char[88]*骨骼數量

骨骼資料

char[32]

骨骼名稱

int32

父級骨骼的索引

float

縮放

float[3][4]

4×4變換矩陣的前3行資料,最後一行為0,0,0,1

*.anm

char[8]

檔案型別標識,沒有副檔名時可以判斷檔案型別

int32

格式版本

int32

意義不詳(不知道什麼作用)

uint32

骨骼數量

uint32

動畫幀數

uint32

動畫幀頻(fps)

(char[36]+char[28]*動畫幀數)*骼數量

骨骼資料

char[32]

骨骼名稱

int32

型別(2:根骨骼,0:普通骨骼)

char[28]*動畫幀數

動畫幀資料

float

四元數的x

float

四元數的y

float

四元數的z

float

四元數的w

float

位置x

float

位置y

float

位置z