PlayCanvas Editor 2.32 がリリース!物理ジョイント、Parallax Occlusion、Gaussian SplatのLOD刷新など

2026年9月22日(現地時間)- WebGL/WebGPUベースのゲームエンジン「PlayCanvas」のブラウザ版エディター「PlayCanvas Editor」が、バージョン2.32へとアップデートされました。

目次
    1. Joint コンポーネント
    2. Parallax Occlusion Mapping(視差遮蔽マッピング)
    3. Shadow Cascades(シャドウカスケードの個別指定)
    4. Justify(テキストの両端揃え)
    5. Gaussian Splat の LOD 設定の刷新

主な新機能

今回のアップデートでは、物理シミュレーションを構築するためのJoint(ジョイント)コンポーネントがエディターUI上で視覚的にセットアップできるようになりました。あわせて、マテリアルの立体感を高める視差遮蔽マッピング(Parallax Occlusion Mapping)、ライトごとの描画負荷を削減するシャドウカスケードの個別割り当て、テキストの両端揃え(Justify)、さらにGaussian SplatにおけるLOD(詳細度)制御の刷新など、表現力と描画パフォーマンスの両面にわたる多くの機能追加が行われています。

なお開発チームは、このリリースの案内を皮切りとして、エディターの開発進捗や新機能のアナウンスをこれまでより短いサイクルで、公開タイミングに近い形で継続発信していく方針としています。

Joint コンポーネント

Joint(ジョイント)コンポーネントは、2つのリジッドボディ(剛体)同士、あるいは1つのリジッドボディとワールド空間上の特定アンカー地点の間を拘束(コンストレイント)するための物理要素です。

エンジンコアには従来から備わっていましたが、スクリプトを作成することなくエディターのインスペクター上で視覚的にパラメーターを構成できるようになったのは今回のv2.32が初となります。

蝶番(ヒンジ)でスムーズにスイングする扉、1軸上を昇降するエレベーターやリフト、荷重に応じてしなる吊り橋の足場、キャラクターのラグドール表現、外力に反応して揺れる看板など、手付けアニメーションではなく物理演算に連動したインタラクションを構築したい場面で幅広く活用できます。

コンポーネントの追加は、設定したいエンティティを選択した状態で[Add Component]>[Physics]>[Joint]から行います。なお、前提環境としてプロジェクト内に物理エンジン「Ammo」がインポートされていること、およびジョイントで参照する双方のエンティティに「rigidbody」コンポーネントが割り当てられていることが必須となります。

5つのジョイントタイプと主な設定項目

ジョイントは「Fixed」「Ball」「Hinge」「Slider」「6DoF」の計5タイプから選択でき、選んだタイプに応じてインスペクター上の設定欄が切り替わります。

  • 全タイプ共通項目: 「Entity A」「Entity B」「Enable Collision」「Break Impulse」。Entity Bを空欄にしておくとEntity Aがワールド空間に固定され、Break Impulseを未入力にしておくと強い負荷がかかっても破断しない強固なジョイントになります。
  • Ball / Hinge / Slider: 「Enable Limits」にチェックを入れることで、可動域の制限が有効化されます。
  • Hinge / Slider: 可動制限を有効にすると「Limits」にて角度や移動距離の範囲を指定できます。「Motor Speed」と「Max Motor Force」は可動制限とは独立して機能するため、可動域の制限を設けずに連続回転するモーター機構として利用することも可能です。
  • Ball: 球体関節用の制御項目として「Swing Limit Y」「Swing Limit Z」「Twist Limit」が追加されます。
  • 6DoF(6自由度): 並進(X/Y/Z)および回転(X/Y/Z)の各軸について、動作許容・範囲制限・スプリング(バネ)挙動を個別に指定可能です。コードを書かずとも、サスペンション、ピストンシリンダー、制限付き複合ヒンジなどを柔軟に構築できます。

【Tips】実行中の調整について

実行中にジョイントの「Type」を切り替えた場合、内部コンストレイントは再生成され、破断フラグもリセットされます。ただし、破断などによってすでに離れてしまったボディが元の位置へ自動的に引き戻されることはありません。

