Qiita記事

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

TypeScriptのクラスをnamespaceで拡張する(クラス定数、拡張メソッド、他)

namespaceはクラスの拡張に使える TypeScriptのnamespace1は本来の名前空間を分けるという事以外に、クラスを拡張してプロパティを生やすことができる。これを使うと本来文法的にできない、あるいは出来るけど通常の処理のコードと定義している事を明示化してメンテナンス性を向上する事が出来る。 具体的には、以下のルールに従って定義する。 class→namespaceの順に同じ名前で定義する namespaceで定義するプロパティは全てexport classをexportす...
2018-05-30
Qiita記事

TypeScriptでのイベント名を管理・指定するもう一つの方法(+ストリングリテラル型にも対応)

TypeScriptでのイベント名をclickで指定するのはもう辞めようという記事を読んで。ActionScriptでも同様な管理を公式が用意してくれていたのでとても便利だったのを思い出しました。ところがTypeScriptはあんまり公式でこういったものを用意してくれません。こういったコードの安全性やメンテナンス製に関わる箇所は公式が運用を広めるべきなんですが…。 namespace + const さて、TypeScriptでは上記の方法以外にもいい方法があります。それはnamespaceと...
2018-05-30
Qiita記事

ES2015で変数名を取得する

1: Function#nameを使う方法 ES2015では、関数式で宣言した関数が無名関数の場合、代入された変数と同じ名前になる。なので無名関数を変数に代入して、Function#nameで取得すれば変数名の文字列が取得できる。 参考:The names of functions in ES6 無名関数を突っ込んでFunction#nameで取得 var v1 = () => {} console.log(v1.name); //v1 宣言時の変数名のみが関数名...
2018-05-30
Qiita記事

タグ付きテンプレート(tagged template strings)でなんちゃって演算子オーバーロード

はじめに ES2015(ES6)で追加されたタグ付きテンプレート(tagged template strings) 参考:JavaScript の テンプレートリテラル を極める! その実体は特殊な関数 ぱっと見は関数に見えない それをつかって”なんちゃって”演算子オーバーロードをやってみようという記事 ※注:実用性は低いです 前提:「演算子オーバーロード」とは JavaScript(ECMAScript)には無い概念。 参考: wikipedia ...
2018-05-30
Qiita記事

SIMD.jsの型定義ファイルを作ってみた

SIMD.js (ES.next stage3)の記事を書きつつ、実際に試してみるために欲しかったのでSIMD.jsのTypeScript用型定義ファイルを作ってみた。 完成品(ver.0.9.1対応) github やったこと DefinitelyTyped で探す → ない。 Issueが立っていたが特に動きなし。 ドキュメントを探す MDN: 内容が古い。変更無いものは参考になる。 SIMD型について: 貴重な日本語資料。参考になる。 SIMD.js ...
2018-05-30
Qiita記事

SIMD.js (ES.next stage3)

はじめに JavaScript stage 0,1,2,3 Advent Calendar 2015 の記事です SIMD.jsを紹介します 記事執筆時で stage3 の仕様です これはなに JavaScriptで複数のデータを一度に扱ってより高速に処理を行うための新機能(データ型とAPI)です。 1回の命令で複数のデータを並列に処理できるSIMDという手法があります。大抵のCPUは拡張命令としてSIMDに対応しています(MMX, SSE, NEON, etc...)。 SI...
2018-05-30