VRエンジン作成日記

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

UIパーツを追加

UIパーツをいくつか追加した。 ・ラジオボタン ・スライダー ・水平・垂直スクロールバー ・スクロールビュー スクロールビューはリストボックスの中身の表示等、スクロール可能な領域で使用する予定。表示領域のクリッピングとスクロールの処理は一応で動く…

チェックボックスを追加

チェックボックスのUIパーツを追加した。1日1個くらいのペースでUIパーツを追加できたら良いなと思ってるんだけど、今の仕組みで簡単に実装できそうなのはラジオボタンくらいしかなさそう。スクロールバー、スライダーとかを実装しようと思うと、ドラッグ…

ボタンを追加

ここ何日かでマウスイベントに反応する仕組みが完成したので、UIのボタンを追加してみた。今のところ、画像が変更できなかったりで自由度は少ない。マウスホバー時に明度を上げる処理と、押下時に明度を下げる処理を入れてみたら見た目もボタンっぽくなった…

テキストと画像表示用のGUIパーツを追加

テキスト表示用のパーツと、画像表示用のGUIパーツを追加した。 最近、毎日1個ペースで実装するのが難しい箇所ばかりを触っていたので、ブログを書く習慣がなくなってしまっていた。 GUIを実装するにあたって、今までの実装内容を見直していたら、うまく動作…

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…