一方で、「Swing」や「Twist」などの制限値についてはコンストレイントに即座に反映されるため、Launchページで挙動を確認しながらリアルタイムに可動域を微調整していくワークフローが可能です。

Parallax Occlusion Mapping(視差遮蔽マッピング)

スタンダードマテリアル内に新しくParallaxパネルが追加されました。従来のハイトマップを用いた単純なテクスチャ座標オフセットに加え、レイマーチングを用いて幾何学的な陰影や深さをリアルタイムに表現するOcclusionモードが利用可能です。

レンガ壁や石畳、金属パネルの深い溝など、通常の法線(ノーマル)マップのみでは浅い斜め視点から見下ろした際に平坦さが目立ってしまうサーフェスに立体感をもたすことができます。

このパネルは、マテリアルに法線マップ(Normal Map)が割り当てられている場合のみ有効になります。主な設定項目は以下のとおりです。

  • Mode: 「Offset」(単一のハイトマップに基づく軽量なオフセット)または「Occlusion」(レイマーチングによる高精度な視差遮蔽)を選択します。
  • Strength: 凹凸の深さ(視差効果の強さ)を調整します。
  • Base: 基準となるメッシュ表面に対応するハイトマップ値を設定します。白が平面で黒が窪みとなる深度マップの場合は、基準値として 1 を指定します。
  • Samples: ハイトマップに対する最大レイマーチングサンプル数です(Occlusionモード時のみ)。数値を引き上げることで品質が向上しますが、GPUの描画負荷も増加します。
  • Self Shadow: 各ディレクショナルライトに対する自己影(セルフシャドウ)の最大サンプル数を指定します(Occlusionモード時のみ)。0 に設定すると自己影が無効化されます。

なお、視差遮蔽マッピングはピクセルシェーダー上で陰影とテクスチャ座標を補正する表現手法であり、ポリゴンメッシュ自体の実際のシルエットや深度バッファ情報が物理的に書き換わるわけではありません。そのため、平面ポリゴンの最外縁(輪郭エッジ)を真横から見た際に形状自体が凸凹に削れて見えるわけではない点には留意が必要です。

Shadow Cascades(シャドウカスケードの個別指定)

Renderコンポーネント内に、シャドウの生成対象を細かく制御できるShadow Cascadesフィールドが追加されました。ディレクショナルライトが持つ最大4段階のカスケードシャドウマップのうち、当該オブジェクトをどのカスケード階層の影生成パスに含めるかを4つのチェックボックスで個別に選択できます(ライト側で設定されていないカスケード番号は自動的に無視されます)。

この機能の主目的は、広大なシーンにおけるレンダリング負荷の最適化です。たとえば、遠景にのみ配置されている大きな背景ジオメトリはカメラ至近のシャドウ(第1〜2カスケード)の生成パスから除外し、反対に遠くからは視認されない小道具類は手前のカスケード限定で影を落とすように構成することで、無駄なシャドウ描画コストを削減できます。なお、この設定項目は「Cast Shadows」の直下に配置されており、同オプションが有効な場合のみ表示されます。

【既知の問題】エディタービューポートへの反映

チェックボックスのマスク状態を変更した際、エディターのプレビュービューポート側がキャッシュ済みのシャドウマップを即時破棄せず、カメラの視点を少し動かすまで変更が画面に現れない現象が報告されています。Launchページ(ブラウザ実行プレビュー)側では正しく反映されており、開発チームはこのビューポートの挙動を既知の不具合として今後の修正対象としています。

Justify(テキストの両端揃え)

UIシステムを担うElementコンポーネントのテキスト設定に、新しくJustify(両端揃え)オプションが追加されました。

テキストが複数行に折り返された際、単語間の余白を自動的に配分することで、左右両端のラインが綺麗に整列します。UIウィンドウ内の長文説明文やクレジット表記など、行末のガタつきを抑えて整然としたタイポグラフィを実現したい場面で有効です。

このチェックボックスは、「Wrap Lines(テキスト折り返し)」が有効、かつ「Auto Width(自動幅調整)」が無効に設定されている場合のみインスペクターに表示される仕様となっています。

Gaussian Splat の LOD 設定の刷新

