UE4

UE4 Blenderから持ってきたアニメーションの骨の位置がおかしくなる問題

やあ Blenderで作った特定のアニメーションを、UE4に持って行ったら、ルートの位置に腰が来てしまう問題が起きたんだ。 その原因と解決策がわかったっぽいのでメモとして残しておくよ。 環境 ・UE4.26.2 ・Blender2.91.2 実際に起こっている問題 左がアニメ…

UE4 PhysicsConstraintを使用したStaticMeshのSimulatePhysicsを切り替えると位置が戻る

やあ プレイヤーが押すと特定方向に動くアクターを作ってたら、 SimulatePhysicsを切り替えるとStaticMeshの位置が戻ってしまう現象が起きたんだ。 環境 UE4.26.2 問題が起こってた部分 SimulatePhysicsを有効にした後に、プレイヤーがアクターを押す方向に…

UE4 WorldCompositionのサブレベルでMoveToを使ったら動かなかった話

やあ World Compositionのサブレベルで、敵キャラクターを巡回させるためにMoveToを使ったら、全然移動しなくて1時間くらい悩んでたから、考えられる原因とその解決策を残しておくよ。 環境 UE4.26.2 考えられる原因 ・Navimesh Bounds Volumeを配置してない…

UE4 C++ GameplayAbilitiesのAttributeSetをJsonに書き込んだり読み込んだり

やあ ゲームのセーブ、ロードの実装中にAttributeSetをJsonに保存したいなーって思って調べたよ。 前置き Json関連のものを使えるようにするためにモジュールを追加する。 PublicDependencyModuleNames.AddRange(new string[] { "Json", "JsonUtilities" });…

UE4 C++からアセットを作る

やあ データテーブルから大量のデータアセットを作ろうと思ったときに、面倒だったから自動化したいなーって思って調べてみたよ。 やあ 環境 準備 やる 新しいDataAssetFactoryクラス EditorUtilityWidgetクラスを作る おまけ BP版 環境 UE4.26.0 準備 C++の…

UE4 レベルからレベルにイベントを送る方法

やあ WorldCompositionを使ってて、サブレベルのLevelBounds内にプレイヤーが入った時に、空やフォグの設定を変えたいなーって思ったときによくわからなかったので、調べてみた。 準備 レベルを用意。 今回はトリガーにキャラクターがオーバーラップしたらイ…

UE4 WorldCompositionのレベルの高さを変えたい

やあ WorldCompositionで作ったレベルのZ座標が気に食わなくて、Z座標を変えようと思ったときに、LandscapeStreamingProxyやLevelBoundsのZ座標を変える方法がわかりにくかったのでメモしておくよ。 やる レベル管理タブでレベルを選択。 レベル管理タブがな…

UE4 NiagaraのLOD?

やあ レベルに置いた滝の煙が遠くから見えてしまっていたので、NiagaraにLODがあるか調べた結果、Scalabilityにたどり着いた。 やる Emitter Stateの下にあるScalabilityです。 1. Scalability Modeをselfにする。 2. Enable Distance Cullingを有効化。 カ…

UE4 Waterプラグインが動いてうれしい

やあ Waterプラグイン入れたのはいいものの、海や湖など、レベルに配置しても何も表示されなくて困ってたのが解決した話だよ。 環境 UE4.26.0 WorldCompositionを使ってるよ。 動くようになるまでにやったこと レベル上にあるLandscapeアクターの編集レイヤ…

UE4 splineあくたー

やあ レベルデザインで、道を作るのにLandscape Splineを使おうと思ったら、凹んだメッシュでは衝突判定が起きないことが分かったのでsplineアクターでやることにしたよ。

UE4 UMGのコンストラクタ/デストラクタが呼ばれるタイミング

やあ UMG(WidgetBlueprint)のコンストラクタが呼ばれるタイミングを調べてみたよ。 間違ってたら教えてください。 Constructの呼ばれるタイミング ウィジェットがViewportに追加されたときに呼ばれます。 こんな感じのWBPがある。 呼ばれる例 AddToViewport…

UE4 UMG WBPをWBPに直接配置するとオブジェクトの数が増える話

やあ 調べ方が悪いんだろうけど、調べてもなにも情報が出てこなかったのでメモしておく。 使ったプロジェクト github.com 問題 例えば、UserWidgetから継承したクラス、WBP_CustomButtonとWBP_ChoiceUIがあったとする。 このWBP_ChoiceUIにWBP_CustomButton…

UE4 C++ GameplayAbilitySystemを勉強していくPart.3-4 GameplayEffectExectuionCalculation

やあ GameplayEffectExectuionCalculationについてのメモ 以下GEECと略します。 間違ってるところなどあれば教えてください。 目次 やあ 目次 キャプチャするAttribute キャプチャするAttributeの宣言 キャプチャするAttributeをGEECの内部で処理できるよう…

UE4 C++ TSoftClassPtr(TObjectPtr)のメモ

やあ メモなので期待しないでください。 一部、感想や想像が含まれます FStreamableManagerの宣言場所 ・SingletonやGameInstanceなど、値を永続的に保持する場所で宣言する。 レベル遷移中のアセットの読み込みとかそのキャンセルをするときに、そういった…

UE4 GameplayEffectを適用するだけのGameplayAbilityを実行してクラッシュするだけのおばかな話

エラーの内容 Assertion failed: Spec.Ability [File:D:/Build/++UE4/Sync/Engine/Plugins/Runtime/GameplayAbilities/Source/GameplayAbilities/Private/AbilitySystemComponent_Abilities.cpp] [Line: 250] めちゃくちゃどうでもいいことをだらだらと書い…

