連載
» 2016年08月23日 05時00分 UPDATE

ラズパイ3&Toradex、Windows 10 IoT Coreで楽しみながら検証するIoT実践入門(6):Unity 5.3のキャラクター操作と連動し、「触れたら光る“Lチカ”システム」を作る (1/4)

ITエンジニアに向け、「ビジネスに貢献するIoT活用」の第一歩を踏み出す「ひらめき」を得てもらうための本連載。今回は、Unity 5.3のキャラクター操作と連動した“Lチカ”アプリを作ってみよう。

[薬師寺国安,PROJECT KySS]

連載バックナンバー

 本連載は、ITエンジニアが「ビジネスに貢献するIoT活用」の第一歩を踏み出す「今後のひらめき」を得てもらうためのIoT実践講座だ。数千円から1万円ほどで入手できるボードコンピュータとIoTデバイス向けのOSである「Windows 10 IoT Core」、そして、いつでも/どこでも/どれでも使えることを視野に入れた「ユニバーサルWindowsプラットフォーム(UWP)アプリ」とUnityを題材に、“業務におけるIoT活用”のヒントにするためのノウハウをお届けしていく。

photo 本連載で使う機材の1つ「Raspberry Pi 3 Model B」

 前回は、「温度センサー」を使い、室温を検知して動きを制御するシステムを作ってみた。今回は、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);
        }
    }
}
リスト1 「CubeRollingScript.cs」の中身

 「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チカの配線作業をしていこう。

       1|2|3|4 次のページへ

Copyright© 2017 ITmedia, Inc. All Rights Reserved.

@IT Special

- PR -

TechTargetジャパン

この記事に関連するホワイトペーパー

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。