Qiita記事

[UE4]Unreal.jsをTypeScriptで書く

はじめに Unreal.jsとは UnrealEngine上でJavaScriptを動かすことのできるプラグイン Unreal.js 入門 TypeScriptとは JavaScriptの新規格先行取り込み+静的型付けをしたAltJS http://qiita.com/tags/TypeScript 👍 Unreal.jsをTypeScriptで書くメリット Unreal.jsの出力する型定義ファイルを使って実行前型チェックができる ※簡単なエラーはこの時点で...
Qiita記事

[ #UE4 ]Blueprintの関数のピンに説明をつける

関数のBlueprintの入出力のピン(引数、戻り値)に対してコメント説明を付けられる隠し機能?について。 TL;DR JavaDoc形式でDescription中に説明がかきこめる 入出力ピンの説明はピンにホバーした時のTooltipに表示されるようになる 多人数で開発する際にちゃんとドキュメント化しておくと迷わなくて便利なのでおすすめ 環境 UE4.16以降 4.14ぐらいから機能自体は実装されているが、クラッシュするバグがある 入出力ピン説明付けられない問題 ...
2018-05-30
Qiita記事

[ #UE4 ]Blueprintでユニットテスト・機能テスト

UnrealEngine4(以下UE4)のドキュメントにはオリジナルのテストはC++で書くように書いてあるが実はBlueprint(以下BP)でも書くことができる。やり方を簡単に紹介。 TL;DR FunctionalTestクラスを継承したBPクラスを作成してテストのBPノードを書く テスト対象のレベルに上記BPを配置、StandAloneでPlayできるようにしておく SessionFrontEndで複数のテストやテスト回数をグラフィカルにチェック 環境 4.14以降?ここでは...
2018-05-30
Qiita記事

BlueprintのFormatTextノードの使い方 #UE4

UnrealEngine4(以下、UE4)では文字列型が3つあるが、ユーザーにUIなどで表示して見せる文字列はText型であるべきとされている。このText型の文字列の一部を置き換えたり加工したりするのに使えるのがFormatTextノードだ。 TL;DR UE4でユーザーに見せる文字列はText型である必要がある Text型の利点を損なうことなく、加工をするのに必要なのが FormatTextノード 具体的には文字列内での変数展開ができる String型を加工して使っちゃダメ ...
2018-05-30
Qiita記事

[UE4]Blueprintの関数のpureとconstの違い

初めに結論 pureはドキュメントとは異なりクラスのメンバーを変更可能 constならばクラスのメンバーを変更できない 実行ピンを消すのはpure, constは変わらない 説明 Blueprintの関数にはpureのオプションとconstのオプションがある。 pureのオプションを有効にするとそのBPの関数は「純粋関数」となるとドキュメントでは説明されている。 関数は 純粋関数 または 非純粋関数 のどちらかになります。両者の大きな違いは、純粋関数がステートやクラスのメン...
2018-05-30
Qiita記事

型定義で`typeof T`したくなった時は {new ():T}

型定義でジェネリクスの型変数Tを使いつつ、インスタンス化する前のTそのもの1を定義するときのTIPS。 以前の記事で型クエリと組み合わせられたらなあ(typeof T)と書いていた。 同様に思う人は多かったらしく、いつの間にかTypeScriptの公式WIKIのFAQにやり方が書いてあった。 オブジェクトリテラル型の 型表現で {new ():T} とすればよい らしい。 function create<T>(ctor: { new(): T }) { return new...
2018-05-30
Qiita記事

[UE4]Unreal.jsでUE4のエディタ拡張を作る

この記事は裏 Unreal Engine 4 (UE4) Advent Calendar 2016の5日目の記事です。 はじめに UnrealEngine4(UE4)はUnity3D(Unity)に比べるとエディタ拡張が作りにくい。Unityの場合、通常のゲームのコードを書くときと同じC# or UnityScriptで特別な環境がなくても書ける。一方、UE4の場合はVisualStudioかXcodeでUnreal C++で書かないといけない。 UE4でエディタ拡張をやりたい場合、「エディ...
2018-05-30
Qiita記事

Unreal.jsの型定義ファイルを再生成してAPIを調べやすくする

問題 Unreal.jsはVSCodeなどの補完が効くエディタ用に型定義ファイルを出力する機能がある。 大変便利なのだが、デフォルトで出力されているものはAPIがただ羅列しているだけである。そのため内容を調べるには名前から類推するか、Unreal C++の元のAPIのマニュアルを探す手間が必要だった。 Unreal.jsはマニュアルが充実しているとは言い難いのでこれはなかなかつらいところである。 解決方法 結論から書くと、型定義ファイルを生成するメソッド JavascriptCont...
2018-05-30
Qiita記事

[UE4]Unreal.jsでBlueprintからJSを実行する

Unreal.jsプラグインでは通常JSの実行手段はJavascriptコンポーネントを任意のActorにつけるか、ファイル名をextension-*.jsとする方法がある。ただし前者では何らかのActorをワールドに出す必要があり、後者はそもそもエディタの拡張用である。 可能なら任意のタイミングでBlueprint(以下、BP)からJS呼び出しのタイミングを制御したい。今回はその方法を簡単に説明する。 ゲーム起動時にJSを実行:カスタムGameInstanceクラスで呼ぶ UE4ではゲーム...
2018-05-30
Qiita記事

[UE4]Unreal.jsでJSのコードに型とフラグ情報を付与する

Unreal.jsプラグインでJavaScriptで作成したものをUE4の世界に認識させるには次の方法が必要になる。 ES2015(ES6)の書き方でクラスを生成 クラス・メソッド・プロパティに 型とフラグの情報を付与 uclass.jsで型とフラグ情報を解析させてUE4側にクラスを認識させる この「型とフラグの情報を付与」という部分が若干特殊なので説明。 Unreal.jsでの型およびフラグ情報の独自表現 周知の通り、JavaScriptには型表現の方法が基本的にない。一方UE4...
2018-05-30