ネリスさん備忘録

主にUE4の備忘録を残すよ!

【UE4】今日の進捗

youtu.be

崖捕まりのようなもの…

今はまだ、掴まるだけ。

 

これによじ登るRootMotion入れて登るのと

掴まり判定成立時に正常な位置に固定するのと

掴まり解除で落ちるのがいる

 

登るのはうまく行かないから、掴まり状態からジャンプできるようにした。

降りるのもそれでやってくれって感じで

 

ジャンプ時に掴まり状態のフラグやら設定をリセットしないとね

【UE4】便利ぃ!カメラとかの便利グッズ

unrealengine.hatenablog.com

はえー…

SetViewTargetWithBlendを使うことで、カメラA→Bのブレンドをしてくれるのかぁ

プレイ中視点をどこかに向けたいだけならこれで十分だなぁ

 

docs.unrealengine.com

これでプレイ中のキャラクターに強制的にアニメーションを入れられるんだなぁ


【UE4】Widgetのアニメーションにイベントを!

設置できる!(ドン!)

 

Widgetのアニメーションの特定の場所にイベント通知置いて発行できたんだぁ…

いや、あるだろうとは思ってたけど、どこにあるかわからないやつですね。

 

何のことはない、アニメーションの「+Track」の中にイベントを追加できる項目があるじゃんか…

 

f:id:LunaNelis:20200619012442p:plain

 



 

【UE4】ゲーム進捗。空中攻撃ができるようになったよ

今日の進捗。

ターゲットした的に対して、ジャンプ中に空中攻撃ができるようになった。

youtu.be

空中攻撃がヒットするとジャンプ回数が0.5秒間追加され、再度ジャンプアタックの機会が与えられる。

ちなみに、高いところから落ちた場合のジャンプをしていない場合は空中攻撃ができないようにした。

 

とりあえず、動画のように敵を踏み台にして向こう岸へ行くと行ったギミックができそうだ

 

崖捕まりとか、木箱を押して足場を作るとか、そういうのもしたいな。

でもその前に、オブジェクトに反応をするインタラクト処理かな?

スイッチを押すとギミックが作動する!みたいなやつ

 

UIもそろそろ仮でつくらないとだなぁ

【UE4】ダメージ床を作ろう!

ダメージ判定を行うとき、BoxTraceとかを使って範囲内のキャラクターにダメージを与える。

とてもシンプルでありふれた処理だ。

 

瞬間的なダメージであればこの処理で問題ないが、

毒沼や炎の床、毒の充満した部屋といったスリップダメージ系のダメージは若干困る。

実装そのものはTrace系でも可能なのだが、その場合は入ったかどうかを毎Tick確認するといった作業が必要になりがちである。

毎Tickオブジェクトをチェックするのは非常に処理によろしくないので

そんな時に助かるのが「Pain Causing Volume」というボリューム。

docs.unrealengine.com

 

使い方は簡単。レベルに配置して、DPSを設定して、ダメージ間隔を設定する。

するとそのボリュームに入ってきた相手にダメージを設定値で投げ続ける。

 

ボリュームなので手軽に置けて、調整も楽々。

形も各種取り揃えているので困らない。

 

便利だ…便利すぎる…

 

しかし、若干の落とし穴。

ペイン(痛み)のボリュームであって、癒しのボリュームではないのである。

回復する聖域のようなものには使えないのであった。

https://answers.unrealengine.com/questions/227159/%E3%83%A9%E3%82%A4%E3%83%95%E3%82%92%E5%9B%9E%E5%BE%A9%E3%81%99%E3%82%8B%E9%A0%98%E5%9F%9F%E3%82%92%E4%BD%9C%E3%82%8A%E3%81%9F%E3%81%84.html?childToView=227937

 

【UE4】禁忌?RootMotionに対して回転入力をかける!

少し前にやった移動処理を自分で更新してやるという記事

lunanelis.hatenablog.com

これの結果どういった事ができるのかを動画化した。



youtu.be

 

RootMotionは本来移動や回転の更新をプレイヤーから奪い、アニメーションに設定されている移動と回転に固定される。

しかし、攻撃モーションなどは大体の場合踏み込みで前に出る。これをRootMotionじゃない状態で再生すると、足が滑ってて大変見栄えがよろしくない。

そんなのは嫌だったので、自分で更新をかけることでRootMotion中だろうが回転ができるようになった。

ダークソウルとかでも攻撃中振り向いたりできるアレですね。

 

ちなみに、攻撃モーション中は移動量を0にしてるので入力しても回転だけする。

これやらないと滑っちゃうねんな…

 

もしかしてUE4にはデフォルトで入力を受け付けるRootMotionの機能があるかもしれないけどね。調べても出てこないのだ

 

 

 

 

【UE4】3D座標を2D座標に変換してWidgetに表示しよう!

まず、ConvertWorldLocationToScreenLocationというノードがあり

これはPlayerControllerと3D座標を渡すことで2D座標に変換してくれる非常に便利なノード。

f:id:LunaNelis:20200612091209p:plain

 

しかしこのノードには問題点があり、スクリーン座標で値を返すので、そのまま使うとズレる…あかんやんけ

 

その対策として、帰ってきた2D座標を「GetViewportScale」で割る。

細かいことはともかく、これで正常な座標に変換できる。

 

やったね