2018年5月10日 星期四

「傘之下」開發記錄—10

延續上篇,這次來講雨傘系統


開關雨傘的判定,是寫在主角的操控腳本中的
當玩家按下左邊的Ctrl鍵時,判斷當下狀態為何,再進行相應動作
eg. 狀態:開傘中 進行動作:收傘
亦即兩者呈相反就對了

然後,當在地上進行動作時,強制停止移動
因為當初繪製動畫時,開收傘的動作是停在原地的
不停止移動的話,會看到主角腳沒在動卻會左右移動(怕

再來就是,現時遊戲設定:開收雨傘的動畫播放時,不會被攻擊到
會這樣設定,是以防動畫出現錯誤
因為在開收雨傘兩種狀態下,跑步、跳躍等動畫都是不一樣的
要實現這種判定,至少有兩種方法
先說我現在在用的:更換動畫器

當開收傘的狀態切換時,動畫器亦跟著轉換

 收傘時的動畫器

開傘時的動畫器

這樣的做法,是減少一個動畫器的複雜程度。要修改個別動畫時,能更方便地找到問題點
但限制是兩個動畫器的參數要一樣(不論參數類型還是命名)
因為是依同一行程式進行控制,稍有差錯便會出現錯誤訊息


而另一個方法是,把動畫都放在同一個動畫器中,然後多加一個布林參數「OpenUmbrella」(舉例)
然後在開傘與收傘兩組別的動畫中,都加上對應的「OpenUmbrella」,這樣也能獲得相同效果……應該說,我一開始的做法就是這樣ww
但之後因為出現各種錯誤,以及管理不方便,於是變成現在的「更換動畫器」


話題拉回來,因為要更換動畫器,如果這時被敵人攻擊到,就有更大機會出Bug
雖然有嘗試過各種方法去解決這問題,但個人功力不足,始終都有Bug
於是索性取消碰撞判定(硬來

最後再說一下更換動畫器的時機
那就是AnimationEvent出場的時候啦~

在開收傘的結尾加入腳本,就能讓兩個動畫器無縫接軌
讓我們讚嘆AnimationEvent ヽ(✿゚▽゚)ノ


話說,最近的篇幅較長,以及多加一些圖片來講述
是因為個人覺得這幾篇有點複雜,單是口頭上說說的話,除了我以外大概沒人懂吧ww
說不定現在也沒人懂就是(心虛

沒有留言:

張貼留言