auの日記

プログラミング初心者の日記。(auはハンドルネームです)

UE4でコインをそれっぽく回してみた

auです。

今日はUE4でコインをそれっぽく回るように設定しました。

回すアセットは、以前使用したコインです。

program-shoshinsya.hatenablog.com

ブループリントの設定

ブループリントの設定は以下の通りです。

f:id:program-shoshinsya:20181120221812p:plain

解説

コインはゲームが始まってから獲得するまでずっと回すようにします。そのために、「イベント BeginPlay」からノードを繋げていきます。

伸ばした際に「タイムライン」と検索欄に入力し、「タイムラインを追加」でイベントを追加します。名前は任意に変更して大丈夫です。

f:id:program-shoshinsya:20181120213101p:plain

このイベントをダブルクリックすると、タイムラインエディタが出現します。

f:id:program-shoshinsya:20181120213349p:plain

コインを回すのに使うのは3つの項目です。

f:id:program-shoshinsya:20181120213855p:plain

左から、floatトラック(浮動小数点を扱う)をクリック、長さを1.0秒、ループするように設定します。

こうすることで、1秒とにfloat分変化することをループすると設定することができました。

3項目とも設定すると、以下のような画面が出てくると思います。

Shift+クリック」か、「右クリック→キーを追加」で「」を追加します。

始まりの場所に「時間0.0・値0.0」、「時間1.0・値360」に2点置きます。この際、上の「時間・値」の数値を変えることで手動で変更できるのでそれで調節しましょう。手動で全部やるのは相当めんどくさいです。

設定するとこのようになると思います。

f:id:program-shoshinsya:20181120215601p:plain

値を360に設定したら点が飛んでった?そしたら「時間・値」の左にある「↕︎ ↔︎」をクリックしてあげるとちゃんと見えるようになります。

これで回す時の値の準備が完了しました。

次にこれを適応していきます。

イベントグラフタブに戻り、StaticMeshComponent(継承)をドラッグ&ドロップします。

f:id:program-shoshinsya:20181120220525p:plain

Static Mesh Componentからノードを伸ばし、「SetARelativeRotation」を選択ます。

f:id:program-shoshinsya:20181120220853p:plain

New Rotationにノードを繋げれば完成かなーと思ったら繋がりません。

f:id:program-shoshinsya:20181120221018p:plain

どうやら値の型が違うようです。プログラミング言語でいうint型とfloat型のような違いなのかなー。

それなら変換してやればいい。CoinTern(タイムライン)のCoin Z(任意で設定した名前であるはず)からノードを伸ばし「Make Rotator」を呼び出し、Z(Yaw)に繋げます。

これでReturn ValueからSetRelativeRotationのNew Rotationに繋げられるはずです。

やっていて気づいたのですが、色によって繋げられるのが分かれてるっぽい・・・?それならとても分かりやすいですね!

CoinTern(タイムライン)のUpdateもSetRelativeRotationに繋げてあげましょう。

f:id:program-shoshinsya:20181120221812p:plain

これで1秒にfloat型でZ値を360になるようにループするという設定ができました。

コンパイルして実行してみます。

f:id:program-shoshinsya:20181120221918p:plain

値が更新されているのがノードの流れで分かると思います。

Gifの撮り方がわからないので回転している様子は載せることができませんが、ちゃんと回転してくれました。

自分が使用している参考書