VRエンジン作成日記

ひたすらVRエンジンを作っていきます

細かい不具合を修正

見た目にほとんど変化はないけど、細かい不具合をいくつか修正した。 ・一部のコードをメンテナンスしやすい形式に書き換え ・プロジェクトビューのメニューにCreateとDeleteを追加 ・シーンJSONをダブルクリックした時に、シーンを開く機能を追加 ・再生・…

シーンを切り替えられるようにした

別のシーンをスクリプトでロードできるようにした。ようやく複数の画面から構成されるアプリを作ることができるようになった。別のシーンがロードできると、タイトル画面からゲーム画面へ遷移するというようなことができるようになる。 その他の変更点 ・テ…

テキストファイルのインスペクタを追加

テキストファイルを選択した時に、インスペクタビューにプレビューを表示する機能を追加した。 ・関連するコミット add: file inspector · hikipuro/tea.js@d461921 · GitHub その他の変更点 ・プロジェクトビューのコンテキストメニューにRefreshを追加 ・…

プロジェクトを開く機能を追加

既存のプロジェクトを開く機能を追加した。プロジェクトを作るウインドウにラジオボタンを追加して、作るか開くか選べるようにした。 ・関連するコミット add: open project feature · hikipuro/tea.js@45268f2 · GitHub その他の変更点 ・オブジェクトを削…

新しいプロジェクトを作るウインドウを追加

新しいプロジェクトを作るウインドウを追加した。起動すると最初に表示される。まだ既存のプロジェクトを開く画面を作っていないので、続きから作業するのが難しい感じになってしまっている。 ・関連するコミット add: new-project window · hikipuro/tea.js…

細かい不具合を修正

今日も細かい不具合を修正していた。箇条書きで修正箇所を挙げてみる。 ・設定ウインドウにメニューが出てしまう問題を修正 ・設定ウインドウの表示位置を修正 ・コンソールビューが画面端まで表示されない問題を修正 ・再生・停止ボタンが機能するように修…

細かい不具合を修正

編集時に、変更したのに変更済みフラグが立たない、JSONファイルの出力時にエラーが発生する等の細かい不具合をいくつか修正した。少しだけど、以前よりはまともに動くようになった。

カメラのステレオ設定用UIを追加

カメラのステレオ設定用UIを追加した。ステレオ設定機能自体も、いつの間にか動かなくなっていたので動くように修正した。あとはシーン全体のアンチエイリアス用のUIを追加したのと、パーティクルシステムの出力JSONが雑になっていたので、それなりに動くよ…

ゲームパッド対応

ゲームパッドで操作できるようにした。Gamepad APIでボタンとアナログスティックの値を取れるようにしてみた。実際に確認したわけではないけど、OSによってボタンの番号が違うらしい。ボタン番号の割り当てを柔軟に変更できるような方法を考えないといけない…

設定画面を追加

設定画面を追加した。今のところは言語設定だけできるようになっている。今まではソースコードを書き直さないと言語の切り替えができなかったけど、設定画面のUI上で、すぐに英語←→日本語の切り替えができるようになった。 ・関連するコミット add: preferen…

細かい不具合を修正

パーティクルのビルボードの方向、マテリアルのファイル出力機能、スクリプトの実行方法等を修正した。見た目に変化はほとんどないけど、少しまともに動かせるようになった。

UI関連機能の修正

カラーピッカーの背景等、UI関連の機能を修正した。少しずつ各パーツの使い勝手が良くなったと思う。

多言語対応にし始めた

エディタ画面を多言語対応にし始めた。JSONファイルで簡単に翻訳テキストを追加できるようにしている。今のところ、ソースコードを変更しないと設定変更できないようにしている。アプリ全体の設定用UIが完成したら、UI上で表示言語を選択できるようにする予…

ビルドできるようにした

メインメニューからビルドを選んだ時に、WebGL形式でHTMLとJavaScriptのファイルが出力できるようにした。今のところはとりあえずだけど、エディタで作ったものを実行可能な形式にすることができた。 ・関連するコミット fix build process · hikipuro/tea.j…

マテリアルの編集画面を作り始めた

数日間、更新するのを忘れていたけど、マテリアルの編集画面を作り始めた。今のところメインのテクスチャと色しか変更できない。基本的な機能が徐々に揃いつつあるので、次はWebGL形式で出力する機能を作ろうと考えている。

StatsをWebGLの画面に移動した

