AL11023 樫村 健人 基盤システムソフトウエア研究室 近年Arduinoなど気軽にハードウェアデ バイスを開発できる環境が普及してきた 本研究室でもCGとセンサーを連携させて 新しいデバイスを開発している ◦ 例)橙色の屋根のお家・楽しみながら訓練できるデジ タルセラピーデバイス[渡辺ら,2014] 部屋の中の様子(CG) 橙色の屋根のお家 2 様々な値域をもつセンサーを複数使ってCGを 切り替えるプログラムを書く際にコードが複雑 化してしまうという問題点がある 例えば橙色の屋根のお家では光センサーとタクトスイッ チを用いてCGの明るさを変える処理を行っているがそ の処理が複雑になってしまっている 橙色の屋根のお家のコードの一部 hl = arduino.digitalRead(inputA8); sun = arduino.analogRead(input1); else houselight=1; lightsw=0; if (hl==1) lightsw=1; if (hl==0&&lightsw==1) { if (houselight==1)houselight=0; } if (houselight==0) { if (sun>150) light=0; else light=1; } 12行でifが5つ 3 CGとセンサーを用いたアプリケーションの開発を 支援し,分かりやすくプログラムを書けるようにす る どのようにしたら作りやすくなるか 4 CG+センサー ”舞台演出”の概念の導入 役者+きっかけ ◦ 舞台演出を取り入れるとは.. 1つのCG→Actor(役者) きっかけ CGの動き→Act(演技) CGや動きの切り替えのタイミング→Cue(きっかけ) と考えることで初心者にとって理解をしやすくする 5 舞台演出手法を取り入れたライブラリ Actor,Act,Cueの3つのクラス あえてCGとセンサーを一対一にすることで簡 易化・明確化 オブジェクト指向言語で作成 センサーはマイコンArduino上での使用を想定 6 Actor(役者) 複数のイメージを持つ Cueによって提供される番号によってイメージを選択 Actによって提供されるX,Y位置にイメージを表示 Act(演技) X,Y位置を持つ 指定された演技によってX,Yを変更 x y ◦ 例えば演技が「落下」だった場合はY値を上昇させる 7 物理情報の抽象化 CueによってActorはActを変える センサーによってとれる値域が違うが それを同じスケールで扱えるようにする機能を有する →分かりやすい区分に対応付けする 例えば(大・小)の2段階や(大・中・小)など3段階など (Val-Min)・Num (Max-Min) Val:現在のセンサー値 Max:センサーでとれる最大値 Min:センサーでとれる最小値 Num:区分分けする数 センサーごとに 設定済み 8 役者(Actor) イメージ1,イメージ2… きっかけでイメージを選択 イメージを表示 演技を 指定 XY位置を返す 演技(Act) きっかけの 識別番号を 要求 きっかけの 識別番号を 返す きっかけ(Cue) X,Y 演技 センサー きっかけの識別番号 演技によってX,Yを変更する センサー値取得 センサー値を識別番号に変換 9 画像が光センサーの値によって左右に動く動作を作りたいとする kashi=new Actor(this, arduino); kashi.setImage("kashi.png"); kashi.setAct("right", "left"); kashi.setCue("L", 1, 1); Cue ポート1の 光センサー Min Max 状態1 状態2 10 kashi=new Actor(this, arduino); kashi.setImage("kashi.png"); kashi.setAct("right", "stop", "left"); kashi.setCue("L", 1, 2); Cue Min Max 状態1 状態2 状態3 11 既存のプログラムでの評価 ◦ 「橙色の屋根のお家」とは デバイスに搭載されたセンサーで現実の情報を取得し、ディスプレ イに表示されているCGに反映させるインタラクションデバイスであ る ◦ 「かしむらガチャ」 とは ガチャポンを模したプログラムで可変抵抗をガチャのレバーとして 用いる プログラムにおけるライブラリの有無による比較 橙色の屋根のお家 かしむらガチャ ライブラリなし 247 148 ライブラリあり 75 63 28% 42% 12 本当に書きやすいか・再利用性があるかの評価実験 実験の評価に基づくライブラリの機能の増強 13 ご清聴ありがとうございました
© Copyright 2024