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
Qiita記事

Unreal.js 入門

近年メジャーなゲームエンジンの二大巨頭と言えば、 UnrealEngine (UE)と Unity3D (Unity)だ。特にUEはハイエンド用途1に強く、映像用2としても使われている。 最新バージョンのUE4系では、C++もしくはブループリントと呼ばれるビジュアルプログラミング環境でゲームロジックを開発する。前者は主にプログラマ、後者は主にゲームデザイナやアーティストが使用する。職種による使い分けという意味ではC#かUnityScriptしかないUnityに比べると明確で、とても分かりやすい...
2018-05-30
Qiita記事

[UE4]BlueprintをQiitaなどのブログで共有する方法

UE4の強力なビジュアルスクリプティング言語である Blueprint は、ビジュアルスクリプティングという特徴から、Qiitaやブログで一般的な「コードを張り付けて共有」、といったことがしにくい。そこでいくつか方法をまとめてみた。 1. 一番よくある方法:画像 もっぱら使われる方法。 メリット 見たママを伝えられ、気軽 デメリット コピペができない 「目コピ」になるのでスピーディな共有ができない 2. テキストでコピペする 実はBlueprintはノードを選択し...
2018-05-30
Qiita記事

TypeScriptで型の異なるメソッドをオーバーライドする

これはなに TypeScriptでは親クラスのメソッドを継承する際、オーバーライド(同名メソッドの上書き)ができる ただし、引数や返り値の型の異なる場合はオーバーライドできない オーバーロード宣言と組み合わせる事で実現できる 前提:引数や返り値の型の異なるメソッドはオーバーライドできない TypeScriptは(、元のES2015の仕様に合わせ)特に何の宣言も不要でメソッドのオーバーライドができる。ただしJSと異なるのは引数や返り値の型のチェックが入るため、一致しないとオーバーライド...
2018-05-30
Qiita記事

今すぐ知るべきTypeScriptのストリングリテラル型

TypeScript1.8の目玉機能と言えば、 ストリングリテラル(String literal)型 だ。 String Literal Type | TypeScript Deep Dive ストリングリテラル型は文字列型(string型)にさらに制約を加えて、 特定の文字列のみ許可する ものだ1。JavaScript的にはただの文字列で、コンパイルタイムに型チェックされる。 ストリングリテラル型のいい所 何と言ってもJSに多い、引数に文字列キーを渡して処理を分ける関数をちゃんとチェ...
2018-05-30
タイトルとURLをコピーしました