VRエンジン作成日記

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

2018-01-01から1年間の記事一覧

GUIの仕組みを作り始めた

今までは編集画面用のHTMLのGUIを作っていたけど、それとは別に、実行画面内に表示するためのGUIを作り始めた。実行画面はcanvasタグ1枚で表示されているので、中にHTMLを直接表示することはできない。divタグを上に乗せてGUIを実現する方向でも考えていたん…

DAEファイルのパーサを一通り書いた

DAEファイルのパーサを一通り書いてみた。10日くらい同じようなコードを書いていたので、ブログの更新をさぼってしまった。今のところ、DAEファイルを読み込んでJavaScriptのオブジェクトに変換するところまでしか書けていない。また、以前ブログで書いたよ…

FBX、DAEフォーマットのパーサを修正した

FBX、DAEフォーマットのパーサを修正した。バージョン違いや、バイナリフォーマット・テキストフォーマットの違い (FBX) 等があって、ファイルの中からメッシュデータを抜き出そうとするだけでも、真面目に処理すると大変そうなことが分かってきた。 ・FBXフ…

FBXファイルの読み込み機能を作り始めた

FBXファイルの読み込み機能を作り始めた。次のページを参考にさせてもらっている。 qiita.com 今のところ、バイナリ形式のFBXファイルのパースだけはできた。まだメッシュを読み込んで画面に表示する機能は作っていない。 あと、DAEファイルのパーサを修正し…

OBJファイルを画面に表示する機能を追加

プロジェクトビューからOBJファイルを画面に追加できるようにした。また、OBJファイル読み込み機能を使って複雑なメッシュを読み込んだ時に、UIスレッドが止まらないようにした。具体的には、OBJファイルの各行を文字列として読み込むメソッドの実行時に、引…

ファイルのインスペクタを修正した

今まではテキストファイルだけインスペクタに表示していたけど、画像ファイルのインスペクタを追加した。フォルダやその他のファイルもとりあえず概要だけ表示するようにした。 ・関連するコミット add: image file inspector · hikipuro/tea.js@9cffb23 · G…

細かい不具合を修正

いくつか細かい不具合を修正した。 ・アプリの終了時に各UIパネルのサイズを保存 ・シーンビューのドラッグで視点を移動する機能を追加 ・新規ファイルを追加する時に名前を設定できるように修正 ・インスペクタビューのコンポーネントタイトル部分のアイコ…

プロジェクトビューの修正

プロジェクトビューの機能をいくつか修正した。また、インスペクタビューも少し修正した。 ・ファイルリストのコンテキストメニューにCreate等を追加 ・リネーム後にファイルを並び替えるように修正 ・並び替えの順番が名前順になっていない問題を修正 ・イ…

ファイルを削除する機能を追加

プロジェクトビューでファイルを削除する機能を追加した。あと、シーンのロード処理を修正した。今まではシーンがロードできたら、すぐさま実行を開始していたけど、非同期に読み込まれるスクリプト等のロード完了を待ってから実行するように変更した。 その…

プロジェクトビューでファイルをドラッグできるようにした

プロジェクトビューで、ファイルを別のフォルダへドラッグできるようにした。当たり前のようにある機能を実装しただけだけど、いろんな場所の違ったUI要素にドラッグできるようにするのは、思いのほか作る手間がかかった。 プロジェクトビュー関連での今後の…

コライダーの枠線を表示する機能を追加

ボックスコライダーとスフィアコライダーの枠線を表示する機能を追加した。また、ボックスとスフィアの当たり判定を修正した。 その他の変更点 ・ラインレンダラのZ方向の値を反転 ・スフィアコライダーの設定用UIを追加 ・関連するコミット add: box collid…

クリックした時にオブジェクトを選択する機能を追加

シーンビューでオブジェクトをクリックした時に選択する機能を追加した。 その他の変更点 ・1つのオブジェクトに同じコンポーネントを2個以上追加できないように修正 ・スフィアコライダーを追加 ・関連するコミット add: select object when clicked scen…

オブジェクトの選択範囲を表示する機能を追加

オブジェクトの選択範囲を表示する機能を追加した。110%に拡大したオブジェクトを事前に単色で描いておくことで、選択範囲っぽく表示している。シーンビューの状態が少し分かりやすくなってきた。 ・関連するコミット add: selected object outline · hikipu…

ライトの範囲をシーンビューに表示する機能を追加

昨日、カメラの視錐台をワイヤーフレームで表示する機能を追加したので、その流れで今日はライトの範囲を表示する機能を追加した。 次は選択されたオブジェクトの枠線を描く機能と、コライダーの範囲を同じようにワイヤーフレームで描く機能を追加したい。 …

視錐台を表示できるようにした

シーンビューで 視錐台を表示できるようにした。今のところ、ワイヤーフレームで簡単に表示している。 AnimationCurveについては、ひとまずweightを考えないことにした。いくつか前のバージョンのUnityではtangentの編集機能だけだったみたいなので、それと…

ベジェ曲線の描き方を調べなおしている

ベジェ曲線の描き方を調べなおしている。AnimationCurveクラスに実装を書いているんだけど、weight値を自由に設定した時に思ったような値が出ていなさそうだった。(3次の) ベジェ曲線は雑に言うと次のような感じで求める。 X(t) = t^3 * X0 + t^2 * X1 + t …

アニメーションカーブのエディタを作り始めた

アニメーションカーブのエディタを作り始めた。イラストレータみたいに、コントロールポイントとアンカーポイントでカーブを設定できるようにしたいんだけど、今のところカーブを描く機能しか作れていない。 グラデーションのエディタは、今のところほぼ不満…

グラデーションのエディタを修正

グラデーションのエディタを修正した。ひとまずエラーなしでグラデーションを編集できるようになった。 ・関連するコミット fix: gradient ui · hikipuro/tea.js@854e37e · GitHub

グラデーションのエディタを作り始めた

グラデーションのエディタを作り始めた。まだ動きがおかしいので、後々修正していこうと思う。 ・関連するコミット add: gradient editor ui · hikipuro/tea.js@60e9946 · GitHub

プロジェクトビューにアイコンを追加

プロジェクトビューにフォルダアイコンと、ファイルアイコンをいくつか追加した。また、ツリービューのリファクタリングもしておいた。 ・関連するコミット add: file icons to project view · hikipuro/tea.js@0876fc4 · GitHub

UIをリファクタリングした

UIのコードをリファクタリングした。今まで書きためたコードが徐々に複雑な構造になってきたので、読みやすくなるように少し整理した。

細かい不具合を修正

見た目にほとんど変化はないけど、細かい不具合をいくつか修正した。 ・一部のコードをメンテナンスしやすい形式に書き換え ・プロジェクトビューのメニューに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によってボタンの番号が違うらしい。ボタン番号の割り当てを柔軟に変更できるような方法を考えないといけない…