UE4でコインをそれっぽく回してみた
auです。
今日はUE4でコインをそれっぽく回るように設定しました。
回すアセットは、以前使用したコインです。
program-shoshinsya.hatenablog.com
ブループリントの設定
ブループリントの設定は以下の通りです。
解説
コインはゲームが始まってから獲得するまでずっと回すようにします。そのために、「イベント BeginPlay」からノードを繋げていきます。
伸ばした際に「タイムライン」と検索欄に入力し、「タイムラインを追加」でイベントを追加します。名前は任意に変更して大丈夫です。
このイベントをダブルクリックすると、タイムラインエディタが出現します。
コインを回すのに使うのは3つの項目です。
左から、floatトラック(浮動小数点を扱う)をクリック、長さを1.0秒、ループするように設定します。
こうすることで、1秒とにfloat分変化することをループすると設定することができました。
3項目とも設定すると、以下のような画面が出てくると思います。
「Shift+クリック」か、「右クリック→キーを追加」で「点」を追加します。
始まりの場所に「時間0.0・値0.0」、「時間1.0・値360」に2点置きます。この際、上の「時間・値」の数値を変えることで手動で変更できるのでそれで調節しましょう。手動で全部やるのは相当めんどくさいです。
設定するとこのようになると思います。
値を360に設定したら点が飛んでった?そしたら「時間・値」の左にある「↕︎ ↔︎」をクリックしてあげるとちゃんと見えるようになります。
これで回す時の値の準備が完了しました。
次にこれを適応していきます。
イベントグラフタブに戻り、StaticMeshComponent(継承)をドラッグ&ドロップします。
Static Mesh Componentからノードを伸ばし、「SetARelativeRotation」を選択ます。
New Rotationにノードを繋げれば完成かなーと思ったら繋がりません。
どうやら値の型が違うようです。プログラミング言語でいうint型とfloat型のような違いなのかなー。
それなら変換してやればいい。CoinTern(タイムライン)のCoin Z(任意で設定した名前であるはず)からノードを伸ばし「Make Rotator」を呼び出し、Z(Yaw)に繋げます。
これでReturn ValueからSetRelativeRotationのNew Rotationに繋げられるはずです。
やっていて気づいたのですが、色によって繋げられるのが分かれてるっぽい・・・?それならとても分かりやすいですね!
CoinTern(タイムライン)のUpdateもSetRelativeRotationに繋げてあげましょう。
これで1秒にfloat型でZ値を360になるようにループするという設定ができました。
コンパイルして実行してみます。
値が更新されているのがノードの流れで分かると思います。
Gifの撮り方がわからないので回転している様子は載せることができませんが、ちゃんと回転してくれました。