立位のみを想定しています

最初に

テンプレートのテレポートには様々な関数と変数が使用されており一見複雑に見えますが、テレポート自体の仕様に注目してみると実はかなりシンプルにできています。以下に簡単に示すと

  1. テレポートボタンを押す
  2. コントローラーの地点から変数で定めた力で投擲物を投げるシミュレーションをしテレポート地点を設定します
  3. ボタンを放してテレポートを実行します。

また移動する際にはデフォルトで用意されているTeleport関数が使えるのでそれを使用します。

他に実装されている内容は

  1. 投擢シミュレーションの軌跡上にSpline pointを置き、それにのっとってbeam meshを設置することでシミュレーションの軌跡を可視化する
  2. トラックパッドの押されている位置からテレポート後のPlayerの向きを計算する
  3. 各々のメッシュのVisibilityの設定

です。

テレポートの仕様だけを考えると簡単にできるのですがやはり軌跡が見えないと非常にUXが悪いので実装した方がよいでしょう。

しかし2のトラックパッドの方向に関してはテンプレートを触るとわかりますが少し特殊な操作に感じられるので別に必須ではないと思います。

テレポートする地点はWorldStaticのオブジェクトでNavMeshBolumeが設定されている必要があります。

実装の分離

テンプレートのテレポートはコントローラーとCaneraをもつPlayerPawnが分離していることが前提に作られています。それぞれで次の機能を実装しています。

実装