カテゴリの最新記事

キャラクターの振り向き。ついでに作り直し

羽が擦り切れて折れる日まで羽ばたきたい
前回はキャラクターを左右に動かせるようになったので、今回は振り向かせる処理を書く。

処理内容としては、右キーが押されたときには右を向かせ、左キーが押されたときには左を向かせるという処理を考えているので、まずは左右どちらが押されたかを判断する処理が必要となる。
左右入力自体は前回の通りAxisMappingで-1.0~1.0の値を取得できているのでこれを利用することにする。CompareFloatというノードを設置して左右どっちかの判断ができる。
Compareは比較。何と何を比較するのか。軸入力値と0と比較する。0と比較してマイナスなら左、プラスなら右、という感じで判断ができるはず。もちろんSpriteが最初から左向いてたりしたらプラスマイナスは逆だ。
比較結果ごとにSetRelativeRotationノードを設置する。ターゲットは自身のSprite、回転はZ軸で180度反転。さっきまでの入力の癖で-1.0とか入れても全然反転しないので注意。

WS2016-07-10_19_04_46

ここまでできたらテストプレイ。
( ゚д゚ )彡そう!これでキャラクターが左右に振り向けるようになったはず。

……と、ここまで書いておいて難であるがこのようなBlueprintノードの組み方は間違っているのではないかと思い始めてきた。
というのも公式リファレンスのアニメーション ステート マシーンの設定を見る限りではキー入力をそのままアニメーション切り替えの判断に使ってる様子はなく、キー入力を見てBool変数を操作して、Bool変数を見てアニメーションの切り替えを行っているようにしか見えないのだ。この方がスマートな方法のように思える。
傷が浅いうちに作り直した方がいいかなー……

※追記
作り直しました。若干の設置ノードの違いはあるものの、ほぼ公式リファレンス通りに作業したのであえてここでは書かない。いや、それを言い出すと公式リファレンスが有能すぎるので読んで理解できればこんな備忘録は必要ないのだが……いや、備忘.Logね。
あのテキストを全部理解できないので、こうして自分用に噛み砕いて後で見返せるように書いているのだ。幸い今回の部分は自分でもリファレンスの内容が理解できたので、後で見返したときには「公式読め」で終わる話となった。

WS2016-07-10_20_08_14WS2016-07-10_20_08_54
一応ノード配置図の比較。再生するアニメーションは今まで”選択する”ノードで手動で設定していたがその部分は丸々関数内で処理するようになってイベントグラフが理解しやすい流れになり、とても良い。

UE4

Posted by むいか