こちらは、2021年7月5日に公開された以下のドキュメントを翻訳したものとなります。
Transitioning to the New Render Component and Fill Mode API
今回は通常のブログ記事とは異なりますが、近日中にPlayCanvasプラットフォームにいくつかの大きな変更が行われるため、その変更の背景と事前の通知をおこないます。そしてさらに重要な点として、プラットフォーム全体にどのような影響があるのかを説明します。
モデルコンポーネント モデルインポートパイプラインから新しいレンダリングコンポーネントへの移行
モデルの階層をシーンにインポートできるようにする作業の一環として、エンジンとエディターの新機能である「レンダリングアセット」と「レンダリングコンポーネント」を導入しました。
今後、この方法はインポートされたモデルをレンダリングするためのデフォルトの方法となり、開発者はモデル内のメッシュインスタンスをエディタで直接操作することができるようになります。例えば、新しいパイプラインでは、家のFBXモデルをインポートして、モデル全体ではなくドアのメッシュインスタンスだけをシーンで使用することができます。
ただし、モデルコンポーネントはアニメーションとアニメーション(ステートグラフ)コンポーネントの両方に対応していますが、レンダリングコンポーネント/階層のインポート機能はアニメーション(ステートグラフ)コンポーネントにのみ対応していますので、ご留意ください。
(詳細は今後のお知らせでご説明しますので、少々お待ちください!)
モデルコンポーネントを使用している既存のプロジェクトについては、ご安心ください。 既存の機能が削除されることはありませんし、プロジェクトを新しいパイプラインにアップデートしないと開発を継続できないということではありません。モデル コンポーネントに新しい機能は追加されませんが、PlayCanvasチームは既存のパイプラインのバグを修正し続けます。
既存のプロジェクトで新しいパイプラインの機能を利用したい場合は、同一のプロジェクト内に両方のパイプラインを混在させることもできます。ただし、その場合はプロジェクトのコードが複雑になる可能性がある点に留意してください。
今後数か月間の変更予定は以下のとおりです:
- プロジェクト設定を追加/リネームし、2つのメッシュインポートパイプラインを切り替えます(現在の「階層インポート」設定)。
- 新規作成されたプロジェクトは、デフォルトでレンダリングコンポーネントパイプラインを使用しします。
- developer.playcanvas.comチュートリアルを更新し、レンダリングコンポーネントを使用するようにします(playcanvas.github.ioエンジンのサンプルはすでに更新されています)。
- テンプレートプロジェクト(ブランクプロジェクト、モデルビューワースターターキット、VRスターターキット)を更新し、レンダリングコンポーネントを使用するようにします。
- ユーザーマニュアルを更新し、モデルコンポーネントではなくレンダリングコンポーネントパイプラインを使用するよう手順を軽減します。
PlayCanvasフィルモードAPIへの大幅な変更
Web 開発者の幅広い用途に対応できるよう、私たちはPlayCanvasエンジンの柔軟性を出来る限り保ちたいと考えています。そのためには、当初は意味があったけれども現在では有用ではなくなってしまった既存の APIを変更する必要があります。
そういったAPIの一例がpc.Applicationのフィルモード関連の関数です:
これらの関数は、DOMのキャンバス要素のサイズに影響します。これは、PlayCanvas で作成されたアプリは iframe化されているかフルスクリーン/フルドキュメントのアプリであると長い間考えられていたためです。
しかし、iframeを使うよりもむしろキャンバス要素をもっとコントロールしたいという要望が増えてきました。その主な理由は、iframeでのメッセージングを行わなくても、ページとPlayCanvasアプリの間の通信が容易になるからです。
以下がその例です:
- Forum: A Complete PlayCanvas scene inside a div
- Forum: PlayCanvas within a div
- Forum: Embedding PlayCanvas into a webpage without iframe
現在のところ、エンジンにパッチを当てなければエンドユーザーはキャンバスを完全にコントロールすることができません。
また、アーキテクチャの観点からも、エンジンはレンダリング中の要素のサイズや位置を扱うべきではありません。それらは、ウェブドキュメントとそのドキュメントがページ上の要素をどのようにレイアウトしたいか(スタイルシートなど)で決定するべきです。
以下の場合には、これらの変更が直接的に影響を及ぼします:
- HTMLボイラープレートとしてのエンジンのみのユーザーが、キャンバスのサイズ変更と位置調整を処理します。サンプルはexamplesフォルダに用意されています。
- 実行時にフィルモードを変更したり、Canvasのサイズを変更したりする開発者。ランドスケープモードやポートレートモードをより効果的に処理するために、一部の開発者はこのような処理をおこなっています。
現在の予定ではこれらの関数を非推奨とし、PlayCanvasエディタ環境のページ上でグローバルにアクセス可能な関数に移行することで、プロジェクトや開発者のダウンタイムをできるだけ少なくすることを目指しています。これらの関数を使用すると、最悪の場合でもコンソールログにいくつかの警告が表示されるだけとなります。
段階的に以下を実施していきます:
- グローバルアクセスが可能なJS関数をエディタに追加し、エンジンのフィル モード関数を置き換えるHTMLテンプレートを公開します。
- PlayCanvasエディタと公開されたビルド テンプレートを変更し、エンジン関数が上記のグローバル関数を呼び出すようにパッチを当て、代わりにグローバル関数を使用するように警告します。
- ユーザーマニュアルを更新し、これらのグローバル関数について説明します。
- 影響を受けるエンジン関数を警告付きで非推奨にし、ユーザーマニュアルのページを参照します。
質問とフィードバック
ご質問やご不明点がある場合には、フォーラムにお寄せください。PlayCanvasチームが回答します。
今回の移行に際し、PlayCanvasチームは皆様のご理解とご協力をお願いいたします!
コメント
0件のコメント
サインインしてコメントを残してください。