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のサポート
- エディターはソースではなく、バンドル結果を解析するようになりました
- npmスクリプトを介したJavaScriptバンドルビルドオプションを追加
- 組み込みエディターコンポーネントをオープンソース化
- エディターコンポーネントをnpmパッケージとして公開
- プロジェクト作成用テンプレートを追加
- カスタムプロジェクトテンプレートのサポートを追加
- パイプラインサポートを追加
- 「alpha to coverage」(MSAAを使ったアルファマスキング)サポートを追加
- 任意のブレンディング設定のサポートを追加
- デプステストとデプス書き込みマスクを無効にするオプションを追加
- 両面マテリアルのサポートを追加
- 覆われる両面マテリアルのための「フォリッジ」パイプラインを追加
- JavaScriptバンドルのsourcemap生成を追加
- 圧縮テクスチャアトラスでのミップマッピングの実験的サポートを追加
- Property ViewからシーンアウトラインへのCtrl + Drag’n’Drop機能によりコンポーネントのコピーを可能に
- Project Settingsに
framebufferScalingFactor
を追加 - シーンビューでMSAAを有効にしてランタイムの見た目に一致させる
- シーンの読み込み時間を改善
- Asset Browserのファイル領域にフォルダを追加
- パッケージ化中の稀なクラッシュを修正
- 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
、その他プロパティのsetterを追加し、PhysXリジッドボディを変更可能に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
タグを追加