2017.03.24
Lean Touch によるARアプリ内の3Dモデルをスケール、移動と回転を実装してみた
はじめに
こんにちは。次世代システム研究室のT.D.Qです。
前回は、Unity3Dと無料開発ライセンス付きライブラリ「Vuforia」でAR家具カタログの作り方を書きました。マーカー上に家具(3Dモデル)が表示された後、タッチ入力による各種ジェスチャーを簡単に扱えるとマーカー移動しなくてもゲームオブジェクト(家具の3Dモデル)を移動、回転することができたら便利ですね。ただし、Unity3Dはこの各種ジェスチャー機能をまだ正式にサポートしていないため、プログラム内でいろいろ計算しないといけないです。解決するため、TouchKit、TouchScriptを使う方が多いかと思いますが、今回のブログでLean Touchを使ってARアプリ内で3Dモデルの回転、移動、スケールなどの実装方法を紹介したいと思います。
Lean Touch
Lean TouchはUnity3Dのためのマルチタッチライブラリです。このライブラリを使うことで複雑なジェスチャのインタラクション・計算を簡単に対応できるし、機能単位で各コンポーネント(スクリプト)が作成されるので、使いやすいです。UnityのAsset Storeで有料版と無料版が公開されています。機能がほぼ同じですが、有料版のほうは豊富なサンプルコードが追加されています。
対応しているジェスチャ入力の一部は以下です
・FingerTap
・FingerUp
・FingerDown
・MultiTap
・Swipe
・PressSelect
特に今回使いたい連続的な入力機能
・Translate(移動)
・Rotate(回転)
・Scale(スケール)機能が揃っています。とても便利です
プロジェクトの準備
まず前回作ったARアプリプロジェクトに追加する形になりますので、ここで説明しない内容は前回のBlogを確認してください。
Lean Touchのインストール
Asset Storeから直接インポートします
3Dモデルにスクリプトを設定する
Lean Touchオブジェクトを追加する
Menu → GameObject → Lean → TouchをクリックすることでLeanTouchというゲームオブジェクトが追加されます。このオブジェクトにはあらかじめ「Lean Touch」スクリプトが設定されてます。このスクリプトがジェスチャ入力を受け取れるようにしてくるスクリプトです。
オブジェクトが選択可能に設定する
移動・回転・スケールスクリプトから対象オブジェクトを選択するため、設定します
移動
対象ゲームオブジェクトにLeanTranslateスクリプトを設定します。コンポーネントのカメラと対象オブジェクトを設定するだけで完了。
回転
対象ゲームオブジェクトにLeanRotateスクリプトを設定します。プロパティーの設定は移動と同じです。
スケール
対象ゲームオブジェクトにLeanScaleスクリプトを設定します。プロパティーの設定が簡単にできます。
アプリをビルドして動作確認
ここまでARアプリ内に3Dモデルの移動・回転・スケール機能の設定が終わります。アプリをビルドして確認しましょう。自分の端末で試したところ、オブジェクトの移動、回転、スケールは想定どおりに動いています。今回はAndroidアプリをビルドして動作確認しますが、iOSアプリでも動くはずです。特に、Unity上のプレイモードでマウスイベントが対応しているので、開発するときにまずマウスで簡単な動作確認も可能です。
最後に
いかがでしょうか? Lean TouchによるARアプリ内に3Dモデルの回転、移動、スケールなどの実装方法を紹介しました。3Dモデルにスクリプトを設定するだけで完了するのでとても便利ですね。ARアプリだけではなく、ゲームにも使えるのでぜひ試してみてください。
次世代システム研究室では、アプリケーション開発や設計を行うアーキテクトを募集しています。アプリケーション開発者の方、次世代システム研究室にご興味を持って頂ける方がいらっしゃいましたら、ぜひ募集職種一覧からご応募をお願いします。
グループ研究開発本部の最新情報をTwitterで配信中です。ぜひフォローください。
Follow @GMO_RD