這次試著做了 攝影機移動的Lerp smoothing,,主要的契機是這篇文章:
[GDC 2015] Scroll Back - 2D 捲軸遊戲的攝影機理論與實務
文章內有大量的2D攝影機移動理論,文章當中就提到移動常見的smoothing方法,就試著寫寫看,至於在Unity內Lerp smoothing則是參考這一篇:
Unity腳本:使用Lerp 線性插值製作滑順效果
關於Lerp smoothing上面提到的那篇文章寫得很詳細就不多提,這裡就講自己用到的部分,有關Camera的移動只有兩行程式碼:
Vector3 cameraPos = Vector3.Lerp (transform.position, actor.transform.position, Time.deltaTime);
transform.position = new Vector3 (cameraPos.x, cameraPos.y, -10);
此為Camera下的腳本Update函式的內容,actor為角色物件,透過Vector3.Lerp算出需要的移動量,需要的參數為起點(transform.position)、終點(actor.transform.position)和插值(Time.deltaTime),由於攝影機的Z值不需要移動所以把值重新設定。
以下是這次的結果,使用鍵盤WASD操作。
針對攝影機做smooth後,移動效果看起來就沒有那麼死板,這次就到這裡。
素材:
臼井の会:http://usui.moo.jp/frame2.htmlGame Studio Rxus.:http://rxus.digiweb.jp/mate/h003.html
沒有留言:
張貼留言