プレイヤーを瞬間移動させる
今回は、プレイヤーを瞬間移動させる方法を備忘録にします。
※作業環境: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」ノードを配置します。
「Do Once」ノードを配置しているのは、アクタが接触したときに複数回処理が実行されてしまうのを防ぐためです。
「Do Once」ノードを外して「Print String」ノードを繋ぐと、複数回処理が実行されていることが確認できます。
- 「Spawn Emitter at Location」ノードを配置します。
- Inputピンの「Emitter Template」に、発生させたいEmitter(エフェクト)を指定します。
- 「Get Actor Location」ノードの結果を「Spawn Emitter at Location」ノードに繋げます。
瞬間移動する際に、エフェクトをプレイヤーと同じ位置に生成させています。 - 「Spawn Enitter at Location」ノードの他の設定は、場面に合うように変更します。
- 「Play Sound at Location」ノードを配置します。
- 「Get Actor Location」ノードの結果を「Play Sound at Location」ノードに繋げます。
- 「Delay」ノードを配置します。
これで次の処理を少し遅らせます。 - 「Destroy Component」ノードを配置します。
- 「Spawn Emitter at Location」ノードの結果を、「Destroy Component」ノードに繋げます。
- 「Set Actor Location」ノードを配置します。
- 「Get Player Character」ノードを「Set Actor Location」ノードに繋げます。
- Inputピンの「Teleport」に、チェックを入れます。
- Inputピンの「New Location」を変数化します。
- この変数値を変更して、移動させたい位置に設定します。
これで完成です。
テストプレイして、このアクタに触れたときにプレイヤーが瞬間移動すればOKです。
自作のエフェクトやサウンドを使って、いろいろ試してみてください。
他の記事を探す
他の記事も気になる方は、以下の記事の目次を確認ください。