ConquestArrow さんはインスタンス ue4-mstdn.tokyo のユーザーです。アカウントさえ持っていればフォローしたり会話したりできます。もしお持ちでないなら こちら からサインアップできます。

BlueprintUE.com のノードの再現率がいつのまにか上がっている。
標準ノードだけじゃなくて独自ノード(画像だとUnreal.jsプラグイン)も綺麗にほぼUE4のグラフエディタと同じ見た目になる。
ue4-mstdn.tokyo/media/-9hoKLHZ

※なお、Unreal.jsだとこのAPIは `JavascriptEditorLibrary.BroadcastAssetCreated` というわかりやすい名前でラッピングされている。
github.com/ncsoft/Unreal.js-co

自作プラグインなどでアセットを新規作成や複製した際に、単に作成しただけではコンテンツブラウザに反映されない様子(再起動等で反映になる)。これを防止するためには `FAssetRegistryModule::AssetCreated` を呼ぶ。
docs.unrealengine.com/latest/I

動作にはUnreal.jsプラグインが必要です。

Unreal.jsの公式以外の実用的なツールのサンプルも兼ねています。また、ソースはTypeScriptで書かれておりビルドにはTypeScriptが必要です。

ソースはかなり汚いので後で整理します(APIの使い方がわからないことが多く四苦八苦した形跡が残ってあります)。

ブループリントの簡単な難読化ツールを作ってみました。

BP_Obfuscator
github.com/ConquestArrow/BP_Ob

難読化といっても現状はかなり甘いので実用性には乏しいですが。

ue4-mstdn.tokyo/media/z8tXS0Yc

ピン名が固定ということは複数の出力PINあるとき説明付けられないじゃん!とおもったけど、`@param`の方の書き方で説明がつけられることも分かった。

ue4-mstdn.tokyo/media/wfJgEVot

関数BPの戻り値の説明がつけられなかった件、ソースをデバッガで追いかけたらわかった。ピン名が`ReturnValue`という固定値じゃないとダメっぽい。

ue4-mstdn.tokyo/media/tgv-IP_E

t3d-parser
github.com/gastrodia/t3d-parse

t3d形式ファイルのjavascriptパースライブラリ。t3d形式のテキストをjsonに置き換えたりすることができる。npmで導入可能。ファイル読み書き周りを使わなければUnreal.jsでも使えるかも。

閲覧注意だゴン もっと見る

React-UMG
github.com/ncsoft/React-UMG

JavascriptのUIライブラリ、React.jsを使ってUMGの描画や処理が出来るUnreal.js向けライブラリ。

JSX記法というJS中に直接HTMLを書くような形でUMGを設定出来る。
UE4 的にはSlateのC++の拡張記法みたいな感じ。
とはいえJSXはbabelかTypeScriptでトランスパイル必須なのであまり気軽ではない。

React.jsはJS界隈ではポピュラーで人気なのでそのノウハウをそのまま持ってこれるのは利点。
一方でゲームのUIに向いているかは疑問。メニューとかノンゲーム向けのUIとか、エディタ拡張ツールのUIとかならメリットありそう。

この機能、ピンの説明をしたくてJavaDoc形式で書き込んだ時に偶然見つけた機能。結局クラッシュするので使わなかったが4.16がリリースされればちゃんと使えるようになる。

”@return”がなんでピンにホバーしても何も表示しないのか、その割に何か有効になってるっぽい挙動をしているのはなぜかは調査中。

実はBlueprintの関数のピン(引数)はdescriptionのテキスト中で "@param [ParamName] hogehoge..." とすることで説明を追加することができる。ピンにホバーすることで説明を表示できるようになる。 ue4-mstdn.tokyo/media/Yjj71teU ue4-mstdn.tokyo/media/C7mEldTd ue4-mstdn.tokyo/media/BmCAfeVQ

"@note"や"@return"も同様に有効。ただし、returnはホバーしても何も表示されない。

4.14ぐらいから機能としてはあったのだがクラッシュするバグがあって使えなかった。4.16で修正済。

ざっくり情報:Twitter
調査中の情報やメモ:ue4-mstdn
まとめ:Qiita

こういう使い分けにしよう。

具体的な例としてはこの辺っぽい。 github.com/ncsoft/Unreal.js-de

JSとしては
JavascriptDetermineLinkGeometryContainer.GetArrangedNodes() ,
JavascriptEditorGraphLibrary.GetArrangedNodes()
あたりで取得できるようだがまだ試していない。

twitter.com/ConquestArrow/stat

以前のverではノードの情報は取れたが、原点の情報しか取得できなかった(リサイズ可能ノード除く)。これは言語切り替えやピンの設定次第でノードのサイズが動的に切り替わるため。ノードのサイズ情報はSlateを参照する必要があったが以前のUnreal.jsではそっちの口が用意されていなかった。