Niantic Lightship ARDK のメッシュ機能を使用する
Niantic社が提供しているスマホ用のARアプリケーション開発キット、Lightship ARDKを使用し、メッシュ生成を行う方法について説明します。(上記のようなアプリを開発します。)
Niantic Lightship ARDKとは?
『 Ingress 』、『 Pokémon GO 』、『Pikmin Bloom』などでも使用しているNiantic社が提供するARアプリケーション開発キットになります。マルチプレイヤー、深度、物理、オクルージョン、セマンティックセグメンテーションなどの機能が提供されています。
開発環境と動作確認したデバイス
Unity Editor 2019.4 を使用してます。
今回、テストで使用したデバイスはiPhone 12 Proになります。
1. Niantic Lightship ARDK ダウンロード
以下から入手してください。今回、使用しているバージョンはv1.1.0になります。入手する際、Niantic Lightshipのアカウント登録が必要です。
2. Niantic Lightship ARDK インポート
UnityEditor のメニューにあるAssets → Import Package → Custom Package...を選び、ダウンロードした ardk-1.1.0.unitypackage をインポートします。
3. 新規でSceneを作成とMain Cameraの削除
新規でSceneを作成後、Main Cameraを削除します。
4. ARSceneManagerをヒエラルキーに追加
5. ARMeshをヒエラルキーに追加
Project上でARMeshを見つけヒエラルキーにドラッグ&ドロップします。
6. Mesh Prefabの変更
ARMesh にあるARMeshManager の Mesh Prefab を MeshColliderChunk に変更します。
7. Cube Prefabの作成
Cubeを作成します。スケールは全て0.1に変更を行い。Rigidbodyを追加します。作成したCubeをPrefabにします。
8. Cube スクリプトの作成
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Cube : MonoBehaviour
{
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
}
public void Shoot(Vector3 dir)
{
GetComponent<Rigidbody>().AddForce(dir);
Destroy(gameObject, 10.0f);
}
}
上記のスクリプトをPrefab化したCubeに追加します。
9. Playerの作成
ARSceneCamera配下にGameObjectを作成。名前をPlayerに変更。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Niantic.ARDK.Utilities;
public class Player : MonoBehaviour
{
[SerializeField]
private GameObject Cube;
[SerializeField]
private float force = 200f;
// Start is called before the first frame update
void Start()
{
}
// Update is called once per frame
void Update()
{
if (Input.touchCount > 0)
{
var touch = PlatformAgnosticInput.GetTouch(0);
if (touch.phase == TouchPhase.Began)
{
GameObject obj =
Instantiate(Cube, transform.position, transform.rotation) as GameObject;
obj.GetComponent<Cube>().Shoot(obj.transform.forward * force);
}
}
}
}
上記のスクリプトをPlayerに追加。
CubeにPrefabにしたCubeを設定します。
10. ビルド&実行
起動すると周辺のメッシュが生成されます。タップするとCubeが発射されます。Cubeとメッシュとの衝突判定も確認できます。
参考
最後に
Niantic Lightship ARDK のブログ記事
この記事以外にNiantic Lightship ARDKのブログ記事を投稿しています。
OnePlanet XR
OnePlanet XR はAR/MR技術に専門特化したコンサルティングサービスです。豊富な実績を元に、AR/MR技術を活用した新たな事業の立ち上げ支援や、社内業務のデジタル化/DX推進など、貴社の必要とするイノベーションを実現いたします。
ご相談から受け付けております。ご興味ございましたら弊社までお問い合わせください。
OnePlanet Tech Magazine
様々な技術記事を定期的に投稿しています。