2017-08-08 34 views
2

ARKitアプリでレンダリングしたいカーテンがあります。私は自分のカーテン(COLLADAとして輸出されたもの)のすべての部分を追加して、私の.scnファイルに追加し、それらが正しく整列して正しいカーテンを形成するように配置しました。scnファイルすべての項目がローテートされました

私はこのファイルをARKitテストアプリケーションに追加しました。すべてのオブジェクトがそれぞれの座標系のX軸を中心に回転しているようです。

これはなぜですか?それはY対Zが上がっていることと関係がありますか?

+0

制約を使用しましたか? –

+0

@VasiliiMuravevいいえ、ファイルは単にBlenderによってエクスポートされています – vrwim

答えて

0

Blenderの座標系はZ-upを使用しますが、SceneKitはY-upを使用します。私はそれがあなたの問題の原因であると信じています。

SCNSceneにはローディングオプション付きのイニシャライザがあります。convertToYUpオプションを使用してみてください。これは、実行時またはカスタムコマンドラインツールを使用して実行することができます。

変換Y-upオプションを使用してColladaファイルを読み込んだ後、選択したURL宛先にエクスポートする方法の例を示します。

let scene = try? SCNScene(url: daeURL, options: [.convertToYUp: true]) 
scene.write(to: scnURL, options: nil, delegate: nil, progressHandler: nil) 

私は結果に非常に満足しています。 SceneKitは、単一のオブジェクトだけでなく、複雑なシーンの複数のオブジェクトを変換することができます。

エクスポートする前に、良い結果を得るために回転を適用することを忘れないでください。ローテーションを適用するホットキーはCtrl + A、次にRだと思います。

関連する問題