LoginSignup
8
7

More than 3 years have passed since last update.

★Unreal Engine 4メモにもならない雑記

Last updated at Posted at 2018-02-21

ここから記事に進化していく・・・はず。

TMap/TSetのデバッグ

Debugging tmap and tsets

プラグイン追加時の警告

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はエラーを吐く。

sample.cpp
UPROPERTY(BlueprintReadOnly)
bool clear[100];

Bool arrays are not allowed.というエラーが出る。

Bool arrays in c++? - Forums

同じ名前のオブジェクト作ったら強制終了するお話

[Bug] Objects have the same fully qualified name but different paths.

SEGAさんのTIPs

20年オヤジのUnreal Engine 4 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を無効化

[プロジェクト名]/Config/DefaultEngine.ini
[SystemSettings]
r.XGEShaderCompile=0

Latentノード便利そう


うまく動作しない・・・

UPROPERTY(EditAnywhere, Meta=(MakeEditWidget = true))
FVector position;

Bind Wedgetの話


ログメッセージ

sample.cpp
GEngine->AddOnScreenDebugMessage(-1, 20.0f, FColor::Black, "msg");

C++からBPへ通知

Actorを生成したい

UFunctionをオーバーライドする

GameModeに設定されたPlayerControllerを取得したい

TArray

ソートしたい。

sample.cpp
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を持てない

分散コンパイル設定

設定ファイル

BuildConfiguration.xml
<?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

ワールド レベル

8
7
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
7