SceneKit を使用して 360º VR エクスペリエンスを作成しています。ユーザーの周りのドームにビデオを表示します。
SpriteKit シーンは、SKVideoNode を使用してビデオ フィードを再生しています。この SpriteKit シーンは、SceneKit で球体の周りにラップされ、ドームを作成します。
videoGeometry.firstMaterial?.diffuse.contents = spriteKitScene
再生は素晴らしいです。360° ビデオが表示され、オーディオが聞こえます。ユーザーが回転すると、サウンドが一緒に移動するように、位置オーディオを追加したいと思います。位置を移動するのではなく、ユーザーの頭で回転します (Oculus Rift のように)。
どうやってやるの?
いくつかの研究:
理想的には、SpriteKit に自分の回転を伝えることができます。
次善の方法は、オーディオ トラック (たとえば、5.1 オーディオの MP4 の 6 トラック) にアクセスし、各トラックを 3D シーンのノードにアタッチする方法です。
SpriteKit と SceneKit はどちらも位置オーディオをサポートしています。
SKScene
プロパティを持っていlistener
ます。しかし、2D の世界にいるため、SKNode は回転について認識しません。現在の頭の回転を設定できません。SceneKit には
audioListener
ノードがあり、頭の回転がわかります。しかし、それはSCNAudioPlayer
私が持っていないことを期待しています-SKVideoNodeはビデオとオーディオを再生しています。SKVideoNode のオーディオ トラックについて SCNAudioPlayer に伝えることができれば!SKScene
も提供していますaudioEngine
- トラックはここから入手できますか?SCNVideoNode がないので、SKVideoNode を使用する必要があります。
この状況で位置オーディオを行う方法はありますか?