FPSを表示するStatsの画面をWebGLの中に移動した。今まで別のCanvasタグとしてHTML内に配置していたんだけど、そのうちUI全般をWebGL内で描画する仕組みが必要になるので、試しにStatsの画面を描いてみることにした。今のところコード的に無理矢理感があるの…

Scriptを動的にロードできるようにした

Scriptを動的にロードできるようにした。簡単なJavaScriptファイルならドラッグで追加できるようになった。例えば次のようなファイルをオブジェクトにドラッグすると、X軸を中心に毎フレーム3度ずつ回転するようになる。 class Test { update() { this.rotat…

コンソール画面を追加した

コンソール画面を追加した。今のところ、console.log()で出力した内容を表示するだけのものだけど。consoleオブジェクトのlogメソッドの内容を自作メソッドに置き換えることで実現している。具体的には次のように書いている。 var log = console.log; consol…

シーンビューを追加した

シーンビューを追加した。今のところ、右クリックしながらWASDキーでシーン内を移動できるくらいの機能しかまだ入っていない。 しばらくスクリーンショットを貼っていなかったので、現状のものを貼ってみる。 ・関連するコミット add scene view · hikipuro/…

UIパーツにTabsを追加

タブで選択した内容を表示するUIパーツを追加した。画面に要素を追加していったら表示領域が狭くなってきたので、タブ表示用の機能が必要になった。 まだまだ細かい不具合が残っているので、少しずつ修正しようと思う。 ・関連するコミット add tabs ui · hi…

シーンを保存できるようにした

シーンを保存できるようにした。Electronのアプリケーションメニューに、シーンの新規作成、開く、保存の機能を追加して、それぞれ実際に動くようにした。まだ全ての機能は実装しきれていないけど、簡単なシーンであれば保存できるようになった。 ・関連する…

UIのリファクタリング

Undo機能を追加しやすくするために、UI関連の機能をリファクタリングした。実行時の見た目は変わらないけど、コードの内容的には以前より見通しが良くなったように思う。また、レンダリングの処理を少し最適化した。シーン内にカメラがない時の処理を軽くし…

Undo機能を追加しはじめた

Undo機能を追加し始めた。HTMLのテキストボックス単体で見るとUndo機能は最初から付いてるんだけど、エディタ全体で見ると、2つ以上の編集結果がUndoで繋がらないので自分で実装する必要がありそうだった。Undoできるようにしようと思うと、1つ1つのUI操作を…

レンダリング関連の問題を修正

レンダリング時にライトの色が適用されない、カメラのレンダリング順が設定できない等の問題があったので修正した。まだいくつか、画面クリアの必要がない箇所でクリアしていたりする問題が残っていそうだ。 ・関連するコミット fix light problems · hikipu…

カラーピッカーを修正

カラーピッカーを修正した。HTMLのinput type="color"のカラーピッカーだと、仕様上どうしても回避できないことがあるので (出現位置を指定できない、JavaScriptから閉じることができない等)、自分で実装することにした。今のところ、HTML標準のカラーピッカ…

テキストメッシュのUIを修正

テキストメッシュの設定をUIで変更可能にした。あと、プロジェクトビュー用のファイル一覧を作り始めた。今日は特にこれといって書くことがなさそうだ。 ・関連するコミット fix some ui problems · hikipuro/tea.js@938e0ae · GitHub

ツリービューでドラッグ&ドロップ2

ツリービューのドラッグ&ドロップの機能を修正した。オブジェクトの隙間に他のオブジェクトを差し込むことができるようになった。また、ドラッグ時の画像を変えた。Drag and Drop APIのsetDragImage()にセットできるのはDOMに登録されていて、display: none…

ツリービューでドラッグ&ドロップ

ツリービューにドラッグ&ドロップの機能を追加した。まだ要素の隙間に移動することはできない。今のところ他の要素の子要素にする機能だけを実装している。他にはAdd Componentボタンをとりあえず機能するようにしたのと、Rectの入力欄等の使い勝手を修正し…

カメラの不具合を修正

カメラの不具合を修正した。画面内に複数台のカメラを置いた時に表示が崩れてしまう問題と、far値の設定が近すぎる時にスカイボックスが表示されない問題を直した。実装した直後はうまく動いていたんだけど、他の部分の修正を重ねるうちに動かなくなってしま…

UIパーツを修正

UIパーツをいくつか修正した。Vector3の値を入力する時に、X、Y、Zのラベルをドラッグして数値を変える処理を入れているんだけど、その動きをPointer Lock APIを使って入力しやすくしたりしていた。 developer.mozilla.org 聞き馴染みのないAPIだけど、3Dの…