3D Gaussian Splattingを扱う「gsplat」コンポーネントのLOD制御機構が刷新されました。これまでに用いられていた「LOD Base Distance」および「LOD Multiplier」の2項目が廃止され、より直観的で柔軟な3つのパラメーターに置き換わっています。

  • LOD Range Min / LOD Range Max: 当該スプラットモデルの描画に使用するLODレベルの許容範囲を定義します。
  • LOD Falloff: シーン全体に割り振られたスプラット描画バジェット(目標上限数)の中で、カメラ近傍へどれだけディテールを重点的に配分するかを調整します。0 を指定した場合は距離に偏らず均等に割り振られます。

LOD範囲を明示的に指定できるようになったことで、広大な単一のスプラットデータがシーン全体の描画バジェットを占有してしまう事態を防止したり、主役となる高精緻なスキャンデータのみをカメラ距離に関わらず常時最高解像度で表示させたりといったきめ細かなリソースコントロールが可能になります。

ただし、この新しいLOD制御範囲が有効に機能するのは、マルチ解像度階層を持つストリーミング形式の「SOGオクツリー」データのみです。単体ファイルの .sog や従来の .ply 形式は内部にLOD階層を複数保持していないため、インスペクター上に設定欄自体は表示されてもLODレベルの変更は反映されません。既存のアセットで設定が効かない場合は、データフォーマットを確認する必要があります。

※デモ映像内のスプラットデータには、tosolini氏制作の「Trogir, Croatia」(CC BY 4.0)が使用されています。

その他の新機能・改善点

  • Max Lights 設定の追加: Rendering設定のClustered Lighting内に「Max Lights」が追加されました。1フレーム内で評価できるクラスタードライトの上限数を定義するもので、値が255を超えるとより高解像度なライトインデックステクスチャへ切り替わるため、メモリと帯域の観点からシーンの要件に合わせて必要最小限に抑えることが推奨されています。
  • Gaussian Splatting専用設定セクションの統合: 放射状ソート、LOD更新トリガー、Splat Budget(シーン全体の描画スプラット数目標値)、カリングやフォービエーションの閾値、各種デバッグ表示トグルなど、プロジェクト全体のスプラット関連設定が1箇所に集約されました。調整を始める際は、まずSplat Budgetの設定から着手することが案内されています。
  • Asset Credentials(アセット認証)対応: Network設定に追加され、Cookieやクライアント証明書、HTTP認証が要求される保護サーバー上のアセットを取得できるようになりました(サーバー側でクレデンシャルリクエストを許可し、ワイルドカードではなく正規オリジンを返すCORSヘッダー構成が必要です)。
  • フォント生成のクライアント化(v2.30.0以降): MSDF(マルチチャンネル符号付き距離場)フォントアトラスの生成処理がブラウザ側で完結するようになり、ディスクリプタとテクスチャアトラスを個別の管理アセットとして分離。Charactersフィールドを編集して後から文字種を柔軟に再生成できるようになっています。
  • ツールバーのカスタマイズ(v2.30.3以降): 作業環境に応じて各種ツールボタンの表示・非表示や配置順を自由にカスタマイズできるようになりました。
  • ベースエンジン: 本バージョンの基礎となる「PlayCanvas Engine」のバージョンは 2.22.3 となっています。

詳細なコミット履歴や修正項目の全一覧については、GitHubのPlayCanvas Editor v2.32.0 リリースノートをご参照ください。

利用について

PlayCanvas Editorのフロントエンド環境および基盤となるPlayCanvas Engineは、いずれもMITライセンスに基づくオープンソースソフトウェアとして開発されています。

不具合報告や機能要望はGitHubのIssue・プルリクエストのほか、公式Discordコミュニティやフォーラムを通じて受け付けられています。

今回追加・刷新された各機能のより詳しい仕様や実装手順は、以下の公式ユーザーマニュアル各項目にまとめられています。


New in PlayCanvas Editor: Joints, Parallax Occlusion and Splat LOD(PlayCanvas Official Blog)

目次

    1. Joint コンポーネント
    2. Parallax Occlusion Mapping(視差遮蔽マッピング)
    3. Shadow Cascades(シャドウカスケードの個別指定)
    4. Justify(テキストの両端揃え)
    5. Gaussian Splat の LOD 設定の刷新