読者です 読者をやめる 読者になる 読者になる

#memo

不正確な内容です、UE4についてが多い

Houdiniで作成したエフェクトをUE4で動かす(VertexAnimationTexture)

https://i.gyazo.com/402f56d844b1ee6c36d80903461e0c06.gif

先日のGDC2017での公演、Houdini側で頂点アニメーション用のテクスチャを生成してUEで読み込むことで、Houdiniで作成したエフェクトがUE内で表現できちゃうというものがあった

vimeo.com

UE側にプラグインを入れて云々というものではなく、あくまでHoudini側でこういったツールが用意されたという話で(去年からあったっぽいけど)、UEというよりHoudini側の話がメインです

今回はとりあえず爆発(煙)をやっておく、男の子は皆爆発が好きなので

続きを読む

UnrealC++のデリゲート、イベントについて

UE4のデリゲート関連、なんかいろいろあって混乱しているのでまとめる
元ネタのC#UEC++、BPエディタでの使用について確認していく

続きを読む

UObjectのコンストラクタのバリエーション

UObjectのコンストラクタの話、宣言に3つのバリエーションが有る

  1. ClassName() のデフォルトコンストラクタ
  2. ClassName(const class FObjectInitializer& ObjectInitializer) : Super(ObjectInitializer) の形をとるもの
  3. 何も宣言しない(GENERATED_BODY()のみ)

こちらのページでも2種類あることが解説されているが、何が違うのかがよくわからない

Unreal Engine | ゲームプレイ クラス

続きを読む

IWYUでコーディングしよう

IWYUとは

4.15で追加された一つの要素として、C++コンパイルの高速化が上げられている

アンリアル 4.15 がリリースされました!

これは、UEのソースコード全体がIWYU(Include-What-You-Use)という方法で再構築された事によるもので、
従来、Engine.h等、同モジュール内の全ヘッダーが網羅されたヘッダー(Monolithic Headerというらしい)をインクルードしていたが、実際に使用している機能はその一部分であることがほとんどであったため、これを必要最低限のインクルードに書き換えることでコンパイル時間の短縮が実現されたのこと、元ネタはそういうツールっぽい

GitHub - include-what-you-use/include-what-you-use: A tool for use with clang to analyze #includes in C and C++ source files

またプラグインのモジュールでもPCHファイルを明示的にインクルードしなくて良くなったなど、なんか微妙に色々変わっている

従来のMonolithic Headerをインクルードするタイプのコーディングは現在も有効だけれども、ビルド時にユーザーが作成したコードに対してもIWYUのオプションが使えるようになっているので、つかっていきましょう

続きを読む

仮想関数まわり、NativeEvent関数のオーバーライドについて

miyahuji111.hatenablog.com
NativeEvent、ImplementableEventについては上記を参考

通常のvirtual付き関数と、NativeEvent指定した関数の継承時の振る舞いについてまとめる

続きを読む

Superクラスについて

BeginPlay()関数の中に見かけがちなSuperクラスについて、標準のC++ではなく、UObject継承のクラスに提供されている何かっぽい

続きを読む

UENUM()マクロの使用

UENUM(BlueprintType)
enum class EHoge : uint8
{
    None,
    Foo UMETA(DisplayName="Bar"),
    Huga
};
  • C++11のscoped enumerationつかう
  • なので値を代入する時は型名修飾が必要
EHoge hoge = EHoge::Huga;

Enums For Both C++ and BP - Epic Wiki