Unity 3D と C# は初めてです。また、Kudans の任意追跡ソリューションがどのように詳細に機能するのか正確にはわかりません。現在、Unity Kudan SDK を使用して VR 位置追跡ソリューションを構築しています。少なくとも試してみます。今、私の計画は次のとおりです。
- メッシュが画面を離れるときはいつでも、その位置を固定して新しい特徴点を見つけたいと思います (「マーカーのないオブジェクトを配置する」ボタンはこれを行っています: 新しい特徴点を見つけてメッシュを配置します)。
- 新しい特徴点が見つかると (数ミリ秒かかるはずです)、メッシュの位置を解凍し、新しい特徴点を使用して位置をさらに変更します。
メッシュと古い特徴点が画面を離れるたびに追跡が非常に不正確になるため、「新しい特徴点を見つける」というアイデアが必要です。
私はすでにSampleApp.csでこれを試しました:
bool VRSignal;
public void Start()
{
//Get Bools from "KudanTracker"
GameObject g = GameObject.Find("Kudan Camera");
KudanTracker bScript = g.GetComponent<KudanTracker>();
bool VRSignal = bScript.ArbiTrackIsTracking();
}
public void Update()
{
if(VRSignal == false)
{
// from the floor placer.
Vector3 floorPosition; // The current position in 3D space of the floor
Quaternion floorOrientation; // The current orientation of the floor in 3D space, relative to the device
_kudanTracker.FloorPlaceGetPose(out floorPosition, out floorOrientation); // Gets the position and orientation of the floor and assigns the referenced Vector3 and Quaternion those values
_kudanTracker.ArbiTrackStart(floorPosition, floorOrientation); // Starts markerless tracking based upon the given floor position and orientations
}
}
しかし、今では正しく追跡されなくなりました。また、メッシュが画面を離れても追跡が失われないため、ArbiTrackIsTracking() がその解決策ではないことは確かです。
この問題を解決するアイデアはありますか?