ARKitを利用し、検出した平面に3Dモデルを常にカメラの方に向かせてみます。

最初は現在のカメラの位置を取得し、3Dモデルノードのポジションを常にアップデートをしようと考えましたが、もっと簡単にできる方法がありました。

SCNBillboardConstraint

SCNBillboardConstraintを利用する事で簡単に、3Dモデルを常にカメラ方向に向かせる事が出来ます。

公式ドキュメントによると、ノードを常に現在のカメラを向くように方向付ける制約との事。

SCNNodeのインスタンスのconstraintsプロパティに追加するだけで、カメラ目線を実現できます。

公式ドキュメントリンク
https://developer.apple.com/documentation/scenekit/scnbillboardconstraint

実行

 

3Dモデルは下記を利用させていただきました。
https://www.turbosquid.com/3d-models/lego-minifigure-lwo/619834

LEGOブロックのキャラクターが、常にこちらを向いてくれる様になりました。

設定どおり、Y軸は固定しているので縦の動きの時は固定されていますね。