マテリアルの編集画面を作り始めた
数日間、更新するのを忘れていたけど、マテリアルの編集画面を作り始めた。今のところメインのテクスチャと色しか変更できない。基本的な機能が徐々に揃いつつあるので、次はWebGL形式で出力する機能を作ろうと考えている。
StatsをWebGLの画面に移動した
FPSを表示するStatsの画面をWebGLの中に移動した。今まで別のCanvasタグとしてHTML内に配置していたんだけど、そのうちUI全般をWebGL内で描画する仕組みが必要になるので、試しにStatsの画面を描いてみることにした。今のところコード的に無理矢理感があるので、整理していきたい。
他には、オブジェクトの位置等を変更した時に変更済みフラグがうまく設定されないケースがあったので修正したりしていた。
・関連するコミット
fix stats · hikipuro/tea.js@f54fbac · GitHub
Scriptを動的にロードできるようにした
Scriptを動的にロードできるようにした。簡単なJavaScriptファイルならドラッグで追加できるようになった。例えば次のようなファイルをオブジェクトにドラッグすると、X軸を中心に毎フレーム3度ずつ回転するようになる。
最近のJavaScriptは構文にclass宣言が追加されたため、これはTypeScriptのコンパイラ等を通さなくてもJavaScriptとして実行できる。このままだとTea.jsのライブラリ内でコンポーネントとして認識されないため、ロード時にObject.setPrototypeOf()メソッドを使って、Tea.Scriptクラスから継承したかのように実装している。
・関連するコミット
add dynamic load script · hikipuro/tea.js@2b74f70 · GitHub
コンソール画面を追加した
コンソール画面を追加した。今のところ、console.log()で出力した内容を表示するだけのものだけど。consoleオブジェクトのlogメソッドの内容を自作メソッドに置き換えることで実現している。具体的には次のように書いている。
これを最初の方に書いておくと、それ以降の全てのconsole.log()呼び出しで自作の関数も呼び出されるようになる。
・関連するコミット
add console view · hikipuro/tea.js@055f2f2 · GitHub
シーンビューを追加した
シーンビューを追加した。今のところ、右クリックしながらWASDキーでシーン内を移動できるくらいの機能しかまだ入っていない。
しばらくスクリーンショットを貼っていなかったので、現状のものを貼ってみる。
・関連するコミット
add scene view · hikipuro/tea.js@b142f85 · GitHub
UIパーツにTabsを追加
タブで選択した内容を表示するUIパーツを追加した。画面に要素を追加していったら表示領域が狭くなってきたので、タブ表示用の機能が必要になった。
まだまだ細かい不具合が残っているので、少しずつ修正しようと思う。
・関連するコミット
add tabs ui · hikipuro/tea.js@66fe87a · GitHub
シーンを保存できるようにした
シーンを保存できるようにした。Electronのアプリケーションメニューに、シーンの新規作成、開く、保存の機能を追加して、それぞれ実際に動くようにした。まだ全ての機能は実装しきれていないけど、簡単なシーンであれば保存できるようになった。
・関連するコミット
add scene save/open functions · hikipuro/tea.js@8370724 · GitHub