「タクトスイッチでキャラクターの動きを制御する」UWPアプリを作るラズパイ3&Toradex、Windows 10 IoT Coreで楽しみながら検証するIoT実践入門(終)(1/4 ページ)

ITエンジニアに向け、「ビジネスに貢献するIoT活用」の第一歩を踏み出す「ひらめき」を得てもらうための本連載。今回は、物理ボタンのオン/オフでシステムの動きを制御するUWPアプリを作ってみよう。

» 2016年09月08日 05時00分 公開
[薬師寺国安PROJECT KySS]

連載バックナンバー

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

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

 前回は、LEDランプを使い、“ある操作中”にのみLEDが点滅する「簡易Lチカ」システムを作ってみた。今回は、アプリの動きを物理ボタン(タクトスイッチ)で制御するシステムを作ってみよう。

 今回作成するUWPアプリは、Unity 5.3で作成した3Dキャラクターの動作とタクトスイッチの操作をひも付けて、ボタンを押すとキャラクターがジャンプするというものだ。なお、ボタンをオン/オフするイベントは、アプリの動きを制御するだけでなく、IoTハードウェアの電源を切ったり、以前紹介した、赤外線センサー温度センサー加速度センサーLチカシステムなどの別のハードウェアと組み合わせたシステムに応用してもよいだろう。

【事前準備】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キャラクターの「ユニティちゃん」を配置し、カーソルキー操作で上下左右に移動。移動をやめるとその場でジャンプするというものだ。

 まず、Unity 5.3で「PushButtonUnityChan」というプロジェクトを作る。キャラクターと部品を配置して、Unity 5.3で単独動作させたのが以下である(動画1)。

動画1 作成したUnity 5.3のプロジェクト

 続いて、このキャラクターに「ジャンプを繰り返す」スクリプトを追加する。このジャンプのスクリプトを記述する前に、Unity 5.3でAnimatorの設定を行い、「Jump」というStatusと、「is_jumping」というパラメーターを作成しておく(図1)。Animatorの設定やパラメータ作成方法の詳細は、説明が長くなるのでここでは省略する。「ゲーム開発初心者のためのUnity入門」などを参照いただきたい。

photo 図1 Unity 5.3で行うAnimator設定の画面

 追加するスクリプト名は「JumpScript.cs」とする(リスト1)。

using UnityEngine;
using System;
public class JumpScript : MonoBehaviour
{
   private Animator anim;
   void Start()
    {
        anim = GetComponent<Animator>();
     }
    void Update()
    {
           JumpGo();
            AnimatorStateInfo state = anim.GetCurrentAnimatorStateInfo(0);
            if (state.IsName("Locomotion.Jump"))
            {
                anim.SetBool("is_jumping", false);
            }
    }
    private void JumpGo()
    {
        anim.SetBool("is_jumping", true);
    }    
}
リスト1 「JumpScript.cs」の中身

 JumpScript.csでは、「is_running」というパラメーターがtrueならばジャンプし、falseならばジャンプをやめる内容のコードとなる。

UWPにプロジェクトを書き出す

 コードを追記したら、UWPにプロジェクトを書き出す。プロジェクトの書き出し方は、第2回目の「Unity 5.3プロジェクトをUWPに書き出す」の章を参照いただきたい。適当な名前のフォルダを作成して、そこへ書き出せば完了だ。

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

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

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

メールマガジン登録

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