UE4 UIの端だけにフェード処理を掛ける

やあ UIの端っこだけフェードアウトしたいなーって思って作ったよ。 フェード処理をするためのマテリアル 線形グラデーションを掛け合わせて左右(上下)にかけてグラデーションさせてるだけ。 このマテリアルを右クリックしてインスタンスにしておくとパラメ…

UE4 Niagara scale

やあ Niagaraで作ったエフェクトの大きさ変更する方法を書いておくよ。 ユーザーパラメータで拡大縮小する ユーザーパラメータにfloat値のパラメータを作成。 パラメータを掛ける。 エディタから値を変える BPから値を変える トランスフォームの値で拡大縮小…

UE4 Niagara LockAxis

パラメータのパーティクル属性にSpriteFacingを追加。 パラメータに追加したSpriteFacingをパーティクル更新にドラッグアンドドロップ。 レンダリングをクリックして、FacingModeをCustomFacingVectorに設定。 パーティクル更新に追加したSpriteFacingをいじ…

UE4 Tips

やあ ただひたすら見つけたことを書いていくだけ。 ここ違うよとか、こうすればいいよとか教えていただけたら助かります。 目次 やあ 目次 UnrealC++全般 GENERATED_UCLASS_BODYマクロを使うとBlueprintNativeEventでコンパイルエラーが起こる UE4 全般 Stat…

UE4 C++ GameplayTagが追加/削除されたときに処理をする方法

やあ やる おまけ。GameplayEffectが適用/削除されたときに処理をしたい場合。 やあ 制作中のゲームで状態異常を実装しようと思ったときに、どうすればいいんだーってAbilitySystemComponentのソースを読んでたらタグが追加/削除されたときに処理ができるの…

UE4 GameplayTagが追加/削除されたときにイベントを受け取って処理をしたいときに見るメモ

目次 目次 やあ 環境 実装? おまけ(GameplayEffectを適用したときに適用した相手にタグを追加したい) やあ 攻撃されて毒になったり、混乱状態になったりとしたいときに、GameplayTagが追加されたらエフェクトをだして、GameplayTagが削除されたらエフェクト…

UE4 GameplayEffectが適用された/削除されたときになにかしたいときに見るメモ

目次 目次 やあ 環境 内容 やあ GameplayEffectが適用された/削除されたときになにかしたいなーって思って。 環境 UE 4.25.0 内容 hoge.h /* 自分にGameplayEffectが適用されたときに呼ばれる関数 */ UFUNCTION(BlueprintCallable) virtual void OnAppliedGa…

UE4 C++ BTTaskのTickTaskを走らせる方法

目次 目次 やあ 環境 実装 やあ メモだよ 環境 ・UE4.25.0 実装 BT_T_Hoge.h // Copyright(C)write by pto8913. 2020. All Rights Reserved. #pragma once #include "CoreMinimal.h" #include "BehaviorTree/Tasks/BTTask_BlackboardBase.h" #include "BT_…

UE4 アニムグラフからAnimNotifyを飛ばす方法

目次 目次 やあ 環境 やる ステートマシンからAnimNotifyを飛ばす場合 ステート開始イベントからAnimNotifyを飛ばしてみる ステート離脱イベントからAnimNotifyを飛ばしてみる ステートブレンド完了イベントからAnimNotifyを飛ばしてみる トランジションイベ…

UE4 OnOverlapイベントからHitResultを受け取りたいときに見るメモ

やあ やるだけです やあ 敵キャラを攻撃したときや、攻撃されたときに、攻撃された向きでリアクションを変えようと思っていたんだ。 だけど、OverlapイベントからHitResultを取得できるのは、オーバーラップしたアクターが動いてるもの(SweepがTrueの時)?だ…

UE4 C++ 特定の階層下のGameplayTagを判定する(ごり押し)

やあ やるだけです 汎用化?(引数にGameplayTagContainer) 汎用化?(引数にGamepalyTag) やあ タイトルの通りだよ。 特定のタグ階層下のGameplayAbilityが呼び出されたときに、処理をしようと思ったんだけど、MatchesAnyやMatchesAnyExactでは判定できなかっ…

UE4 SendGameplayEventToActorが動かない時に見るメモ

やあ イベントタグが揃っていますか? やあ タイトルの通りだよ。 間違っているところなどありましたら教えてください。 イベントタグが揃っていますか? blueprintue.com

UE4 どの方向から攻撃されたかを調べる方法

やあ 概要 実装 やあ タイトルの通りだよ。 もっといい方法があれば教えてください。 BPで書いてもいいけどノードをつなぐのが面倒だったので、C++で書いたよ。 概要 キャラクターのCapsuleComponentのRightVectorをDotProductしてDegAsinした結果と、同じく…

UE4 ポーションを入れたガラスに透過処理したくない時に使うマテリアル

やあ 結果 実装 簡単な説明 やあ キャラクタモデルが持つかばんにポーションをくっつけたいなって思って、ポーションをつくったんだけど、 こういった小物?に透過処理を使うのは無駄な処理な気がしたから、代替マテリアルを作ったよ。 全然難しいことはして…

UE4 AsyncLoadPrimaryAssetでアセットをロードしてもコンプリートイベントが呼ばれない

やあ チェックすること ロードしようとしているアセットがすでにロード 対処法 AssetManagerに登録されてない 対処法 やあ AssetManagerを使ってレベルストリーミングを高速化しようとした時に、 AsyncLoadPrimaryAssetでレベルを読み込んでCompletedイベン…