クラス参照からどうやってAssetData取得するんだ?となったのでメモ。
Get Soft Class Path
をGet Asset By Object Path
に繋ぎます。
これでPackage Path等が取得できました。
似たノードにGet Asset by Object Path
というノードがありましたが、こちらは使用していません。ノード名はほとんど一緒ですね。Byの頭文字が大文字か小文字かしか違いがないです。
クラス参照からどうやってAssetData取得するんだ?となったのでメモ。
Get Soft Class Path
をGet Asset By Object Path
に繋ぎます。
これでPackage Path等が取得できました。
似たノードにGet Asset by Object Path
というノードがありましたが、こちらは使用していません。ノード名はほとんど一緒ですね。Byの頭文字が大文字か小文字かしか違いがないです。
DataTableに複雑な構造体を使用した場合、データが壊れることがあります。複雑な構造体とは、構造体Aの中に構造体Bの配列があったりとかです。
例えば、構造体に変数を追加したり変数の型を変更した後に、コンパイルエラーのような現象が発生し、DataTableに設定してあった値がすべて消し飛ぶようなことが起きたりします。
構造体が入れ子になっていて、子要素の構造体に変数を追加した時など、よく壊れる印象です。
ここではDataTableとDataAssetの比較に関する面白い内容が語られています。 その意見の中に、BPの構造体は壊れやすいという意見や、C++の構造体の方が安定しているという意見が見られます。
複雑な構造体になりそうならC++で作ってしまった方が良いかもしれませんね。
UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AAA") FText DescA;
UPROPERTYでカテゴリー設定できますが、継承したBPクラスではカテゴリーの表示順が思うようにいかないことがあります。クラスの最初に宣言したカテゴリーが下の方に表示されるなど。
PrioritizeCategories
meta = (PrioritizeCategories = "カテゴリー名A カテゴリー名B")
ここに記述したカテゴリー名は優先して表示されるみたいです。カテゴリー間はスペース区切り。
UCLASS(BlueprintType, meta = (PrioritizeCategories = "AAA BBB CCC")) class USampleAsset : public UPrimaryDataAsset { GENERATED_BODY() public: UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "AAA") FText DescA; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "BBB") FText DescB; UPROPERTY(EditAnywhere, BlueprintReadWrite, Category = "CCC") FText DescC; };
プロパティの並び替えについての参考記事 pafuhana1213.hatenablog.com
オーバーレイマテリアルのBlend ModeがOpaqueだったりする場合、オーバーレイマテリアルが適用されていないかのように見えることがあります。
おそらくオーバーレイマテリアルが通常のマテリアルと同じ場所に描画されていて、通常のマテリアルの方が優先的に描画されているのかもしれません。
その場合は、オーバーレイマテリアルの位置をずらすだけで、適用されていることが確認できます。
Create Dynamic Material Instance ノード
は2種類ありますが、左側を使います。
Dynamic Material Instance(DMI)を作成し、Set Overlay Material ノード
でマテリアルをセットすればDMI経由でパラメーターを変更可能になります。
※ エクスポート時にはBlender For Unreal Engine アドオンを使用しています。
アドオンを使って、一番親である「RouteBranch」を選択した状態でエクスポートしています。階層がこんな感じでも上手くいきました。
※上記のやり方でUE5.5で失敗しました。以下のようにしたら上手くいきました。
位置に関しては頂点スナップでどうにかなりましたが、回転を特定オブジェクトなどに合わせる場合は以下の記事が参考になりました。
ソケット用オブジェクト、合わせる用オブジェクト複数選択後(合わせる対象のオブジェクトを最後に選択)、メニューに表示される位置や回転の数値上で右クリックし、Copy All Selected
を使用することで回転や位置調整を行えます。
ダイナメッシュをスカルプトしてる最中に穴が開いてしまうことがありました。
ジオメトリ > トポロジー編集 > 穴閉じ
を実行してみましたが、どうにもうまくいきません。
そこでMoveブラシでポリゴンを引っ張って無理やり穴の上を覆う状態にします。
この状態でCtrl + ドラッグ
でリメッシュしてみます。
穴が徐々に塞がっていくので、「穴を覆う > リメッシュ」の流れを繰り返していきます。なんとか穴をふさぐことができました。