Submit Search
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
1 like
•
1,916 views
T
Takashi Yoshinaga
Myoを用いたコンテンツ作成に関するハンズオン資料
Technology
Read more
1 of 82
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
More Related Content
What's hot
(20)
PDF
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
Keizo Tatsumi
PDF
【DL輪読会】Deep Transformers without Shortcuts: Modifying Self-attention for Fait...
Deep Learning JP
PDF
数式をnumpyに落としこむコツ
Shuyo Nakatani
PPT
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Masashi Umezawa
PPTX
為替と株の予測の話
Kentaro Imajo
PDF
モデルではなく、データセットを蒸留する
Takahiro Kubo
PPTX
マルコフ転換モデル:導入編
Masa Kato
PDF
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
PDF
Data-centricなML開発
Takeshi Suzuki
PDF
【DL輪読会】“Gestalt Principles Emerge When Learning Universal Sound Source Separa...
Deep Learning JP
PDF
カスタマーサクセスのためのデータ整備人の活動記録
syou6162
PPTX
TorchDataチュートリアル解説
西岡 賢一郎
PDF
DataRobotを用いた要因分析 (Causal Analysis by DataRobot)
Yuya Yamamoto
PDF
テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)
Tatsuya Yokota
PPTX
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
daiki hojo
PDF
(文献紹介)Depth Completionの最新動向
Morpho, Inc.
PDF
テーブル・テキスト・画像の反実仮想説明
tmtm otm
PDF
Crfと素性テンプレート
Kei Uchiumi
PDF
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
Toshihiko Yamasaki
PPTX
ゲーム木探索技術とコンピュータ将棋への応用
Shogo Takeuchi
組み合わせテストの設計(PictMaster勉強会) 2008年7月17日
Keizo Tatsumi
【DL輪読会】Deep Transformers without Shortcuts: Modifying Self-attention for Fait...
Deep Learning JP
数式をnumpyに落としこむコツ
Shuyo Nakatani
Scrumの紹介とXPプロジェクトへの適用(Scrum and XP)
Masashi Umezawa
為替と株の予測の話
Kentaro Imajo
モデルではなく、データセットを蒸留する
Takahiro Kubo
マルコフ転換モデル:導入編
Masa Kato
Statistical Semantic入門 ~分布仮説からword2vecまで~
Yuya Unno
Data-centricなML開発
Takeshi Suzuki
【DL輪読会】“Gestalt Principles Emerge When Learning Universal Sound Source Separa...
Deep Learning JP
カスタマーサクセスのためのデータ整備人の活動記録
syou6162
TorchDataチュートリアル解説
西岡 賢一郎
DataRobotを用いた要因分析 (Causal Analysis by DataRobot)
Yuya Yamamoto
テンソル多重線形ランクの推定法について(Estimation of Multi-linear Tensor Rank)
Tatsuya Yokota
心理学におけるオープンサイエンス入門(OSF&PsyArXiv編)
daiki hojo
(文献紹介)Depth Completionの最新動向
Morpho, Inc.
テーブル・テキスト・画像の反実仮想説明
tmtm otm
Crfと素性テンプレート
Kei Uchiumi
プレゼン・ポスターで自分の研究を「伝える」 (How to do technical oral/poster presentation)
Toshihiko Yamasaki
ゲーム木探索技術とコンピュータ将棋への応用
Shogo Takeuchi
Viewers also liked
(12)
PDF
HoloLensハンズオン:AirTap & SpatialMapping編
Takashi Yoshinaga
PDF
ARコンテンツ作成勉強会 忘年会 in 2016 LT資料
Takashi Yoshinaga
PDF
ARコンテンツ作成勉強会:Webブラウザで簡単作成!スマホAR(Zappar編)
Takashi Yoshinaga
PDF
ARコンテンツ作成勉強会:UnityとVuforiaではじめるAR [主要部分]
Takashi Yoshinaga
PDF
SmartARの使い方(基本編)
Takashi Yoshinaga
PDF
Unity+Vuforiaで始めるARアプリ開発
Takashi Suzuki
PPTX
Duckathon
naoyuki miyata
PDF
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
Takashi Yoshinaga
PDF
Introduction of augmented reality
Takashi Yoshinaga
PDF
デブサミ2015 KINECT V2+UnityでVRコンテンツを作ってみたら楽しかった
Satoshi Maemoto
PDF
HoloLensハンズオン:Gaze,Tap And Hold編
Takashi Yoshinaga
PDF
Duckathon ar kumamoto
naoyuki miyata
HoloLensハンズオン:AirTap & SpatialMapping編
Takashi Yoshinaga
ARコンテンツ作成勉強会 忘年会 in 2016 LT資料
Takashi Yoshinaga
ARコンテンツ作成勉強会:Webブラウザで簡単作成!スマホAR(Zappar編)
Takashi Yoshinaga
ARコンテンツ作成勉強会:UnityとVuforiaではじめるAR [主要部分]
Takashi Yoshinaga
SmartARの使い方(基本編)
Takashi Yoshinaga
Unity+Vuforiaで始めるARアプリ開発
Takashi Suzuki
Duckathon
naoyuki miyata
ARコンテンツ作成勉強会:使ってみようSmartAR 基礎から支援ツール活用まで
Takashi Yoshinaga
Introduction of augmented reality
Takashi Yoshinaga
デブサミ2015 KINECT V2+UnityでVRコンテンツを作ってみたら楽しかった
Satoshi Maemoto
HoloLensハンズオン:Gaze,Tap And Hold編
Takashi Yoshinaga
Duckathon ar kumamoto
naoyuki miyata
Ad
Similar to ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
(20)
PDF
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
PPTX
ゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!
PDF
HoloLensハンズオン:ハンドトラッキング&音声入力編
Takashi Yoshinaga
PDF
はじめようARCore in 札幌
Takashi Yoshinaga
PDF
Unity講座資料 1
Mattun
PDF
はじめようARCore:自己位置推定・平面検出・FaceTracking
Takashi Yoshinaga
PDF
LetsStartWithUnityInHiroshimaWTM
Takashi Jona
PDF
Kuug 第1回
Shinobu Izumi
PDF
A-Frameで始めるOculus Quest対応WebVR
Takashi Yoshinaga
PDF
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
PPTX
Unity勉強会ハンズオン
Kodai Yano
PDF
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
PDF
はじめようARCore
Takashi Yoshinaga
PDF
はじめようArcore (修正版)
Takashi Yoshinaga
PDF
HoloLensハンズオン@ももち浜TECHカフェ vol.1
Takashi Yoshinaga
PPTX
1DayMakeMazeGame ver,20171022
Takashi Jona
PDF
FMCN Kinectハンズオン
Keizo Nagamine
PDF
UnityとBlenderハンズオン第3章
yaju88
PDF
Unityで横スクロールアクションゲームを作ってみる(第2回unity初心者勉強会)
Makoto Yamahira
PPTX
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
PaperSloth
はじめようARCore: Motion Tracking & Image Tracking編
Takashi Yoshinaga
ゲームツクール!第11回 エディター拡張してみよう
ゲームツクール!
HoloLensハンズオン:ハンドトラッキング&音声入力編
Takashi Yoshinaga
はじめようARCore in 札幌
Takashi Yoshinaga
Unity講座資料 1
Mattun
はじめようARCore:自己位置推定・平面検出・FaceTracking
Takashi Yoshinaga
LetsStartWithUnityInHiroshimaWTM
Takashi Jona
Kuug 第1回
Shinobu Izumi
A-Frameで始めるOculus Quest対応WebVR
Takashi Yoshinaga
ARコンテンツ作成勉強会 in 宮崎: はじめようARCore
Takashi Yoshinaga
Unity勉強会ハンズオン
Kodai Yano
HoloLensハンズオン@ももち浜TECHカフェ vol.2
Takashi Yoshinaga
はじめようARCore
Takashi Yoshinaga
はじめようArcore (修正版)
Takashi Yoshinaga
HoloLensハンズオン@ももち浜TECHカフェ vol.1
Takashi Yoshinaga
1DayMakeMazeGame ver,20171022
Takashi Jona
FMCN Kinectハンズオン
Keizo Nagamine
UnityとBlenderハンズオン第3章
yaju88
Unityで横スクロールアクションゲームを作ってみる(第2回unity初心者勉強会)
Makoto Yamahira
UE4 3Dゲーム制作入門 その1 : ベースプロジェクト作成編
PaperSloth
Ad
More from Takashi Yoshinaga
(20)
PPTX
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
PPTX
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
PPTX
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
PPTX
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
PPTX
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
PPTX
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
PPTX
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
PPTX
MRTKをNreal Lightに対応させてみた
Takashi Yoshinaga
PPTX
Nreal Lightハンズオン
Takashi Yoshinaga
PPTX
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
PPTX
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
PPTX
Holo-SDKハンズオン:はじめようヘッドトラッキングを用いた3D表現
Takashi Yoshinaga
PPTX
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
PPTX
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
PPTX
AR-Frame x AR.js入門
Takashi Yoshinaga
PPTX
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
PPTX
コロナ禍中のコミュニティ活動
Takashi Yoshinaga
PPTX
Project HoloBox
Takashi Yoshinaga
PPTX
AR Fukuoka紹介2020
Takashi Yoshinaga
PPTX
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
HoloLens2とMeta QuestではじめるWebXR
Takashi Yoshinaga
【準備編】OculusQuest/HoloLens2対応WebXR開発
Takashi Yoshinaga
ARコンテンツ作成勉強会( #AR_Fukuoka )紹介
Takashi Yoshinaga
AI x WebAR: MediaPipeのハンドトラッキングを使ってみよう
Takashi Yoshinaga
iPad LiDARでエンジニアカフェを3Dスキャン
Takashi Yoshinaga
AI x OpenCV x WebAR: Selfie Segmentationを使ってみよう
Takashi Yoshinaga
Web技術ではじめようAR/VRアプリ開発
Takashi Yoshinaga
MRTKをNreal Lightに対応させてみた
Takashi Yoshinaga
Nreal Lightハンズオン
Takashi Yoshinaga
【準備編!】HoloLens 2/Oculus Quest対応WebXRハンズオン
Takashi Yoshinaga
A-Frameで始めるWebXRとハンドトラッキング (HoloLens2/Oculus Quest対応)
Takashi Yoshinaga
Holo-SDKハンズオン:はじめようヘッドトラッキングを用いた3D表現
Takashi Yoshinaga
FUKUOKA Engineers Day 2021 発表資料:AR Fukuoka & HoloBox紹介
Takashi Yoshinaga
Voxon Photonics VX1で遊んでみた
Takashi Yoshinaga
AR-Frame x AR.js入門
Takashi Yoshinaga
AI x WebXR: フェイストラッキングを用いた擬似3D表現を解説!
Takashi Yoshinaga
コロナ禍中のコミュニティ活動
Takashi Yoshinaga
Project HoloBox
Takashi Yoshinaga
AR Fukuoka紹介2020
Takashi Yoshinaga
iPad LiDARで作ってみた in AR Fukuoka 忘年会2020
Takashi Yoshinaga
Recently uploaded
(9)
PPTX
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
PDF
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
PDF
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
PDF
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
PDF
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
PDF
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
PPTX
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
PDF
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
PDF
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
baserCMS『カスタムコンテンツ』徹底活用術〜あなただけの管理画面を自由自在に〜
Ryuji Egashira
【学会聴講報告】CVPR2025からみるVision最先端トレンド / CVPR2025 report
Sony - Neural Network Libraries
TaketoFujikawa_ComicComputing12th_inKumamoto
Matsushita Laboratory
20250726_Devinで変えるエンプラシステム開発の未来
Masaki Yamakawa
MahiroYoshida_セリフに着目したキャラクタロール推定に関する基礎検討_sigcc12th2025
Matsushita Laboratory
第三世代 ウェザーステーションキット v3 ー WSC3-L 日本語カタログ
CRI Japan, Inc.
2025_7_25_吉祥寺_設計ナイト_ADR運用におけるデータ利活用の考え方.pptx
ssuserfcafd1
LoRaWAN ウェザーステーションキット v3 -WSC3-L 日本語ユーザーマニュアル
CRI Japan, Inc.
VMUG Japan book vsan 20250515 CPU/Memory vSAN
Kazuhiro Sota
ARコンテンツ作成勉強会:Myoを用いたVRコンテンツ開発
1.
ARコンテンツ作成勉強会 ウェアラブルセンサ・Myoを使ってみよう #AR_Fukuoka
2.
本日作成するコンテンツ https://youtu.be/ReQ8FDehXEw
3.
Unityの基本操作を覚えよう
4.
Unityのプロジェクトを作成 (1/2) Unityを起動後、画面右上のNEW PROJECTをクリック クリック
5.
Unityのプロジェクトを作成 (2/2) プロジェクト名・保存場所・3Dを指定してCreate project 3D
最後にクリック プロジェクト名 保存場所 ※保存場所は全角フォルダやDropbox用フォルダはNG
6.
確認 時々、3Dモードを選択しても2Dモードになることがある その場合は再度、プロジェクトを作成してみてください 2Dモード 3Dモード NG Good
7.
Unityの操作画面(概要) ゲーム空間の設計画面
8.
ゲーム空間にCGを追加しよう 右クリック
9.
実行してみよう クリックして実行 クリックして終了 カメラから見た空間
10.
オブジェクトの位置・向き・サイズを調整 クリックして選択 移動 回転 拡大・縮小
11.
Scene(設計画面)の視点を変えよう [←] [→]で左右移動 [ ↑
] [ ↓ ]で前後移動 [Alt]+ドラッグで回転 +ドラッグで上下左右 他にもいろいろ → http://goo.gl/Lq1ILT
12.
CGの詳細情報の編集:位置の指定 クリック 選択したオブジェクトの 現在の詳細情報→ オブジェクトの詳細の 表示・追加・変更は Inspectorで行う 例えば、Transformの Positionを変更すると 位置が変わる (x,y,z)を(0,0,0)に(x,y,z)を(0,5,0)に
13.
CGの詳細情報の編集:物理演算の追加 Add Component 選択したオブジェクトに物理法則(重力)を適用 追加される
14.
実行してみよう
15.
少し遊んでみましょう(1/3) ① 右クリック Plane
16.
少し遊んでみましょう(2/3) 少し傾ける Position (0,0,0) Plane
17.
少し遊んでみましょう(3/3)
18.
Sceneの保存 Scene名 [Ctrl]+[s]でダイアログを開き、好きな名前で保存 コンテンツ作成中はこまめに[Ctrl]+[s]すること
19.
不要なCGの削除 Delete 削除したいオブジェクトを選択して[Delete]キー
20.
次の作業内容 今日作成するコンテンツの準備 蝶 フィールド
21.
Asset StoreでCGを入手 [Window] → [Asset
Store]
22.
Asset StoreでButterflyを入手 butterflyで検索 Butterfly with
Animationを選択
23.
Asset StoreでButterflyを入手 ダウンロード/インポート [ダウンロード]または [インポート]をクリック
ダウンロード終了を待つ Importing package ウィンドウが表示されたら [Import]をクリック Import
24.
Asset StoreでButterflyを入手 GruffysAnimatedButterfly フォルダが追加される
25.
蝶のCGをゲーム空間に追加 3Dモデルがあるフォルダを開く [GruffysAnimated…] →
[Models] butterfly2.FBX を Hierarchyに ドラッグ&ドロップ
26.
フィールドを追加しよう 本日ダウンロードしたSampleフォルダの中にある SampleTerrainをダブルクリックしてプロジェクトに取り込む ダブルクリック Import
27.
フィールドを追加しよう Assetsフォルダ内のNew TerrainをHierarchyにドラッグ&ドロップ Assets
28.
確認 追加されたフィールドと蝶の位置関係を確認
29.
フィールドの位置の調節 フィールドの横幅の半分の-250だけx方向に移動 この辺に蝶 500 Positionを -250, 0, -2 -250移動
30.
調整 カメラの位置を変更してそれっぽくする 蝶のRotationを(0,180,0)にしてカメラと同じ方向を向かせる 180°
31.
蝶を前進させるスクリプトを作成しよう
32.
スクリプト記述用のGameObjectの追加 ①右クリック ②Create Empty
33.
スクリプトの追加 (1/2) ② Add
Component ① GameObject ③ New Script
34.
スクリプトの追加 (2/2) ① スクリプト名 ②
クリック スクリプト(C#)が追加される 【ここまでの操作】 空のGameObjectを作成し,そこにスクリプトファイルを追加 → Unityではオブジェクトの機能の1つとしてスクリプトが働く
35.
スクリプトの記述:エディタの起動 ダブルクリックして開く
36.
public class Controller
: MonoBehaviour { // Start関数は初期化のために一度だけ実行される void Start () { } // Update関数は毎フレーム(○○ミリ秒間隔で)実行される void Update () { } } スクリプトの記述:イメージ このスクリプトで butterfly2を扱うよ ・・・ フレームごとに少しずつ移動
37.
スクリプトの記述:実装 using UnityEngine; using System.Collections; public
class Controller : MonoBehaviour { GameObject butterfly; //蝶をプログラムで扱うための変数 void Start () { // Hierarchyにある蝶の情報を変数に覚えさせる butterfly = GameObject.Find("butterfly2"); } void Update () { butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } } このモデルの場合・・・ 蝶自身の前後方向はz軸で表される。 後ろ方向が+と定義されているため 前に進む場合は-をかける必要がある
38.
蝶の視点で移動しよう Main Cameraをbutterfly2の子要素にする 子要素になった ことを確認 ドラッグ&ドロップ
39.
移動のOn/Offの切り替え (1/2) using UnityEngine; using
System.Collections; public class Controller : MonoBehaviour { GameObject butterfly; //蝶をプログラムで扱うための変数 bool forward = false; //移動のOn/Offを記録する変数 void Start () { butterfly = GameObject.Find("butterfly2"); } void Update () { butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } forwardがtrueの時だけ実行
40.
移動のOn/Offの切り替え (2/2) GameObject butterfly;
//蝶をプログラムで扱うための変数 bool forward = false; //移動のOn/Offを記録する変数 void Start () { butterfly = GameObject.Find("butterfly2"); } void Update () { if (Input.GetMouseButtonUp(0)){ forward = !forward; //trueの時はfalse, falseの時はtrue } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } }
41.
Game画面をマウスクリックですると 移動のOn/Offが切り替えられる このあとMyoを使ってOn/Offを切り替える
42.
Myoを接続
43.
初期設定 Myo Connectを起動後, 通知領域の
を 右クリックしてArmband Managerを開く [Windows] [Mac]
44.
初期設定 Connect a Myo
Armbandをクリック クリック
45.
初期設定 Myoをアンテナに近づけて認識させる
46.
初期設定 CALIBRATIONをクリック クリック
47.
初期設定 Create Profileをクリック クリック
48.
初期設定 Myoを利き腕に装着 (勉強会では右を前提に話を進めます) 真ん中より 少し肘より
49.
初期設定 Continueをクリック クリック
50.
初期設定 Myoを装着する腕を選択し, Continueをクリック 右腕/左腕を選択
51.
初期設定 (まだ操作しないでください) 次に行う動作がビデオで示されるので それを確認し,キーボードの[Space]キーを押す.
52.
初期設定 Now recordingと表示されたら動画の動きを真似る
53.
初期設定 動作の記録が終わったらContinueをクリック. ※やり直す場合は Do it
againをクリック クリック
54.
初期設定 (まだ操作しないでください) 引き続き, 次に行う動作のビデオを確認したら キーボードの[Space]キーを押す.
55.
初期設定 Now recordingと表示されたら動画の動きを真似る
56.
初期設定 動作の記録が終わったらContinueをクリック クリック
57.
初期設定 同様の操作を以下のジェスチャに対して行う 内側(屈曲) 外側(伸展) リラックス
58.
初期設定 設定の成否を確認するため動画の動きを真似る
59.
初期設定 他のジェスチャについても確認。 問題なければComplete Profileをクリック
60.
Myo SDKのインポート 事前にダウンロード・解凍したMyo SDKフォルダ内の MyoUnity.unitypackageをダブルクリック ダブルクリック
61.
Myo SDKのインポート Import Unity
Package内の[Import]をクリック. API Update Requiredが出た場合には [I Made a Backup. Go Ahead!]をさらにクリック クリック クリック
62.
Myo SDKのインポート MyoとMyo Samples フォルダが追加される
63.
Myoの動きをUnity上でチェック (1/3) MyoのPrefabフォルダを開く [Assets]
→ [Myo] → [Prefab] Hub-1 Myo を Hierarchyに ドラッグ&ドロップ
64.
Myoの動きをUnity上でチェック (2/3) 手を動かしながら MyoオブジェクトのInspectorで Thalmic Myo(Script)をチェック ①
実行 ② Myo ③ 表示をチェック
65.
Myoの動きをUnity上でチェック (3/3) MyoオブジェクトのThalmic Myoが腕の状態を知っている →
自作スクリプトと連携できればコントローラとして利用可能
66.
Myoのデータ取得: スクリプトの記述 ダブルクリックして開く Assetsフォルダ
67.
Myoのデータ取得: スクリプトの記述 public class
Controller : MonoBehaviour { // Start関数は初期化のために一度だけ実行される void Start () { } // Update関数は毎フレーム(○○ミリ秒間隔で)実行される void Update () { } } このスクリプトで Myoを扱うよ 今何してる? ・・・
68.
Myoの初期化 using UnityEngine; using System.Collections; using
Thalmic.Myo; public class Controller : MonoBehaviour { GameObject butterfly; bool forward = false; ThalmicMyo myo; //Myoをプログラムで扱うための変数 void Start () { butterfly = GameObject.Find("butterfly2"); // 今接続されているMyoの情報を変数"myo"に覚えさせる myo = GameObject.Find("Myo").GetComponent<ThalmicMyo>(); } /*スペースの都合により以下省略*/
69.
補足 GameObject.Find("Myo") . GetComponent<ThalmicMyo>();
70.
Myoのデータ取得 public class Controller
: MonoBehaviour { // Start関数は初期化のために一度だけ実行される void Start () { butterfly = GameObject.Find("butterfly2"); myo = GameObject.Find("Myo").GetComponent<ThalmicMyo>(); } // Update関数は毎フレーム(○○ミリ秒間隔で)実行される void Update () { } } 今何してる? ・・・
71.
Myoのデータ取得 ThalmicMyo myo; //Myoをプログラムで扱うための変数 void
Start () { /*スペースの都合により省略*/ } void Update () { myo.pose if (Input.GetMouseButtonUp(0)){ forward = !forward; } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } } print(myo.pose); //現在の状態を取得して表示
72.
動作確認 ① 実行 ② Console 筋肉の活動状態(pose)の 情報がリアルタイムに表示
73.
ダブルタップを用いた移動/停止の切り替え void Update ()
{ print(myo.pose); if (Input.GetMouseButtonUp(0)){ forward = !forward; } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } } if ( ダブルタップをしたら ){ forward = !forward; } if (myo.pose==Pose.DoubleTap){ forward = !forward; } if文の条件を手の状態を用いたものに書き換える
74.
特定動作のみの利用 void Update ()
{ print(myo.pose); if (myo.pose==Pose.DoubleTap){ print(myo.pose); forward = !forward; } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } } 動作確認のためにprint(myo.pose)もif分の中に移動 移動
75.
実験 1回だけダブルタップをしてみよう 1回のダブルタップを 複数回認識してしまう ダブルタップを用いたOn/Offの切り替えには不都合
76.
スイッチとしての利用に関するアイデア Rest 1回のDoubleTap 切り替わり タップ開始のタイミング(状態切り替わり)がわかればOK → つまり、直前の状態と今の状態が異なる時を識別
77.
切り替わりのタイミングの認識 Pose lastPose; //前の状態を覚えておく変数 void
Start () { butterfly = GameObject.Find("butterfly2"); myo = GameObject.Find("Myo").GetComponent<ThalmicMyo>(); } void Update () { if(myo.pose==Pose.DoubleTap){ print(myo.pose); //現在の状態を取得して表示 forward = !forward; } /*スペースの都合により省略*/ } if( 前の状態と異なる場合) { if(myo.pose==Pose.DoubleTap){ print(myo.pose); forward = !forward; } } if(myo.pose != lastPose) { //状態が切り替わったら下記を実行 lastPose=myo.pose; //最新の状態に更新 if(myo.pose==Pose.DoubleTap){ print(myo.pose); forward = !forward; } } Rest Rest DoubleTap DoubleTap DoubleTap Rest Rest ・・・・ → lastPose → lastPose
78.
CGの向きを制御する void Update ()
{ if(myo.pose != lastPose) { //状態が切り替わったら下記を実行 lastPose=myo.pose; //最新の状態に更新 if(myo.pose==Pose.DoubleTap){ print(myo.pose); forward = !forward; } } if(forward==true){ butterfly.transform.Translate(0, 0, -0.02f, Space.Self); } if(myo.pose == Pose.WaveIn){ butterfly.transform.Rotate( 回転角度 ); } } butterfly.transform.Rotate(0,-0.5f,0); x z y
79.
CGの向きを制御する void Update ()
{ if(myo.pose != lastPose) { //状態が切り替わったら下記を実行 lastPose=myo.pose; //最新の状態を記録 if(myo.pose==Pose.DoubleTap){ /*スペースの都合上省略*/ } } if(myo.pose == Pose.WaveIn){ butterfly.transform.Rotate(0,-0.5f,0); } else if(myo.pose == Pose.WaveOut){ butterfly.transform.Rotate(0, 0.5f,0); } }
80.
蝶の高さを制御する void Update ()
{ if(myo.pose != lastPose) { lastPose=myo.pose; /*スペースの都合上省略*/ } if(myo.pose == Pose.WaveIn){ butterfly.transform.Rotate(0,-0.5f,0); } else if(myo.pose == Pose.WaveOut){ butterfly.transform.Rotate(0, 0.5f,0); } if (myo.accelerometer.z > 0.8) { butterfly.transform.Translate(0, 0.02f, 0); } }
81.
蝶の高さを制御する void Update ()
{ /*スペースの都合上省略*/ if(myo.pose == Pose.WaveIn){ butterfly.transform.Rotate(0,-0.5f,0); } else if(myo.pose == Pose.WaveOut){ butterfly.transform.Rotate(0, 0.5f,0); } if (myo.accelerometer.z > 0.8) { butterfly.transform.Translate(0, 0.02f, 0); } else if(myo.accelerometer.z < -0.8) { butterfly.transform.Translate(0, -0.02f, 0); } } z y -z方向に加速
82.
完成