visionOS2のリリースノートを読む!
はじめに
こちらはMESONで実施中のMESON Apple Vision Proアドベントカレンダー #2 3日目の記事となります!
前日の記事はこちら
WWDC2024でvisonOS 2の発表があり、Apple Vision Proが日本でも発売されました!
今回は WWDC2024で追加されたRealitKitのリリースノートを見ていこうと思います。
発表では注目されていなかったアップデートなどもありますので、自分が気になった部分を中心に紹介できればと思います。
気になった更新内容
ライトの追加
ついにライトが追加されています!
MESONではアメリカ発売時にSunnyTuneという天気のアプリをリリースしたのですが、その当時はライトが使用できず、自前でライティングを実装しました。
ライトの追加によって影も追加できるようになったので、よりリッチな表現ができるようになっています。
SunnyTuneは日本語対応もしましたので興味のある方はダウンロードしてみてください!
SpatialTrackingSessionの追加
SpatialTrackingSession
として平面やハンドのアンカーをまとめて取得できるようになったようです。
ただ、例を見る限り AnchorEntityとしてしか取れなそうですが、細かい関節情報やメッシュ情報は取得できるか調査が必要そうです。
LowLevelMeshの追加
LowLevelMesh
が追加されてより細かいメッシュの生成ができるようになりました。
頂点のレイアウトを自分で設定できるようになり、必要な頂点構造のみで描画できるようになりそうです。
アニメーション管理コンポーネントの追加
AnimationLibraryComponent
が追加され複数のアニメーションを管理できるようになりました。
RealityComposerPro上でも設定できるようになっているので、RealityComposerRroが使いやすくなっています。
IKの追加
IKComponent
とIKSolver
が追加され、IKも扱えるようになりました。
よりゲームエンジンに近いことができるようになってきましたね。
Unityで使うようにRealityComposerProでこちらも扱えるようになると良いのですが・・。
オーディオ管理コンポーネントの追加
音もアニメーションと同じように複数の音をまとめて管理することができる AudioLibraryComponent
が追加されました。
こちらもアニメーションと同じくRealityComposerPro上で設定もできるのでGUIベースで設定できるのは便利ですね。
ブレンドシェイプの追加
こちらも待望のブレンドシェイプの追加が行われました!
今まで使用できなかったのでボーンアニメーションで表情も変化させる必要がありましたが、ブレンドシェイプで行うことができるようになります!
UnityのPolyspatial 2.0時点ではまだ対応がされていなかったので、おそらくvisionOS2対応のバージョンで使用できるようになると思います。
しかし、Xcodeで使用するためにはUSDファイルにする必要があるので、USDにブレンドシェイプを追加する必要があります。
現状RealityConverterを使用した変換ではブレンドシェイプが含まれていなさそうだったので、別の方法を取る必要がありそうです。
SpatialAudioComponent
距離減衰distanceAttenuation
を指定できるようになりました。
ゲームデザインに合わせて遠くのものがすぐに聞こえにくくしたり、減衰率を下げて、離れても聞こえるようにしたりと細かい調整ができそうです。
HoverEffectのカスタマイズ
こちらも待望のHoverEffectのカスタマイズが追加されました!
今まで視線が当たった時の表現が1種類しかなくデベロッパーがカスタマイズすることができませんでしたが、シェーダーグラフを使用したカスタマイズまで対応しているため、かなり柔軟に設定することができるようになっています!
SkyboxのCubeテクスチャ指定
EnviromentResoucesでCubeテクスチャが使用できるようになりました。
今回のアップデートで、Cube Texture, Texture 2D Array, Texture 3D が使用できるようになったため、その対応がEnviromentResourceにも入った形になります。
PhysicsJointの追加
物理で動作するジョイント系が追加されました。
こちらもRealityComposerProで指定できるようになると使いやすくなりそうですね。
構造体 | 説明 |
---|---|
PhysicsRevoluteJoint | ドアが蝶番で開くのと同様に、2 つのエンティティ ピン間で 1 度の回転自由度を許可するジョイント。 |
PhysicsPrismaticJoint | 引き出しのように直線に沿った動きを可能にするジョイント。 |
PhysicsSphericalJoint | 2 つのエンティティのピン間の自由な回転運動を可能にする球面ジョイント。 |
PhysicsCustomJoint | 個別に指定できる 6 つの自由度を持つジョイント。 |
PhysicsDistanceJoint | 2 つのエンティティ ピン間の最小距離と最大距離を維持するジョイント。 |
PhysicsFixedJoint | 自由度ゼロで 2 つのエンティティ ピンを固定的に接続するジョイント。 |
DockingRegionComponentの追加
ImmersiveSpaceで動画の位置を固定するDockingRegionComponent
が追加されました。
FullImmersiveで空間を作った時に指定した位置で動画を再生することができるようになります。
より動画を独自の環境で再生することができるようになっているため、visionOS2ように更新されたDestinationVideo
のサンプルを再度見てみてください。
空間を横断できるPortalコンポーネント
PortalCrossingComponent
が追加され、ポータルからこちらの空間へシームレスに行き来することができるようになりました!
これにより仮想空間から現実空間に飛び出てくるような演出が簡単にできるようになっています。
まとめ
visionOS2 では他にもエンタープライズ向けのカメラアクセスやオブジェクトトラッキングなど多くの機能が追加されています!
visionOS1 の時にはできなかったことも、できるようになっている可能性があるので、改めてリリースノートを確認してみると良いかと思います!
エンジニア絶賛募集中!
MESONではUnityエンジニアを絶賛募集中です! XRのプロジェクトに関わってみたい! 開発したい! という方はぜひご応募ください!
また最近ではAIの活用も積極的に進めており、XR x AIに興味があるエンジニアの方もぜひご応募ください!
MESONのメンバーページからご応募いただくか、TwitterのDMなどでご連絡ください。
書いた人
佐藤 寿樹
株式会社コナミデジタルエンタテインメントに入社し5年間ウイニングイレブンのオンライン実装に携わる。
その後、株式会社コロプラで9年間エンジニアとしてアプリ開発・運用を行い、位置情報やARを使用したARゲーム開発、OculusRiftやPSVRなどのVRゲーム開発を経験しMESONへ入社。
MESON Works
MESONの制作実績一覧もあります。ご興味ある方はぜひ見てみてください。
Discussion