ITエンジニアに向け、「ビジネスに貢献するIoT活用」の第一歩を踏み出す「ひらめき」を得てもらうための本連載。今回は、Unity 5.3のキャラクター操作と連動した“Lチカ”アプリを作ってみよう。
本連載は、ITエンジニアが「ビジネスに貢献するIoT活用」の第一歩を踏み出す「今後のひらめき」を得てもらうためのIoT実践講座だ。数千円から1万円ほどで入手できるボードコンピュータとIoTデバイス向けのOSである「Windows 10 IoT Core」、そして、いつでも/どこでも/どれでも使えることを視野に入れた「ユニバーサルWindowsプラットフォーム(UWP)アプリ」とUnityを題材に、“業務におけるIoT活用”のヒントにするためのノウハウをお届けしていく。
前回は、「温度センサー」を使い、室温を検知して動きを制御するシステムを作ってみた。今回は、Raspberry Pi向けとして定番の電子工作となる「Lチカ」を応用したシステムを作ってみよう。
ブレッドボード上にLEDと抵抗を配置して、Windows 10 IoT Coreをインストールしたボードコンピュータと接続。ボードコンピュータへ、「Unity 5.3で作成したキャラクターが、“ある特定の状況”のときにLEDを点滅させる」ようプログラミングしたUWPアプリを組み込む、というものだ。ボードコンピュータにはこれまでと同様に、Raspberry Pi 3とToradexの2機種を用いている。
また、今回も前回と同様に、Unity 5.3内に少し複雑なコードを記述する必要があるので、プログラミング言語にはC#を使用する。
本企画では今後のIoT活用・応用の範囲を広げる目的から、3DのUIを簡単に作れるゲーム向けの開発環境である「Unity」を、UWPアプリとして書き出すために用いる。また、書き出したプロジェクトのコード修正に「Visual Studio 2015(以下、VS2015)」を用いる。
Unityの基礎や操作方法が分からない人は、最初に「連載:ゲーム開発初心者のためのUnity入門」を参照いただき、楽しみながらUnityの基礎を学び、環境を構築してほしい。この連載は、Unityで3Dゲームを作るまでのいろいろな処理を解説したもので、Unityの開発環境の構築手順をイチから説明している。
今回作成するUnity 5.3のプロジェクトは、3Dキャラクターと4個の立方体(Cube)を配置し、キャラクターを操作して立方体に触れ、それを転がしてマップの外へ出すというものとなる。
まず、Unity 5.3で「BigheadRollingCube」というプロジェクトを作る。キャラクターと部品を配置して、Unity 5.3で単独動作させたのが以下である(動画1)。
続いて、このキャラクターにスクリプトを追加する。追加するスクリプト名は「CubeRollingScript.cs」とする(リスト1)。
using UnityEngine; using System.Collections; public class CubeRollingScript : MonoBehaviour { void OnControllerColliderHit(ControllerColliderHit hit) { checkItem(hit.collider.gameObject); } void checkItem(GameObject obj) { if (obj.tag == "Cube1" || obj.tag == "Cube2" || obj.tag == "Cube3" || obj.tag == "Cube4") { obj.GetComponent<Rigidbody>().AddForce(Vector3.forward * 50, ForceMode.Force); } } }
「CubeRollingScript.cs」のポイントは以下の通りだ。
OnControllerColliderHit()は、キャラクターが立方体に触れたら呼び出すメソッドだ。このメソッド内で、立方体に触れ、転がして落としていく処理となるcheckItem()メソッドを実行する。その際に、触れたときの情報を持っているhit.collider.gameObjectというゲームオブジェクトを渡す。
CcheckItem()メソッド内では、
と記述して、4個の立方体にキャラクターが触れたら、立方体を前へ跳ね返すようにしている。
コードを追記したら、UWPにプロジェクトを書き出す。プロジェクトの書き出し方は、第2回目の「Unity 5.3プロジェクトをUWPに書き出す」の章を参照いただきたい。適当な名前のフォルダを作成して、そこへ書き出せば完了だ。
これで事前準備は整った。続いて、Lチカの配線作業をしていこう。
Copyright © ITmedia, Inc. All Rights Reserved.