ここから記事に進化していく・・・はず。
TMap/TSetのデバッグ
プラグイン追加時の警告
UnrealBuildTool: Warning: Plugin 'A' does not list plugin 'B' as a dependency, but module 'A' depends on 'B'
プラグイン「A」はプラグイン「B」を依存関係としてリストしていませんが、モジュール「A」は「B」に依存しています。
.upluginへの依存関係リストの追加漏れが原因。
https://answers.unrealengine.com/questions/704619/unrealbuildtool-dependancy-warning.html?sort=oldest
UnrealFrontEndのプロファイルをコピーしたい
[UE4] Custom Launch Profile を複製する方法
UE4のカメラ操作のpanの反転(maya)
[編集] -> [エディタの環境設定] -> [ビューポート] -> [Invert Middle Mouse Pan]
Unreal Header Toolはbool配列をサポートしていない?
UPROPERTYを伴って宣言するとUnreal Header Toolはエラーを吐く。
UPROPERTY(BlueprintReadOnly)
bool clear[100];
Bool arrays are not allowed.
というエラーが出る。
同じ名前のオブジェクト作ったら強制終了するお話
[Bug] Objects have the same fully qualified name but different paths.
SEGAさんのTIPs
Optimizing Unreal Engine 4’s async file IO thread.
https://pzurita.wordpress.com/2014/06/30/optimizing-unreal-engine-4s-async-file-io-thread/
そのうち読む。読むんや。しんどそうだけど…。
ウィジェットにドラッグした時の反応を入れたい
https://dawnarc.com/2018/11/ue4umghow-to-drag-item-to-scrollbox-using-c-/
https://github.com/absentje/UE4/blob/master/RTS_Game/Source/RTS_Game/Private/UI/Inventory/ItemDrag.cpp
https://github.com/absentje/UE4/blob/master/RTS_Game/Source/RTS_Game/Private/UI/Inventory/ItemSlotWidget.cpp
https://docs.unrealengine.com/ja/Engine/UMG/HowTo/DragAndDrop/OnDragDetected/index.html
UE4エディタ拡張でプログレスバー
UE4の詳細ログを表示したい
-execcmd="log loginit veryvarbose"
シェーダーコンパイルだけIncrediBuildを無効化
[SystemSettings]
r.XGEShaderCompile=0
Latentノード便利そう
うまく動作しない・・・
UPROPERTY(EditAnywhere, Meta=(MakeEditWidget = true))
FVector position;
Bind Wedgetの話
ログメッセージ
GEngine->AddOnScreenDebugMessage(-1, 20.0f, FColor::Black, "msg");
C++からBPへ通知
Actorを生成したい
UFunctionをオーバーライドする
GameModeに設定されたPlayerControllerを取得したい
TArray
ソートしたい。
TArray<FData*> param;
param.Sort([](const FData& LHS, const FData& RHS) { return LHS > RHS; });
TMap
TMapをconstにするとなぜか怒られる。
const TMap<int32, FString> map;
ランダム
FMath::FRandRange
ActorComponentのライフサイクル
InitializeComponentがエディタでコンパイルボタンを押しても呼ばれる
処理時間
- NewObject
メモリの確保を行う。オブジェクトがウィジェットのようにツリー構造の場合、その数だけ正比例して処理時間は長くなる。 - AddViewPort
オブジェクトの初期化を行う。スレッド登録なども行われる。NewObject同様に処理時間が長い。
enumについて
BPへのバインド
USTRUCTはUFUNCTIONを持てない
分散コンパイル設定
設定ファイル
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<BuildConfiguration>
<!-- SNDBS -->
<bAllowSNDBS>true</bAllowSNDBS>
<!-- Incredibuild -->
<bAllowXGE>true</bAllowXGE>
</BuildConfiguration>
</Configuration>
*My Documents*/Unreal Engine/UnrealBuildTool/BuildConfiguration.xml
に配置するとプロジェクトの設定を上書きできて楽。
参照
UObjectに関するメモ
タグ付けって何してるのか?
タグ付けの印? 内部的にUCLASSの引数なのか?
アンリアルベースの型とは?
アンリアルベースの型を記述するとはどういう意味か?
CDO は、 基本的にデフォルトの 'template' オブジェクトtemplate 維持する
"template"とは
"template"と型情報の違い?
AUTOジェネレートのテンプレートと同義なのか?
'template' オブジェクト = タグ付けのタグ? = auto generated されたヘッダファイル? = アンリアル固有のメタデータ?
タグは誰が識別するため? おそらくエディタ、もしくはBP=つまりエンジンが理解する
auto generated されたファイルとタグ付けの話が一緒?
c++からBPにバインドする作業を兼ねている?
バインドとは? = 動的型付け言語の変数「束縛」 = ラムダの束縛と一緒? =
クロージャとバインドは一緒? → 違う
アンリアル固有のメタデータ って何?
ゲーム オブジェクトを処理する堅牢なシステム = オブジェクト システム?
ネイティブコードでマクロを書いたらそれがタグつけしたという意味ですか?
タグ付けがアンリアル上での振る舞いを定義している?
プロトタイプベースオブジェクト指向?
タグつけしてないプロパティもある。 UPopatyなどのマクロをつけていないものの話なのか?
UCLASS 内のプロパティ と ネイティブのみのプロパティの関係とは何か?どう違うのか?役割?
NewObjectに指定するOuterって何?
Outerを指定する場合としない場合の違いは何か?
Outerのデフォルト引数のGetTransientPackageって何か?
Transientてどういう意味?
OuterとPackageの関係とは?
名前コンフリクトとは?
new演算子で生成されたUCLASSはガベージコレクトされるのか?
NewObject -> 変数初期化
AddViewPort -> スレッドの登録
マーク付け + タグ付け
UPROPATYのマクロのオプションtransient
ポスト コンストラクタ
ポストイニシャライザ
アンリアルヘッダツール
ランタイムかた情報
IsA
UCLASS型のインスタンスが型情報で
smalltalk
コンカレント GC