FC2ブログ

頭と尻尾はくれてやる!

パソコンおやじのiPhoneアプリ・サイト作成・運営日記


TrueDepthカメラとARKitを使う画面の背景をキューブマッピングで設定する

Objective-CでCGAffineTransformからSCNMatrix4へ変換する
↑ここでも少し触れているが、Appleのサンプルコード Creating Face-Based AR Experiences で自分の顔の位置・姿勢、目と口の開け具合を反映してロボットの顔を表示するのがある。

FaceTracking中のスクショ

↑こういうサンプルアプリ。

このようなアプリの場合、表示にはSCNViewのサブクラスであるARSCNViewクラスが使われてる。
TrueDepth cameraを使うARFaceTrackingConfigurationでsessionをスタートすると画面の背景には自動的に(特に記述する必要もなく)フロントカメラで撮影した画像が画面に表示される。

アプリの用途によってはこのフロントカメラで得た画像は不要で、SceneKitで描いた風景なんかを描いてみたい、という場合もあるかもしれない。
ということで背景をキューブマッピングで指定してみた。
{
    // Create a new scene
    SCNScene *scene = [SCNScene sceneNamed:@"art.scnassets/ship.scn”];//—(1)

    // Set the scene to the view
    self.sceneView.scene = scene;//—(2)

    scene.background.contents = @[@"sky_front.png", @"sky_front.png", @"sky_top.png", @"sky_front.png", @"sky_front.png", @"sky_front.png”];//—(3)
}
↑SceneKitを使うプロジェクトを作成すると(1),(2)のような記述がある。
その下に(3)のような6方向の画像を指定する。これは別にARSCNViewとか関係なくSceneKitでは通常の記述だ。
挙動を見たいというだけなので2種類の画像しか使っていないが😁
その結果が↓こちら。


デバイスの方向に従って背景画像が変わっている。

なお、現在のところ上記コードの(3)を(1)と(2)の間に置くとうまく背景が設定できない(そのうち直るかもしれないけど)。


Xcode 10.1
iOS 12.1

<< 画像の判別がCreateMLでダメだったのでKerasでやってみた  TopPage  フォレストアドベンチャー祖谷へ行った >>

コメント


管理者にだけ表示を許可する
 

トラックバック

トラックバックURL
http://ringsbell.blog117.fc2.com/tb.php/1257-7c7a3815




Copyright ©頭と尻尾はくれてやる!. Powered by FC2 Blog. Template by eriraha.

FC2Ad