公式のTappy Chickenを参考にした結果Time Lineというノードが出てきた。
非プログラマのデザイナーが数日で作ったというTappy Chicken BP全体図(見切れてる)
初心者には萎縮するほど大きく見えるBPだが、それぞれの処理はスコアやUI、実績など、このゲームにおける全ての機能が一枚に書いてあるため、分割してみると結構わかりやすい。
で、結局大事なのはこれ
Flapとコメントが書かれたチキンの動きに関する処理
イベントはTickとFlapで、Flapの大本はクリック処理となっている。
簡単にいうとTickで毎フレーム間の処理時間Delta Timeを取得設定し、TimeLineから与えられるfloat値との計算によりChickenの位置を決めている。
Time Lineの中身を見てみる。
上のタイムラインが縦軸の動き、下がChickenの回転描くに値するfloat値
0秒地点の1.7から始まり2秒地点の-5まで揺るやかなカーブを描いている。
これがChickenの動きになる。
ではいったんBPにもどり、Time Lineノードをみる。
一つ前の画像にある、float値が返される値として表示されている
上記画像からPlay from Startにノードが繫がっているのがわかる。
これはイベントが発生するとこのタイムラインの0秒から時間を進め始めるというもの。
つまりイベントが起きなければ0秒のままであり、Chickenは静止している。
また、Play from Start以外にも停止や巻き戻し、指定秒数からの開始もあることがわかる。実際便利。
ここから返された値により、上昇率や処理時間との計算で出された数値を現在値に足すことでLocationを設定している。
Vertical Movementから繫がっている緑(float値)の線が現在値の計算
つまり、落下の処理もPhysicsではなくTime Lineから拾ってきた数値になっている。
Simulate Physicsにはチェックが入っていない
ここまでの一部分を見るだけでも、限定的な処理だが確実で効率のいい書き方になっている。
Time Lineも使い方によってはかなり面白いものが出来そう。
0 件のコメント:
コメントを投稿