VRエンジン作成日記

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

細かい不具合を修正

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

細かい不具合を修正

編集時に、変更したのに変更済みフラグが立たない、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の…

値を範囲で指定するスライダーを追加

UIパーツにスライダーを追加した。HTMLのinput type="rage"で表示できるスライダーそのものだけど。vue.js上で使いやすいようにクラスにしておいた。他にはコンポーネントのON/OFFをUI上で行うためのチェックボックスと、enum値を選択するためのコンボボック…

プロジェクトビューを作り始めた

プロジェクトビューを作り始めた。今のところフォルダ一覧だけが表示できる。ファイル一覧は表示できない。いったんブラウザ上でWebサイトのように動かすことは諦めて、Electron上でのみ動く状態にしようと思う。動作サポート対象が広いと作るのが大変そうだ…

カメラの機能を修正した

昨日、カメラの設定がうまく動いていない箇所があることに気付いたので修正した。他には表示領域のリサイズ用のバーを作ったりしていた。CSSのresizeでリサイズ用の設定をすると、右下に掴む用の領域が表示される。横の端全体をリサイズ領域にしようと思うと…

カメラの設定をUI上で変更できるようにした

カメラの設定をUI上で変更できるようにした。vue.jsのチェックボックス表示用のクラスとか、細かいパーツをいくつか追加した。カメラの設定画面を作ってみると、以前動いていた機能が動かなくなっていることに気付いた。ちょっとずつ直していくつもり。 ・関…

UIのコードをリファクタリングした

UI関連のコードをリファクタリングした。昨日よりは見通しが良くなった。あと、Vector3の値をマウスのドラッグで変更可能にしたり、細かい不具合を調整していた。C#のWindows Formsのコードなら今までによく書いていたけど、HTMLのUIはそれほど書いたことが…