# 動畫 ## unity chan https://assetstore.unity.com/packages/3d/characters/unity-chan-model-18705 在unity asset素材中搜尋unity chan下載第一個免費的,並點擊open in unity  在unity中載入所有材料   unity chan-->art-->animation中有很多動畫 在unity中右鍵create一個資料夾並在裡面建立c#script與animation control 將建立的animation control拉至人物介面的animator中controller  對想要呈現的動畫按右邊的箭頭,點選綠色三角形的物件,角色即可動作  參考網址: https://www.youtube.com/watch?v=NHRfKWfUae8&ab_channel=%E7%8E%8B%E7%91%9E https://assetstore.unity.com/packages/tools/animation/pose-editor-146667  pose editor可以修改人物骨骼的位置 在人物最下面點選add component 即可加入 --- --- # 角色動畫 以Asset Store 中 Space Robot Kyle為例,這是一個有骨架的動畫模型,以下可以套用到所有有骨架的角色上。 ## 1.加入角色 將 Inspector 切換到 Rig 標籤(骨骼綁定),並將 Animation Type 動畫類型從原本的 Legacy 改為 Humanoid 動畫類型(人形骨骼)。 (Confider可以確定模型位置是否正確,實線圓圈為必要,虛線圓圈為非必要)  ## 2.物理元素(?) 套用Rigibody(剛體元件)  輸入Mass(質量)為100(類似他的體重)。 勾選 Constraints(約束)下方的 Freeze Rotation(凍結旋轉)(避免跌倒)。  套用Caspule Colider,這裡數據會因為不一樣的模型而不同(角色重心?)   ## 3.Animation Controller 建立一個新的動畫控制器,可以管理角色的動作、設定流程、控制參數。  將Animator Controller拖曳到機器人的Animator元件下的Controller。  --- ## 4.開啟動畫控制器 把待機動畫拖進去(要托前面是三角形的)  待機畫面完成 拖曳動作 走跟跑 (這個素材包很好玩的是有RM跟沒有RM兩種,差別在於地板會不會動,偷埋個伏筆XD),並建立箭頭(連結?)  添加變量 float類型的Speed  然後設定轉移條件(點擊指向walk箭頭),從不動到walk的條件是Speed>0.1的時候。 (右邊視窗往下拉有condition,按+就有了!) (前面walk跟run順序顛倒了,我懶得重截,大家將就看一下XD) 剩下三個箭頭以此類推 走到跑就是大於0.6之類的,視到時候的設定而定。  基本設定完成~ ## 5.建立一個腳本叫ChaMove,記得加到角色身上! ``` public class ChaMove : MonoBehaviour { public float speed = 3; Animator anim; Vector3 move; void Start() { anim = GetComponent <> Animator > (); } void Update() { float x = Input.GetAxis("Horizontal"); float z = Input.GetAxis("Vertial"); move = new Vector3(x, 0, z); //強制人物頭轉向,LookAt的點在人物所在位子的前面,缺點是回頭視直接回XD transform.LookAt(transform.position + new Vector3(x, 0, z)); transform.position += new Vector3(x, 0, z) * speed * Time.deltatime; UpdateAnim(); } void UpdateAnim() { //magnitude指此向量長度,決定了Speed的快慢 anim.setFloat("Speed", move.magnitude); } } ``` 以上做完,角色會自己走:) 1.Animator下的Apply Root Motion勾選了,所以動畫一播放就會自行移動。 如果前面選擇walk和run的時候是選擇大有RM的,說明人物真實移動,角色會跟著移動起來。 好處是人物移動根據美術決定,避免人無飄起來或直接Move的狀況。 但我們可以先把他按掉XD 2.按掉後雖然不會移動,但角色動畫還在播放? 因為卡在run01了!跑回走寫<0.7。 有延遲,因為每個動作都需要把動畫播完才會下一步。回到Animate controller,點擊箭頭(連結?)可以看到右邊有一個 Has Exit Time,不論播完與否,都可以直接跳轉。 ## 附註 怎麼從Asset Store加入Asset呢? Windows>Package Manager>My Asset 如果已經選擇但沒出現 那就按一下下面的整理圖示ㄅˊˇˋ 點擊想要得,在視窗左下角就有下載了!  # 動畫素材 https://assetstore.unity.com/3d/animations?category=3d%2Fanimations&free=true&orderBy=1&rows=264 # 使用素材: 1.人物https://assetstore.unity.com/packages/3d/characters/robots/space-robot-kyle-4696 2.動作動畫 https://assetstore.unity.com/packages/3d/animations/basic-motions-free-154271 # 參考: 1.https://www.cg.com.tw/Unity/Content/Unity_22.php 2.https://www.bilibili.com/video/BV1nq4y1n7sa?spm_id_from=333.999.0.0 # animation rigging 1.import animation rigging 2.對角色點選animation rigging -> bone renderer setup 
×
Sign in
Email
Password
Forgot password
or
Sign in via Google
Sign in via Facebook
Sign in via X(Twitter)
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
Continue with a different method
New to HackMD?
Sign up
By signing in, you agree to our
terms of service
.