Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
(Unityに)エモさをもたらす シリアル通信のはなし
Search
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
dnasoftwares
December 15, 2018
Technology
0
610
(Unityに)エモさをもたらす シリアル通信のはなし
Unityでシリアル通信(SerialPort)を用いてArduinoを経由しLEDを制御してみたというお話です。
dnasoftwares
December 15, 2018
Tweet
Share
Other Decks in Technology
See All in Technology
Prox Industries株式会社 会社紹介資料
proxindustries
0
110
pool.ntp.orgに ⾃宅サーバーで 参加してみたら...
tanyorg
0
1.7k
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
160
コンテナセキュリティの最新事情 ~ 2026年版 ~
kyohmizu
7
2.6k
OpenShiftでllm-dを動かそう!
jpishikawa
0
150
広告の効果検証を題材にした因果推論の精度検証について
zozotech
PRO
0
220
Bedrock PolicyでAmazon Bedrock Guardrails利用を強制してみた
yuu551
0
270
GitHub Issue Templates + Coding Agentで簡単みんなでIaC/Easy IaC for Everyone with GitHub Issue Templates + Coding Agent
aeonpeople
1
270
生成AIと余白 〜開発スピードが向上した今、何に向き合う?〜
kakehashi
PRO
0
180
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
15
93k
顧客の言葉を、そのまま信じない勇気
yamatai1212
1
370
Ruby版 JSXのRuxが気になる
sansantech
PRO
0
180
Featured
See All Featured
Code Review Best Practice
trishagee
74
20k
Ethics towards AI in product and experience design
skipperchong
2
200
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
130
Typedesign – Prime Four
hannesfritz
42
3k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
330
Become a Pro
speakerdeck
PRO
31
5.8k
Six Lessons from altMBA
skipperchong
29
4.2k
A Soul's Torment
seathinner
5
2.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
How to Align SEO within the Product Triangle To Get Buy-In & Support - #RIMC
aleyda
1
1.4k
30 Presentation Tips
portentint
PRO
1
230
Transcript
(Unityに)エモさをもたらす シリアル通信のはなし D.N.A. (D.N.A. Softwares) Background Designed by Brgfx
自己紹介 サークル D.N.A. Softwares 代表 同人・インディゲームオンリー 「デジゲー博」代表
Twitter: @dnasoftwares
さっそく 本題
エモさ #とは
いつもの画面以外の表示器 ゲームと連動して光る電飾 そのゲームの世界観に沿った特別な コントローラー
いつもの画面以外の表示器 ゲームと連動して光る電飾 そのゲームの世界観に沿った特別な コントローラー → 画面外からの刺激 →
感情を揺さぶる → エモい!
そんなエモさをUnityでも 醸し出したい!!!
実際にやってみた “デジゲー博2018” にて展示
諸元 8桁7セグ表示器×3行 8桁16セグ表示器×1行 制御:Arduino Nanoに独自スケッチを書き込み インタフェース:USB
(Micro-Bコネクタ)経由の シリアル通信 電源:USB or DC7.5V~9V 1A
設計・試作 evive というプロトタイプキットで試作 Arduino搭載かつ入出力が豊富でデバッグがしやすい 本番用Arduinoへの 移行も比較的簡単だった
サイト(Shopあり): https://thestempedia.com/
動いた • シリアル通信でコマンド を送る • →の出力を得るコマンド例 l01st 1000 l12nd 900
l23rd 800 先頭1文字目lがコマンド、2文字目0は書き換え行 残りが表示文字列 • バッファに余裕が無いのでコマンド書式 はツメツメで
Unity側のコード ArduinoのUSBシリアルポートをC#から叩く System.IO.Ports.SerialPortクラスを使う (Api Compatibility Level の設定を「.NET 2.0」にすると使用可能)
Qiitaの記事「UnityとArduinoをシリアル通信」(@yjiro0403氏)が参考になる • https://qiita.com/yjiro0403/items/54e9518b5624c0030531 デバイスが繋がっているポートを 自動スキャンする機構 シリアルポートを列挙し、それぞれのポートに所定のコマンドを送って期待通りの応答を返 すポートを見つける (ファームのバージョン情報を返すコマンドを入れておく)
あとは…… • ゲーム内に実装!ただし…… PC側を全力でぶん回すとコマンド処理が追いつかない コマンド処理より早くリングバッファが溜まる→未処理のバッファが新しいコマンドに上書きされ て文字化け データ送信は秒間20コマンド程度になるように適宜間引く
例外処理はザックリでもいいから入れておこう デバイスがないときの動作はどうか? 外部デバイス用のコードとゲーム本体のコードをキッチリ分離する シリアルポートがないPCでの動作はどうか?
できあがり
結論 (制御された光り物は) エモい ありがとうございました