Release 0.8.5
モダンJavaScriptのサポート、改良されたフォリッジレンダリングを備えたパイプライン、プロジェクトテンプレート、多数のバグ修正とパフォーマンスの最適化により、安定性が大幅に向上しました。
詳細説明
このリリースでは、詳細に調べる価値がある非常に強力な新機能がいくつか追加されました。
モダンJavaScriptサポート
これによりES6+でカスタムコンポーネントを構築し、const
、=>
、class
を利用することができますが、この機能はそれ以上の可能性を秘めています。
この機能によって、NPMエコシステム全体を利用する力が伴い、自身でJavaScriptコードをバンドルしたり、さらにはTypeScriptなどの他の言語を使用することすら可能になります。
私たちはWonderland Engineをあなたのバンドルプロセスとうまく統合させたいと考えており、2つのパッケージを公開しました: @wonderlandengine/api と @wonderlandengine/components。
パイプライン
ブレンディングのようなGPUパイプライン機能へのより細かな制御が可能になり、様々なエフェクトを構築する力を与えます。パイプラインはまた、シェーダーの一部を無効にすることを可能にし、実際に使用するものだけを利用してパフォーマンスを調整することができます。
これに強力な新しい「フォリッジ」パイプラインが追加され、アルファマスキングを使用した植物モデルの品質を向上させます。
プロジェクトテンプレート
Wonderland Engineはすでにその迅速な開発ワークフローで非常に生産的です。それにもかかわらず、最初の時点で何かをする必要がないことは、さらに早い場合があります。必要なボイラープレート作業を減らすために、プロジェクトを迅速に開始するためのテンプレートを提供することになりました。
さらに必要であれば、自分のテンプレートを作成し、コミュニティと共有することができます。
変更ログ
エディター
- V8を通じたJavaScript ES2018のサポートを追加
- エディターは、ソースjsファイルではなく、結果として得られるバンドルを解析するようになりました
- npmスクリプトを介してJavaScriptバンドルをビルドするオプションを追加
- 組み込みエディターコンポーネントをオープンソース化
- エディターコンポーネントをnpmパッケージとして公開
- プロジェクトを作成するためのプロジェクトテンプレートを追加
- カスタムプロジェクトテンプレートのサポートを追加
- パイプラインサポートを追加
- カバレッジへのアルファ(「MSAAを使用したアルファマスキング」)をサポートを追加
- 任意のブレンディング設定のサポートを追加
- デプステストとデプス書き込みマスクを無効にするオプションを追加
- 両面マテリアルのサポートを追加
- カバレッジによるアルファを備えた両面マテリアルのための「フォリッジ」パイプラインを追加
- JavaScriptバンドルのsourcemap生成を追加
- 圧縮テクスチャアトラスでのミップマッピングの実験的サポートを追加
- Property ViewからシーンアウトラインへのCtrl + Drag’n’Dropにより、他のオブジェクトにコンポーネントをコピーする機能を追加
- プロジェクト設定に
framebufferScalingFactor
設定を追加 - Scene ViewでMSAAを有効にして、ランタイムの見た目に一致させる
- シーンの読み込み時間を改善
- Asset Browserのファイル領域にフォルダを追加
- パッケージング中に変更を加えた際の稀なクラッシュを修正
- アセットブラウザに何もドラッグしなかった時のクラッシュを修正
--windowless
フラグによる失敗時の戻り値を修正- Resources Viewでのテーブル行のハイライトを修正
- Resources Viewで一部のリソースがリネームできない問題を修正
- プロパティドロップダウンで一部のリソースが選択できない問題を修正
- 親を持つオブジェクトのScene Viewでのスケーリングギズモを修正
- UIスタイルとレイアウトを改善
- 多くのオブジェクトを含むシーンのトランスフォーメーションギズモの流動性を向上
- OBJファイルのインポートサポートを改善
- 不要なログ出力を削除して煩雑さを減らす
テンプレート
- ヒットテストを持つ「モバイルAR」テンプレートを追加
- ハンドトラッキング、コントローラー、テレポートロコモーション、カーソル相互作用を備えた「VR」テンプレートを追加
ランタイム
- JavaScript APIをモジュール化
- APIをオープンソース化 (https://github.com/WonderlandEngine/api)
- APIをnpmパッケージとして公開 (https://www.npmjs.com/package/@wonderlandengine/api)
- 全てのWebXR参照スペースをデフォルトで最も進化したものでリクエストし、選択されるように
- Oculus Questでの大規模プロジェクト開発中にWasmMemroyが割り当てられない問題を修正
- スキンメッシュを非アクティブ化した際のクラッシュを修正
- VR/ARに入るためのボタンを改善
- ランタイムの初期描画までのより良い見た目のための背景グラデーションを追加
- ブラウザコンソールでエラーとして記録されていた警告を修正
- エディタで非アクティブ化されたJavaScriptコンポーネントで
start()
が呼ばれる問題を修正
エンジン
- ブルームが有効な場合のアンチエイリアスを修正
- BoxおよびAxisAlignedBoxに対するレイキャストのパフォーマンスを改善
- テキスト更新のパフォーマンスを改善
- 多くの動的オブジェクトツリー(スキンメッシュ)を持つシーンのシーングラフパフォーマンスを大幅に改善
JS API
WL.Material.*
パラメータアクセスでの例外を修正WL.PhysXComponent.shape
、extents
、およびその他のプロパティを設定してPhysX剛体を修正するためのsetterを追加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: 表示メッシュとコントローラーオブジェクトを(非)アクティブ化するオプションを追加 (ポーズが利用可能かどうかに応じて)
finger-cursor
コンポーネントを追加して、コリジョンオーバーラップを通じてcursor-target
と相互作用(例: 人差し指の先でハンドトラッキング)
Dockerイメージ
- ベースイメージをubuntu:20.04に変更
- リリース候補テスター向けに
edge
タグを追加