UnrealEngineでアクターを移動させるブループリントを作ります。
UnrealEngine4で波動拳 その1 | ぴよキャラ先生のひよこベース というブログを見て、波動拳ではないけどUE4で弾撃ちみたいなものがしたくなりました。ブループリントは意味がわからなくても画像の通りつなげばいいだけなので結構簡単かとおもいきや、盛大にはまってしまいましたので、アクターを移動させるブループリントを整理してここに記しておきたいと思います。
アクターを移動させるブループリントの下準備をする
アクターを移動させるブループリントですので、なんらかのアクターが必要になります。この下準備でも大事なポイントがあります。
- Geometoryにはブループリントがつかえないので、ベーシックのアクターを用意する
- 配置したアクターの詳細パネルでMobilityの項目をMovableにしておく(重要)
- EditBluePrintボタンをおし、アクターのブループリントを作成する
Mobilityの項目でMovableをえらんでおかないとブループリントを組んでも、アクターは動いてくれません。アクターをうごかす必要がある場合はMovableはをえらぶようにします。これは公式マニュアルでも言及されています。
アクターを移動させるブループリントを作る
とりあえずアクターを移動させるブループリントの完成品をみたあとに、このブループリントノードはどういうことになっているのか、またいくつかのポイントについて解説したいと思います。
各ノードの役割は以下になります。
- EventTick → 毎フレームよばれるイベントになります。
- World_setting → 変数になります。
- GetActorLocation → アクターの位置を取得します
- SetActorLocation → アクターの位置をセットします
World_settingsは自前で作成した変数になります。この変数の型は vector型 になっています。またこの変数の値を設定していなったか場合、結果的には当たり前なのですが動きません。私はこの値を設定していなかったので盛大にはまっていしまいました。
結局のところ上記のブループリントノードは毎フレーム20ずつ移動するノードになります。位置取得 → 20移動 → 位置取得 → 20移動 を毎フレームくりかえしているのでアクターが移動しつづけることになります。変数の値は結果的には移動のはやさになるので適切に設定する必要があります。
BPTips アクターの移動 動画
動画ににしてまとめておきます。
アクター移動ブループリントの補足事項
最初に紹介したひよこベースというサイトにも書いてありますが、このままではアクターが移動しつづけるので、DelayノードとDestoryノードを使って「〇秒後にアクターを消す」というプログラムを上記のノードに追加します。
SetLocationNodeのSweepにチェックをつけると(trueにしておくと)、アクターがなにかにぶつかると停止します。
コメント