やあ
ただひたすら見つけたことを書いていくだけ。
ここ違うよとか、こうすればいいよとか教えていただけたら助かります。
目次
UnrealC++全般
GENERATED_UCLASS_BODYマクロを使うとBlueprintNativeEventでコンパイルエラーが起こる
------- 例 -------
UCLASS() class HUGA_API AHogeChara : public ACharacter { GENERATED_UCLASS_BODY() public: UFUNCTION(BlueprintCallable, BlueprintNativeEvent) void PiyoPiyo(); /* _Implementationで関数はすでに本体を持っていますとコンパイルエラーが出る。 */ void PiyoPiyo_Implementation(); }
------- 解決策 -------
GENERATED_UCLASS_BODY
をGENERATED_BODYマクロ
に変える。
目次に戻る
UE4 全般
StaticMeshにもソケットを作れる
StaticMeshアセットを開いて、
ウィンドウ→ソケットマネージャー→ソケット作成
あまりにも遠い場所でStaticMeshをSkeletalMeshにアタッチするとStaticMeshの挙動がおかしくなる
x: 1e6, y: 0, z: 1e7
という座標でSkeletalMeshにStaticMeshをアタッチすると、StaticMeshががくがくと震えて気持ち悪い挙動になる。
解決策
z: 1e6にすると直った。
UMG
Constructの呼ばれるタイミング
WBPのConstructの前後に処理をしたい(C++)
Super::NativeConstruct()
を呼び出した時点でWBP
のConstruct
が呼ばれるので、
WBP
のConstruct
前に処理をしたい場合は
void UMyWidget::NativeConstruct() { Super::NativeConstruct(); /* ~ Any ~ */ }
WBP
のConstruct
後に処理をしたい場合は
void UMyWidget::NativeConstruct() { /* ~ Any ~ */ Super::NativeConstruct(); }
WBPのConstructの前後の処理をしたい(WBP)
前に処理をしたい場合はPreConstruct
後に処理をしたい場合はConstruct
の後ろにくっつけるだけ
ListViewについて
・ListView
のEntryWidgetClass
に設定するWidget
(ListViewEntryWidget
)のTickFrequency
は必ずAuto
にしておく必要がある。
Never
にすると、エラーを吐いて1~2秒ほどフリーズする。
・ListViewEntryWidget
のルートのVisibility
はVisible
にしておく必要がある。
それ以外の場合だと、Hover
やClicked
などのイベントは呼ばれない。
パッケージ化
プラグインを含んだBPプロジェクトをパッケージ化するとプロジェクトが開けない
プラグイン(多分C++のコミュニティプラグイン)を含んだBPプロジェクトをパッケージ化すると、
Plugin "PluginName" failed to load because module "PluginName" could not be found
というエラーが出る。
解決策
1. .uproject
ファイルを右クリックして、Generate Visual Studio project files
をクリック。
生成された
.sln
を開いて、Ctrl+B
でビルド。ビルドが終わったら再びパッケージ化してみる。
原因がこれだけならこれで終わるはずです。