重力を0から組む-違う惑星に行きたい-
※素人による記事の為、間違いがある可能性があります
※個人用備忘録ですが、何かご指摘ございましたらコメント頂けたらと思います
下記記事の続きです、他の惑星に行くときのやり方を説明します。
参考元
Fly インプットを作成
飛ぶ用のインプットが欲しいので作ります。
・インプットアクションを新規作成
・IA_Flyにリネーム
IMC_Default(Input Maping context)に設定します。
AnimMontage を作成
飛んでる時にして欲しいアニメーションアセットを用意して下さい
そのアニメーションアセットの AnimMontage を作成
飛ぶのをやめた時用の AnimMontage が欲しいので
着地アニメーションの MM_Land の AnimMontage も作成
惑星ブループリントを作成
コンテンツブラウザ右クリック
BP_planetにリネーム
Sphereを追加
マテリアルを設定
DefaultSceneRootと置き換える(念のため)
スフィアコリジョンも追加
SphereColisionとかに適当にリネーム
半径を適当にでかくしておく
元あった惑星と置き換え
もう一つ適当に配置
プレイヤーBPを整理
CUM_PlanetWalkerを開く
まず、ノードを整理しましょう。
赤枠の「引力&垂直に立つ」部分のノードをまとめて
StandingPlanet とリネーム
後半の「進行方向に向く」部分も折り畳んで
Rotate Yaw にリネーム
プレイヤーを飛行させる
変数を作成
Flyingにリネーム、Bool値に設定
画像の様に組みます
Flyインプットを押したら、Flyingをオン、モンタージュを再生
離したら、Flyingをオフ、モンタージュを停止
A 飛ぶ用のAnimMontageを指定
B 着地用のAnimMontageを指定
更に画像のように組みます
Flyingがオンなら、前に飛ぶ、進行方向を向く
Flyingがオフなら、惑星の引力発生
惑星の位置情報をプレイヤーに渡す
惑星立の中心位置をプレイヤーに渡して、他の惑星の重力下で歩けるようにしたいです。
別のアクターとの情報のやり取りが必要になります。
それについては下記リンクにまとめています(書きかけだけど)
今回はブループリントインターフェースを使います。
コンテンツブラウザで右クリック
ブループリントインターフェースを作成
BPI_PlanetGravityにリネーム
BPI_PlanetGravityを開き
関数名をSetWorldOriginに
Inputを新規作成
WorldOriginにリネーム、Vectorに変更
BP_planetを開く
コリジョンに入った時のイベント作成
画像の様に組む
CUM_PlanetWalkerを開く
ClassSetting > Interfaces > ADD > BPI_PlanetGravityを指定
画像の様に組む
完成です!!他の惑星に旅立ってください!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
この記事が気に入ったらサポートをしてみませんか?