のしメモ アプリ開発ブログ

Unityアプリとかロボットとか作ってるときに困ったこととかメモ

円卓状にオブジェクトを配置する

Unityで任意の場所から円卓のように、任意の数のオブジェクトを配置したくなったときに使う処理をメモ

f:id:noshipu:20171128065040p:plain


スクリプト

/// <summary>
/// 円卓状にPrefabを生成する
/// </summary>
/// <param name="prefab">生成するPrefab</param>
/// <param name="count">生成数</param>
/// <param name="center">中心点のオブジェクト</param>
/// <param name="distance">距離</param>
/// <param name="isLookAtCenter">中心点の方向に向けるか</param>
private void SpawnObjectsOnRoundTable(GameObject prefab, int count, GameObject center, float distance, bool isLookAtCenter = true)
{
    for (int i = 0; i < count; i++)
    {
        var position = center.transform.position + (Quaternion.Euler(0f, 360f / count * i, 0f) * center.transform.forward * distance);
        var obj = Instantiate(prefab, position, Quaternion.identity);

        if (isLookAtCenter)
        {
            obj.transform.LookAt(center.transform);
        }
    }
}

VIVEトラッカーとスマートフォンを連携して遊ぶ

スマートフォンを窓として使って、VR世界をのぞき込んだり、MR的な現実世界に合成できたり、VR空間のユーザーと遊べるデモプロジェクトをVIVESoftwareがソースごとあげています。
下記のGithubに上がっているUnityプロジェクトを使用し、VIVEトラッカーとスマートフォンWifiで連携させることが可能です(リポジトリにはデモの1,2が含まれております)。

こんな感じでVIVEトラッカーをスマホにつけます。
f:id:noshipu:20171008035937j:plain

できることはこんな感じで、VIVEのVRユーザーとスマホユーザーが一緒の空間で遊べたりできちゃいます。



今回はそのビルドを使って遊んでみます。

準備

ハードウェアで用意するもの

HTC VIVEと動作するPC
VIVEトラッカー 1台以上
Android6.0以上が搭載したスマートフォン端末をVIVEトラッカーの数だけ
スマートフォンとPCが同じWifi環境に接続できること

ダウンロード

以下のリポジトリからBuildsをダウンロードする。(v1.2.7zをダウンロードしました)
https://github.com/ViveSoftware/ViveTrackerExperiencePrototype/releases

PCのIPアドレスを知る

コマンドプロンプトを開き、ipconfigを実行
IPv4アドレスを取得しておく。

Androidにビルドをいれる

各プロジェクトに含まれるAPKをインストールしておく
Builds\1-ModelViewer\ModelViewerDemo.apk
Builds\2-SimpleShooter\SimpleShooterDemo.apk
Builds\3-PaintVR\PaintVRMobile.apk

デモを試してみる

  • ネットワークの認証が各プロジェクトごとにでますが全て承認してください。
  • スマホのアプリ起動時にPCのIPを入力してください。

1. ModelViewer

  • モデルを見れるデモ
  • モバイル側は現実世界の上にモデルが表示される仕様となっている


2. SimpleShooter

  • VIVEユーザーとモバイルユーザーで時間制限の撃ちあいをすることができる
  • VIVEユーザーはモバイルユーザーをVR空間でヴァーチャルなオブジェクトを狙う
  • モバイルユーザーは現実世界のVIVEユーザーを狙う
  • 真ん中の障害物はお互いに見えている状態

3. PaintVR

  • オブジェクトにスプレーで色を塗ることができるアプリ
  • VIVEコントローラーがスプレー缶になり色を塗れる
  • 一眼VRでViveコントローラーも使えそう

youtu.be

色々使いどころがありそうなデモプロジェクトでした。
VIVEトラッカーが必要なのでアミューズメントVRや、ビジネス関係VRとか、趣味プロジェクトとかで活躍しそうです。

Unity 2017.2で統合されるVuforiaを試してみる

2017.2からSDKをインポートせずにVuforiaが使えるようになるみたいです。
まだベータ版ですがVuforiaを試してみます。

今回試すのはVuforiaの公式GettingStaredのやつです。
注意事項としてまだベータ版なので、リリース非推奨かつ、将来の商用プロジェクトとして開発することも推奨していないとのことです。
こちらの記事の記載も大きく変わっていく可能性があるのでご注意ください。
https://library.vuforia.com/content/vuforia-library/en/articles/Training/getting-started-with-vuforia-in-unity-2017-2-beta.html

前提条件

Unity 2017.2.0b11
ビルドターゲットはAndroidで(iOS, UWPも選択可能とのこと)

導入していきます

Unityプロジェクト作成

以下のリンクからインストール

Unity2017.2.0b11のインストール時にVuforia Augmented Reality SupportをOnにします
f:id:noshipu:20170921212033p:plain

そのままUnityプロジェクトを作成します

Vuuforiaを有効にする

Build SettingsからPlatformをAndroidに切り替えます。
Build Settings / Player Settings /XR Settings に移動してVuforia ARをOnにします。
f:id:noshipu:20170921231202p:plain

VuforiaなObjectを配置していく

1. GameObject->Vuforia->ARCameraを追加
※インポートが促された場合、許可する
このタイミングでMainCameraも削除しておいていいでしょう。

2. ARCameraのComponentのOpen Vuforia configurationを選択

3. Datasetsを有効化しておく

4. GameObject->Vuforia->ImageでImageTargetのオブジェクトがSceneに追加される

5. ImageTargetの子供にCubeを置いてみます
f:id:noshipu:20170921232445p:plain

これで準備完了です。

試してみる

Webカメラが使えればEditorから動かすことができます


Androidビルドでも動く


まだ任意のマーカーを登録できなかったので、2017.2のベータがとれるタイミングで使えるようになったらまた触ってみたいと思います

unity-landing.vuforia.com