ARKitを使おうとしていますが、質問はとても簡単です。カメラの位置を取得するにはどうすればよいですか?
SCNNode
を(0
、0
、0
)たとえば、私のARCameraは地面を見ています。たとえば、3Dオブジェクトを見るために見上げる必要があります。つまり、どういうわけか、デバイスのカメラの位置と向きにアクセスできる必要があります。
では、どうすればwhere the camera is
およびwhere she is looking to
?
前もって感謝します。
ARCamera.transform
プロパティを使用して、カメラの現在の変換を取得できます。次のコードは WWDC 2017でARKitを紹介しています からのものです。おそらく紹介として見たいと思います。変換を使用して、カメラの10cm前にノードを配置しています。
Swiftの場合:
var translation = matrix_identity_float4x4
translation.columns.3.z = -0.1 // Translate 10 cm in front of the camera
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
Objective-Cで
matrix_float4x4 translation = matrix_identity_float4x4;
translation.columns[3][2] = -0.1; // Translate 10 cm in front of the camera
node.simdTransform = matrix_multiply(currentFrame.camera.transform, translation)
または、X
、Y
、およびZ
軸に対して同時に次のアプローチを使用できます。
var translation = matrix_identity_float4x4
translation.columns.3 = simd_float4(0, 0.2, -0.5, 1) // x, y, z, HC
aNode.simdTransform = matrix_multiply(translation,
currentFrame.camera.transform)
columns.3
の最後の要素は同次座標で、1
と同じです。
お役に立てれば。