PR

Unreal Engine コツコツ自習_プレイヤーを瞬間移動させる方法

UEコツコツ自習シリーズ
スポンサーリンク

プレイヤーを瞬間移動させる

今回はプレイヤーを瞬間移動させる方法を備忘録にします。

※作業環境:UEバージョン5.3.2

備忘録

プレイヤーがアクタ(オブジェクト)に触れたときにプレイヤーを指定した場所へ瞬間移動させます。

アクタを作成してブループリントを開き、触れた時の処理を作る

コリジョンを作成して、接触処理を機能するようにします。

コリジョン詳細の下の方にノードを配置する項目があるので「On Component Begin Overlap」をクリックします。

(コリジョンを選択した状態で「Details」の「Events」にある「On Component Begin Overlap」横の「+」をクリック)

するとEvent Graphに「On Component Begin Overlap(~)」ノードが配置されるので、処理を組んでいきます。

  • 「On Component Begin Overlap」は、オブジェクト同士が接触した瞬間に呼び出されるノードです。
  • 「Other Actor」ピンからは触れた相手(今回はプレイヤー)アクタを出力します。
  • 「Get Actor Location」ノードでアクタの位置を取得します。(今回はプレイヤーの位置)
  • 「Do Once」ノードを設置しているのは1回だけ処理したいからです。

「Do Once」ノードを外して「Print String」ノードを繋ぐと、複数回処理が実行されていることが確認できると思います。(試さなくても良いです)

「Spawn Enitter at Location」は、エフェクトを生成するためのノードです。

入力ピンの「Emitter Template」には発生させたいEmitter(エフェクト)を選びます。

・「Get Actor Location」の「Return Value」からプレイヤーの位置が出力されるので、「Spawn Enitter at Location」に繋げます。

 瞬間移動する際に、煙エフェクトをプレイヤーと同じ位置に生成させるためです。

・「Spawn Enitter at Location」ノードはお好みに設定してください。(ノード説明はこちら

「Play Sound at Location」は、音を流すノードです。

「Destroy Component」ノードでエフェクトを消します。

・エフェクトを消す処理を「Delay」ノードで少し処理を遅らせます。

これが無いとエフェクトが一瞬で消えてしまいます。

エフェクトを消したら、プレイヤーを瞬間移動させます。

「Set Actor Location」ノードでプレイヤーを指定した位置まで移動させます。

 入力ピンの「New Location」に移動させたい位置を設定します。

 今回は変数にして繋げていますが直接ノードに入力することも可能です。

 入力ピンの「Teleport」にはチェックを入れます。

 これを忘れると現地点から移動先までで障害物があると移動に失敗します。

「Get Player Character」はプレイヤーアクタを取得するノードです。

 「Set Actor Location」ノードの入力ピンのTargetに繋げます。

完成

自作のエフェクトや音声を使って、いろいろ試してみてください。

他の記事を探す

他の記事も気になる方は、以下の記事の目次を確認ください。

タイトルとURLをコピーしました