文/圖:林昭自
本文轉載自聯成電腦技術論壇,歡迎點選此連結,前往駐站專欄與講師互動。
前言
在上一篇的介紹中,我們完成了場景的設置,同時也把角色身體的部位準備好(利用Sprite Editor來切割),在本篇技術文章中,我們將設置好角色物件,並且利用Animator來編輯。
組合出角色物件
首先建立好Hero空物件來當成角色的根物件。接著依序加入下列的Sprite Renderer子物件:Bazooka(火箭炮),hat(小帽),leftEye(左眼),leftLeg(左腳),leftHand(左手),rightEye(右眼),rightFoot(右足),rightHand(右手),tache(鬍子),body(身體)。組合完身體之後,為了讓角色有基本的碰撞,我們在根物件上加上Rigidbody 2D以及Box Collider2D兩個組件,但考慮到地形有可能有起伏,為了讓角色移動能更加平順,我們可以在角色的底部加上Circle Collider2D,用一個圓形來跟地形碰撞,可以提高整體移動的流暢性。
另外為了避免角色旋轉,我們可以把Rigidbody 2D上面的Fixed Angle勾選起來,讓此Rigidbody 2D固定住角度,不要隨意旋轉。接著我們在Hero物件上加上Animator組件,Animator組件是Unity4所提出的新的動畫組件,有了Animator組建搭配Animator Controller我們可以更有彈性地編輯動畫。我們在Project視窗中,
建立一個Animator Controller名為Character,接著我們可以透過Animation工具替角色編輯動畫,在這個階段,我們先編輯Idle(待機),Run(跑步)以及Jump跳等動畫。接著在Animator編輯器中,我們可以編輯這三種動畫的關係,概念上角色播放動畫可以當成一種有限狀態機(Finite - State - Machine),Animator 編輯器就是採用了有限狀態幾的概念,每一種不同的動畫,可以被視為是角色不同狀態,當發生特定事件時,角色會去播放不同的狀態的動畫。所謂特定的事件,在Animator編輯器中,是透過設定參數來達到的。以這個簡單的小範例來說,我們可以新增一個參數叫做速度,接著我們檢查速度這個參數的值,如果速度大於零,代表角色在移動,此時就播放移動的動畫,如果速度等於零,代表角色應該是靜置,此時就播放跑步的動畫,再切換動畫(狀態)的過程中,Unity同時會利用動畫混合的技術,讓動畫在轉換的過程中,可以更加的平滑,讓玩家不會有很突兀的感覺。
結論
在這篇文章中,我們把英雄的Sprite組合出來,在下一篇文章中,我們將為各位深度分析整個範例專案與製作流程。
延伸閱讀
聯成電腦昭自老師專欄:如何將Unity開發的遊戲上架到Google Play。
聯成昭自老師專欄:如何在Android手機上測試由Unity開發的遊戲
留言列表