対象のアクターの手前までプレイヤーを移動させる方法

自身を対象のアクターの手前まで移動させる処理を紹介します。

 

~対象のアクターを作成~

まず対象のアクターNPCを作成します。

「ThirdPersonCharacter」をコピーしただけです。

f:id:Free_Gamer:20210125213451p:plain

 

作成した「NPC」を、適当な位置に配置します。

f:id:Free_Gamer:20210125221913p:plain

 

~レベルBPの作成~

処理は以下の通りです。

f:id:Free_Gamer:20210125215952p:plain

 

「Qキー」を押した時に、プレイヤーをNPCの手前まで移動させるカスタムイベント

「MoveToTheFrontEvent」を呼び出します。

f:id:Free_Gamer:20210125220028p:plain

 

「MoveToTheFrontEvent」の処理です。

純粋関数「CalculateFrontPosition」で、NPCの手前の位置を求め、その数値を

変数「FrontPosition」に格納します。

その後、タイムラインでプレイヤーを移動させる処理と

プレイヤーをNPCに向ける回転処理を行います。

f:id:Free_Gamer:20210125220047p:plain

純粋関数「CalculateFrontPosition」の中身は、以下の通りです。

f:id:Free_Gamer:20210125220534p:plain

 プレイヤーがNPCを貫通しない為に

「MapRangeUnclamped」で制限を設けてます。

多分「MapRangeClamped」でも行けると思います。(多分)

f:id:Free_Gamer:20210125220633p:plain

 

タイムラインは以下の通りです。

時間は「0.1」に設定してあります。

「0秒」に値「0」のキーがあり

「0.1秒」に値「1」のキーがあります。

f:id:Free_Gamer:20210125221105p:plain


カスタムイベント「MovePlayer」で

プレイヤーをNPCの手前の位置まで移動させます。

f:id:Free_Gamer:20210125220809p:plain

 

カスタムイベント「PlayerLookAtRotation」で

プレイヤーをNPCに向けます。

f:id:Free_Gamer:20210125220915p:plain

 

これで完了です。

youtu.be

 

動画のように、どの方向からでもNPCの手前まで移動できているようになっていれば
OKです。

 

それではまた^^ノシ