リリース 0.8.5
モダンなJavaScriptサポート、改良されたフォリッジレンダリングパイプライン、プロジェクトテンプレート、多数のバグ修正とパフォーマンス最適化により、安定性が大幅に向上しました。
詳細情報
このリリースでは非常に強力な新機能が追加されており、深く見る価値があります。
モダンJavaScriptサポート
これにより、ES6+でカスタムコンポーネントを構築し、「const」、「=>」、「class」を活用することができますが、この機能はそれ以上のものを提供します。
この機能により、全NPMエコシステムの利用、JavaScriptコードのバンドル、さらにはTypeScriptといった他の言語の使用が可能になります!
私たちはWonderland Engineがあなたのバンドルプロセスとうまく統合できるようにするために、@wonderlandengine/apiと@wonderlandengine/componentsの二つのパッケージを公開しました。
パイプライン
ブレンドのようなGPUパイプライン機能の詳細な制御が可能になり、幅広いエフェクトを作成できます。パイプラインを使用すると、シェーダーの特定の部分を無効にしてパフォーマンスを調整し、必要なものだけを使用できます。
また、高品質な植物モデルのアルファマスキングを提供する強力な新しい「フォリッジ」パイプラインも登場します。
プロジェクトテンプレート
Wonderland Engineはすでに迅速な開発ワークフローで生産性を大幅に向上させています。しかし、最初に何もしないというのはさらに速いかもしれません。ボイラープレート作業の削減のために、プロジェクトを開始するためのテンプレートを提供しています。
さらに、必要に応じて自分でテンプレートを作成し、コミュニティと共有することも可能です。
チェンジログ
エディタ
- V8を介したJavaScript ES2018のサポート
- エディタがソースjsファイルではなく、結果として得られるバンドルを解析するように変更
- npmスクリプトを使用してJavaScriptバンドルのビルドオプションを追加
- 組み込みエディタコンポーネントをオープンソース化
- エディタコンポーネントをnpmパッケージとして公開
- プロジェクト作成用のテンプレートを追加
- カスタムプロジェクトテンプレートのサポートを追加
- パイプラインサポートを追加
- カバレッジへのアルファのサポートを追加(「MSAAを使用したアルファマスキング」)
- 任意のブレンド構成のサポートを追加
- デプステストとデプス書き込みマスクを無効にするオプションを追加
- 両面材料サポートを追加
- カバレッジにアルファを使用した両面材料用の「フォリッジ」パイプラインを追加
- JavaScriptバンドルのソースマップ生成を追加
- 圧縮されたテクスチャアトラスでのマップマッピングの実験的サポートを追加
- プロパティビューからシーンアウトラインへのCtrl + ドラッグ&ドロップで他のオブジェクトにコンポーネントをコピーする機能を追加
- プロジェクト設定に
framebufferScalingFactor設定を追加 - シーンビューでMSAAを有効化し、実行時の見た目に合わせるように
- シーン読み込み時間の改善
- アセットブラウザのファイル領域にフォルダを追加
- パッケージング中の変更時に発生する希少なクラッシュをいくつか修正
- アセットブラウザに何もドラッグしないとクラッシュする問題を修正
--windowlessフラグでの失敗時の戻り値を修正- リソースビューでのテーブル行のハイライトを修正
- リソースビューで名前を変更できないリソースを修正
- プロパティドロップダウンで選択できないリソースを修正
- 親がいるオブジェクトのシーンビューでのスケーリングジズモを修正
- UIスタイルとレイアウトを改善
- オブジェクトが多いシーンでの変換ジズモの流動性を改善
- OBJファイルインポートのサポートを改善
- 不要なログ出力を削除し、混乱を削減
テンプレート
- ヒットテスト付き「モバイルAR」テンプレートを追加
- ハンドトラッキング、コントローラー、テレポート移動、およびカーソルインタラクションを備えた「VR」テンプレートを追加
ランタイム
- JavaScript APIをモジュール化
- APIをオープンソース化 (https://github.com/WonderlandEngine/api)
- APIをnpmパッケージとして公開 (https://www.npmjs.com/package/@wonderlandengine/api)
- 全WebXR参照スペースがデフォルトでリクエストされ、最も高度なものが選択されるように変更
- 大規模プロジェクトの開発中にOculus Quest上でWasmMemoryが割り当てられない問題を修正
- スキンドメッシュを無効化するとクラッシュする問題を修正
- VR/ARに入るためのボタンを改善
- 実行時の最初のペイントまでの見た目を良くするための背景グラデーションを追加
- ブラウザコンソールで警告がエラーとして記録される問題を修正
- エディタで非アクティブになっているJavaScriptコンポーネントで
start()が呼び出される問題を修正
エンジン
- ブルームが有効なときのアンチエイリアシングを修正
- BoxとAxisAlignedBoxに対するレイキャストのパフォーマンスを改善
- テキスト更新のパフォーマンスを改善
- 多くの動的オブジェクトツリー(スキンドメッシュを含む)を持つシーンでのシーングラフパフォーマンスを大幅に改善
JS API
WL.Material.*のパラメーターアクセスにおける例外を修正- PhysX剛体を修正するために
WL.PhysXComponent.shape、extentsおよびその他の各プロパティのセッターを追加 - 参照スペースを選択するための
WebXR.refSpaceを追加 WL.Object.getComponents()が時々不正確なコンポーネントタイプを返すことがあるのを修正- オブジェクト上のすべてのコンポーネントを(非)アクティブ化するための
WL.Object.activeを追加 set WL.Object.transformWorldおよびset WL.Object.transformLocalを追加onActivate()中に変更されたときにactive状態が無効になる問題を修正- ヒープメモリの変動とガベージコレクションの動作を大幅に改善
JavaScriptコンポーネント
- cursor: 特定の軸でレイオブジェクトをスケールする
cursorRayScalingAxisを追加 - cursor:
onHover()がホバーオブジェクトパラメーターを受け取るように修正 - teleport: VRセッション中のスティックおよび向き入力をサポートするように全面改訂
- teleport: プレーヤーの代わりにスペースの中心がテレポートする問題を修正
- vr-mode-active-switch: 無効化されたときの動作を修正し、今からは自分自身を無効化しないように
- hand-tracking: 表示メッシュおよびコントローラーオブジェクトを(非)アクティブ化するオプションを追加、ポーズが利用可能かどうかによる
cursor-targetと重なりを通じて(たとえば、指の先端でのハンドトラッキング)相互作用するためのfinger-cursorコンポーネントを追加
Docker イメージ
- ベースイメージをubuntu:20.04に切替
- リリース候補テスター向けに
edgeタグを追加