2017-07-26 15 views
1

私はiOS 11ベータ版のARKITを使用しているAugmented Reality iOSアプリを開発中です。私は.scnオブジェクトをレンダリングするためにARSCNView(SceneKit)を使用しています。私はARSession(https://developer.apple.com/sample-code/wwdc/2017/PlacingObjects.zip)を作成するためにappleによって与えられたサンプルに従ってきました。 3Dモデルをカメラの代わりにカスタムの背景に配置することは可能ですか?ARKit iOS 11を使ってカメラを使わずにカスタム背景ビューを使って3Dモデルを配置する方法は?

好きなユーザーは背景色を選択できますか、カスタム2D写真を背景として提供できますか?

view.scene.background.contents = UIColor.red 

let myImage: UIImage = ... 
view.scene.background.contents = myImage 
+0

さらに詳しい情報を含める必要があります。何してるの? SceneKitを使っていますか?「カメラ」はどういう意味ですか? – orangenkopf

+0

@orangenkopfあいまいな質問を申し訳ありません。私は私の質問を編集しました。私は "SceneKit"とリンゴが提供するサンプル "PlacingObjects"を使用しています。 – yaali

+1

カメラのストリームをシーンの背景にしたいのですが、何か違うのですか?しかし、あなたはARをもう持たないよりも? 'scene'の背景をイメージや色に変更することができます:' scene.background.contents = UIColor.red'。私はそれがあまりにもARKitのために働くかどうかわからない。 – orangenkopf

答えて

2

あなたのビューでは、色やイメージにbackgroundを設定することができscene性質を持っています。 @ yaliが言っているように、CameraContentsはカメラのコンテンツを格納するために使われます。カメラが起動していない場合はbackground.contentsを取得できません(例:viewWillAppear)。私はARKitAVCaptureVideoPreviewLayerARSCNView.scene.background.cocntentsに設定していると思います。

override func motionBegan(_ motion: UIEventSubtype, with event: UIEvent?) { 
     if CameraContents == nil { 
      CameraContents = sceneView.scene.background.contents; 
      return 
     } 
     if cameraBackGround == true { 
      sceneView.scene.background.contents = "Background_sky.png" 
     }else{ 
      sceneView.scene.background.contents = CameraContents 
     } 
     cameraBackGround = !cameraBackGround 

    } 
+0

これをカメラビューに戻す方法はありますか?私はちょうど背景画像を削除し、カメラを戻したいです。 – yaali

+0

内容を 'nil'に設定してみてください – orangenkopf

+1

いいえ、運がいいです:(背景を白に変えるだけです)カメラはもう可視ではありません – yaali

0

は、私は、バックグラウンドの内容を変更するUIKitのシェイク・モーション・コールバックを使用します。

関連する問題