Unity 5.3のキャラクター操作と連動し、「触れたら光る“Lチカ”システム」を作る:ラズパイ3&Toradex、Windows 10 IoT Coreで楽しみながら検証するIoT実践入門(6)(1/4 ページ)
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#を使用する。
【事前準備】UnityとVisual Studio 2015について
本企画では今後のIoT活用・応用の範囲を広げる目的から、3DのUIを簡単に作れるゲーム向けの開発環境である「Unity」を、UWPアプリとして書き出すために用いる。また、書き出したプロジェクトのコード修正に「Visual Studio 2015(以下、VS2015)」を用いる。
Unityの基礎や操作方法が分からない人は、最初に「連載:ゲーム開発初心者のためのUnity入門」を参照いただき、楽しみながらUnityの基礎を学び、環境を構築してほしい。この連載は、Unityで3Dゲームを作るまでのいろいろな処理を解説したもので、Unityの開発環境の構築手順をイチから説明している。
Unity 5.3のプロジェクトを作成する
今回作成する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()メソッド内では、
- obj.GetComponent
().AddForce(Vector3.forward * 50, ForceMode.Force);
と記述して、4個の立方体にキャラクターが触れたら、立方体を前へ跳ね返すようにしている。
UWPにプロジェクトを書き出す
コードを追記したら、UWPにプロジェクトを書き出す。プロジェクトの書き出し方は、第2回目の「Unity 5.3プロジェクトをUWPに書き出す」の章を参照いただきたい。適当な名前のフォルダを作成して、そこへ書き出せば完了だ。
これで事前準備は整った。続いて、Lチカの配線作業をしていこう。
関連記事
「Raspberry Pi 3」で早速チェック──「IoTハードウェア」を準備する
ITエンジニアに向け、「ビジネスに貢献するIoT活用」の第一歩を踏み出す「今後のひらめき」を得てもらうための本連載。初回は、登場間もない「Raspberry Pi 3」を中心に、IoTハードウェアとWindows 10 IoT Coreを準備するまでを解説する。「Raspberry Pi 3」が登場。Windows 10 IoT Coreは早速サポートを表明
無線通信モジュール付きのRaspberry Pi 3が登場。搭載チップの性能も向上している。マイクロソフトは発売当日にWindows 10 IoT Coreでのサポートを表明している。第1回 Windows IoTを始めよう
見聞きしない日はないほど流行している「IoT」。でも、どうやったら使えるのか? 本連載では読者諸氏が慣れ親しんだWindowsのIoT版を使って、IoTを実践してみる。まずは概要とインストールから始めよう。
Copyright © ITmedia, Inc. All Rights Reserved.