而在初次看過其內容後,獲得了一個重點即是,各地方的命名十分重要,Controller內部的目標來源都是以fileID的形式運作,但同時有些東西也可以在Unity中做命名,雖然會需要多一個命名規則的訂制與管理的工,但是直接利用Name做修改會比用fileID方便許多,譬如說Transition的命名。
參考文件
在開始看文件內容之前,先說明fileID的運作方式,fileID實際上是由兩組數字組成,首先是該物件的Class ID Number,然後是一組五位數物件在所在檔案內的序號(偶數),舉個例子,現在有一個帶有3個Animation Clip的FBX檔案,則這3個Clip的fileID就是:( 7400000, 7400001, 7400002 ),74為Animation Clip的ID Number。
以下開始文件內容:
在每個區段(term,代表一個object)的一開始,都會先有一串的數據資訊
- --- !u!91 &9100000
!u!後代表的是物件類型
&(ampersand)後的數字是該區段資訊獨有的fileID
- m_Name
Animator的名稱 - m_AnimatorEvents
Flags - m_Layers
Layers
- m_Name
Transition的命名,預設狀況下是無命名的。
如果想要手動修改.controller文件的話,對所有的Transition做命名會方便非常多,可快速的知道各個Transition資訊的位置。 - m_SrcState / m_DstState
來源跟目的State,填入的資訊為fileID。 - m_TransitionDuration
Transition的時間長度,應該是以SrcState的Motion的時間長度為基準的趴數。
例如來源動作的長度為2秒,而m_TransitionDuration的值為0.5時就是使用1杪做過渡。 - m_TransitionOffset
DstState相對於TransitionDuration起始點的offset。
當DstState的起始點與TransitionDuration的起始點相同時,則m_TransitionOffset的值為0。
當DstState的結束點與TransitionDuration的起始點相同時,則m_TransitionOffset的值為1。 - m_Conditions
進行Transition的條件,以下的參數皆為Condition的條件式 - m_ConditionMode
條件判斷的模式 - 1,Bool的True
- 2,Bool的False
- 3,Float/Int的Greater
- 4,Float/Int的Less
- 5,ExitTime
- 6,Int的Equals
- 7,Int的NotEqual
- m_ConditionEvent
要參照的Flag,m_ConditionMode為ExitTime時此欄位為空 - m_EventTreshold
條件式的參考值,Bool時不管是True或False值都填0 - m_ExitTime
ExitTime的float值
再來是State的資訊
最後是StateMachine的資訊
沒有留言:
張貼留言