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
ゲーム用コントローラー ~アケコンとかツインスティックとか~ 自作のすゝめ(基礎編)
Search
kiyokura
October 08, 2023
Technology
1
450
ゲーム用コントローラー ~アケコンとかツインスティックとか~ 自作のすゝめ(基礎編)
2023.10.08 【Okayama.なんか #1】Okayama.Maker でお話したセッション資料
kiyokura
October 08, 2023
Tweet
Share
More Decks by kiyokura
See All by kiyokura
SQL Server のプロジェクト指向オフライン データベース開発を採用してみた話 実践編
kiyokura
1
78
Other Decks in Technology
See All in Technology
安心してください、日本語使えますよ―Ubuntu日本語Remix提供休止に寄せて― 2024-11-17
nobutomurata
1
990
なぜ今 AI Agent なのか _近藤憲児
kenjikondobai
4
1.4k
iOSチームとAndroidチームでブランチ運用が違ったので整理してます
sansantech
PRO
0
130
OCI 運用監視サービス 概要
oracle4engineer
PRO
0
4.8k
New Relicを活用したSREの最初のステップ / NRUG OKINAWA VOL.3
isaoshimizu
2
590
個人でもIAM Identity Centerを使おう!(アクセス管理編)
ryder472
3
200
Why does continuous profiling matter to developers? #appdevelopercon
salaboy
0
180
VideoMamba: State Space Model for Efficient Video Understanding
chou500
0
190
データプロダクトの定義からはじめる、データコントラクト駆動なデータ基盤
chanyou0311
2
300
Lambda10周年!Lambdaは何をもたらしたか
smt7174
2
110
AIチャットボット開発への生成AI活用
ryomrt
0
170
Lexical Analysis
shigashiyama
1
150
Featured
See All Featured
A better future with KSS
kneath
238
17k
Exploring the Power of Turbo Streams & Action Cable | RailsConf2023
kevinliebholz
27
4.3k
How to Think Like a Performance Engineer
csswizardry
20
1.1k
Faster Mobile Websites
deanohume
305
30k
The Art of Delivering Value - GDevCon NA Keynote
reverentgeek
8
860
Designing Dashboards & Data Visualisations in Web Apps
destraynor
229
52k
The Invisible Side of Design
smashingmag
298
50k
Done Done
chrislema
181
16k
Building a Scalable Design System with Sketch
lauravandoore
459
33k
個人開発の失敗を避けるイケてる考え方 / tips for indie hackers
panda_program
93
16k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
A Philosophy of Restraint
colly
203
16k
Transcript
ゲーム用コントローラー ~アケコンとかツインスティックとか~ 自作のすゝめ(基礎編) 2023.10.08 @kiyokura
自己紹介 ✓保住匡範(ほずみ まさのり) ✓ハンドル:きよくら(@kiyokura) ✓フリーランスのソフトウェアエンジニア ✓.NET / エンタープライズ成分強め ✓兼業農家 ✓ぼちぼち稲刈りシーズン
Maker…? ✓自分がMaker……という自覚は無い ✓DIYは好きな方ではある ✓日曜大工・修繕・エクステリア造作 ✓家電品の修理とか(最近のヤツは無理) ✓電子工的なこととか ✓モットー: 『人がやれるなら自分でも出来るのでは?』<傲慢
今日はゲーム関連のDIY的な話をします ✓ゲーム機のコントローラーをあれこれする話 ✓ちなみに私自身はゲームは多少嗜む程度
ここでいう「コントローラー」とは ✓ゲームプレイ用の入力デバイス ✓コンシューマーゲーム機やPC、スマホ等で使用 ✓ゲームパッド、アケコン、その他専用コントロー ラー
だいたいこういうの
だいたいこういうの
だいたいこういうの
だいたいこういうの ※とりあえず部屋の中で目についたのを撮影してみました
自作する必要ある? ✓(該当機種向けに)販売されてない ✓特殊コントローラー/専用コントローラー ✓自分にちょうど良いものが既製品に無い ✓サイズ、重さ、レイアウト、部品等々 ✓機種ごとに買いなおしたくない ✓本体機種ごとにアケコンが増える現象
買えないなら自分で作ればいいじゃない ✓ダイジョウブ、コワクナイ
ここ1~2年で自作・改造したりしたもの ✓PS4用ツインスティック ✓多機種対応アケコン ✓各プラットホーム接続用アダプタ ✓ 気が向いたときにアダプタ作成中……
PS4用ツインスティック
PS4用ツインスティック ✓バーチャロンの為に作成 ✓電脳戦機バーチャロン マスターピース 1995~2001 ✓ https://virtual-on.sega.jp/masterpiece/ ✓ Playstation Storeで好評配信中
✓とある魔術の電脳戦機 ✓ https://vo-index.sega.jp/ ✓ 詳細不明ですが配信停止されたのでパッケージ版探しましょう
PS4用ツインスティック ✓三和電子製のレバーを採用 ✓アーケード用コンパネと同様の操作性と強度 ✓保守部品も市販 ✓将来性も確保 ✓コントローラー基板を外付けにし交換可能に ✓別のゲーム機にも対応可能
多機種対応アケコン switch PS4 Windowds NEOGEO NEOGEO mini ARCADE EGRET II
mini アストロシティ ミニ PS2 Dreamcast 一台でどれでも使える! XBOX 360
多機種対応アケコン ✓コントローラー基板を外付け・交換式にすることで複 数の機器に対応 ✓XBOX & Windows(XInput) ✓Switch ✓PS4 ✓NEOGEO mini
✓NEOGEO ✓アーケード基板(ΣAV7000)…等々 ✓ベースは既製品のアケコン
難しいことはしていない ✓シンプルで低難易度の工作のみ ✓必要な知識と工作は中学生の技術家庭科レベル ✓興味がある方はぜひ、やってみてください
ゲーム機とコントローラーの基本
前置き ✓本資料内では原則としてデジタル入力(ON/OFF)の み扱います ✓アナログ入力やパルス的な入力を扱うものは一旦割愛 ✓原理が解れば難しくはないですが
ゲーム機とコントローラーの模式図 ゲーム機本体 ポチっとな! なんとか拳!
ボタンプッシュ=スイッチON ✓開いていた回路が閉じられる ✓電流が流れる ✓I/O端子に電圧がかかる ✓ボタン入力を検知 ※マイコンっぽい話に落とし込んだ比喩と思ってください
同じこと プッシュスイッチを押すと… マイコンのInputポートに通電して… なんか処理した結果Outputポートに電圧が流 れてLEDが光る \エルチカッ!/
コントローラーのキー=スイッチ ※部屋に転がってたなんかUSBゲームパッドの基板(メーカー・製品不明) ※ファミコン(以前)から現代まで基本はこんな感じ 導電パッドで押さえるとON
複数のキーのON/OFF情報を少ない信号線に 複数のキーのON/OFF情報をUSBの信号に 変換 ※部屋に転がってたなんかUSBゲームパッドの基板(メーカー・製品不明) ※ファミコン(以前)から現代まで基本はこんな感じ
原理はファミコン等の時代から同じ ファミコンは4021という汎用のシフトレジスタを使ってシリアライズしてる(SFCも ほぼ同じ)
余談:本体までパラレルで伝送するものもある ✓コントローラーのスイッチの線がそのまま本体側に端子へ ✓ コントローラ内にICはおろか電子部品が(ほぼ)無い ✓ATARI仕様 ✓ ATARI2600 ✓ 80年代国産PC(独自拡張アリ) ✓
メガドライブ(独自拡張) ✓アーケードゲーム基板 ✓ NEOGEO ✓ JAMMA以前の基板 ※MSX用の一般的なゲームパッドの例
要点:ここだけ覚えておこう ✓箱 ✓スイッチ ✓基板 ✓これでコントローラーできている ✓これがあればコントローラーは作れる
アケコンを自作してみよう
復習:典型的コントローラーの構造 ✓箱(ケース/筐体) ✓スイッチ(アケコンのレバーもスイッチ) ✓基板(ICチップとか抵抗とか電子部品)
ぶっちゃけこれでも動く
使い勝手等を考えた現実的な選択肢 ✓筐体 ✓強度やサイズが重要 ✓市販のアケコンを流用するのが堅実 ✓ヤフオクやハードオフ等もねらい目 ✓自作用に市販されているものもある
使い勝手を考えた現実的な選択肢 ✓レバーやボタン ✓アーケード用のものが市販されている ✓ 三和/セイミツ等々 ✓ 好みが分かれるポイント ✓筐体選定にも関わる ✓ 筐体によって取付可能/不可能なものも
使い勝手を考えた現実的な選択肢 ✓基板 ✓ 市販のコントローラー製品の基板を流用 ✓ いわゆる『乗っ取り』 ✓ アケコン自作用基板(市販) ✓ Brook
Universal Fighting Board(UFB)が有名 ✓ 小型マイコンで自作 ✓ pic マイコン ✓ Arduino Pro Micro ✓ Raspberry Pi Pico ‼ 認証が必要な機種は注意(PS4以降/XBOX One以降)
作例1
PS4用ツインスティックの例 ✓製作動機 ✓VOやるならやっぱツインスティックでしょ ✓PS4用のタニタのヤツ高いし買えない ✓他機種流用・改造もいまいち ✓タニタ用のレバー、保守パーツ含めて三和で普通に市販 されてるやん ✓ 割とコレガ決定的な動機
部品集め ✓ 筐体 ✓ ジャンクのアケコン(ハードオフで500円) ✓ 天板はガルバリウム板を切り売りで購入 ✓ レバー ✓
メーカー直販サイトで受注生産販売品を購入 ✓ ボタン ✓ ジャンクのアケコンから取り外したものを流用 ✓ 足らずは手持ちの中から適当にチョイス ✓ 基板 ✓ HORIのPS4用コントローラーを乗っ取り ✓ その他 ✓ ケーブルとかコネクタとか100均タッパーとか適当に 三和電子製 JLV-T2B
設計(概要) ✓別の機種で使うことも考えて基板は外付けに ✓筐体内レバー・ボタン(とケーブル)だけ ✓コネクタで付け替えが可能なようにする PS4 PS4用 アダプタ 将来出るなんか すごい機種 将来出るなんかすごい機種用
アダプタ
設計(レイアウト) ✓ざっくり配置やボタンアサインを検討 ✓VOのソフト上でのカスタマイズも考慮して
設計(ピンアサイン) ✓今後の汎用性 ✓乗っ取り対象の基板の特性も考慮 ✓アナログスティックボタン・スティックは要注意
加工 ✓現物合わせ&段ボールとか使ってあたりをとりなが らケースを加工 ✓強度を損なわないように注意
加工 ✓天板に穴あけ ✓加工を依頼するのは逆にメンドクサイ(計測と作図が特 に)
取付とか ✓スペーサーなんかは3Dプリンタがあると楽 ✓裏から見るとボタンの接続間違えがちなので、 裏にもラベル貼るのをお勧めしています
アダプタ(基板) ✓決めたアサイン通りに配線 ✓アナログスティック(可変抵抗タイプ)をデジタル スティックに配線する点に留意
余談:アナログスティックの基本 ✓最近のゲームパッド内蔵のスティックは2軸の可変抵抗が基本 ✓X/Yに対応するポートとGND/VCCが接続されており可変抵抗に より変化した電圧で傾きを判定 ✓ 例:最大220Ωの可変抵抗の場合 ✓ ニュートラル:110Ω ✓ 左いっぱい:0Ω
✓ 右いっぱい:220Ω ✓何段階の電圧を検知するかは実装次第 ✓デジタルレバーに置き換える場合は「0/真ん中/最大」が作れ れば良い
あっという間に完成
作例2
多機種対応マルチアケコン ✓製作動機 ✓機種ごとにアケコン買ってられない(富豪ではない) ✓でもアケコン欲しい ✓コンバーターや市販のマルチアケコンの難点 ✓ 新機種対応時期にラグがある ✓ レトロ機の対応は絶望 ✓
使用時の遅延の可能性
アケコン本体
アケコン本体 ✓HORI Real Arcade Pro(初代)流用 ✓元のPS2用の基板は除去 ✓ボタンやレバーは三和製のものに交換済み ✓ 元々アーケード用のものに換装させる仕様の為やりやすい ✓連射スイッチがあった場所に追加でプッシュスイッチを配置
✓ 最近のコントローラーはボタン多いので ✓接続するアダプタ/モードでボタン割り当て変わるのでインスト カードを差し込めるようにしてみたり ✓ (見えてないけど)奥側に名刺入れを張り付けてあり各機種ごとのカー ドが収納されてる
NEOGEO mini用アダプタ ✓NEOGEO miniのパッドの基板を乗っ取り ✓アナログスティックをデジタルスイッチに変換して る以外はそのまま結線してるだけ
Windows/Switch/PS4用アダプタ ✓ラズパイpicoにファームを書き込んでマルチコント ローラー基板化にるOSS「GP2040-CE」を利用 ✓超絶簡単・低コスト・低遅延でおすすめ
NEOGEO/アーケード基板用アダプタ ✓アーケード基板を家庭で遊ぶためのコントロールボックス Σ7000AVや、NEOGEOに接続するケーブルに変換 ✓単純にD-SUB 25ピンとD-SUB 15ピンを結線してるだけ(¥ハンダ付 けすらしてない)
別のアケコン本体 ✓バーチャステックプロ+ブラストシティ用コンパネ ✓バーチャスティックプロ ✓(90年代ゲーセン勢的に)操作性最高 https://www.sega.jp/fb/segahard/ss/stickpro.html
再作中… ✓イーグレットツーmini&アストロシティmini用アダプタ ✓ Pic or Arduino Microでの制作を検討中 ✓Dreamcast用アダプタ ✓ 案外DCにしか移植されてないゲームがある
✓Playstation 2用アダプタ ✓ 案外PS2にしか…以下同文 ✓Sega Saturn用アダプタ ✓ 以下同文
取り組むスタンス?的な話
前提:基本的に集中して作業できない ✓まとまった作業時間が取れない ✓仕事・家事・子供の世話等 ✓詰めて作業が出来ない ✓仕事・家庭の都合で数日くらいは飛ぶ ✓子供寝かせて家事終わった後は… ✓体力と精神力的が残ってない ✓視力が売り切れる(RO-GAN)
“完成”させるための個人的ポイント ✓ハンダ作業を最小限に ✓使用部材の工夫 ✓分割統治・モジュール化 ✓ドキュメントを書く ✓テプラの活用 ✓綺麗に作ろうと思わない
ハンダ作業を最小限に ✓ハンダ作業の欠点=危ないこと ✓仕掛中に離席しにくい・途中やめにしにくい ✓ながら作業しにくい ✓対応策 ✓圧着による結線 ✓コネクタ圧着済みケーブルの利用 ✓ピンヘッダやコネクタなどのみにハンダ作業を絞る
使用部材の工夫 ✓材料原価よりトータルコストで選ぶ ✓半完成部品をつかう ✓ コネクタ付きケーブル ✓ ターミナル付きコネクタ ✓ ブレッドボード配線基板 ✓使いやすい部品を選ぶ
✓ スズメッキ線 → ハンダメッキ線 ✓Aliexpressにかなり依存することにはなる
分割統治・モジュール化 ✓直接ハンダで空中配線→変換基板を挟む ✓テストの容易さ ✓修正の容易さ ✓作業が中断→間が開いて再開した時のやりやすさ
ドキュメントを書く ✓事前に図や表である程度設計しておく ✓考えながら作業すると時間かかるので事前に設計 ✓CAD的な正確さはどうでもいい(自分は) ✓しばらく経ってからの作業/改修時の利便性 ✓自分が作ったものでも平気で忘れる ✓現物を都度解析する羽目に
テプラの活用 ✓手書きより圧倒的に読みやすい ✓俺の字が汚いのは認める ✓書き間違いの修正が楽 ✓油性ペンで書き間違うと面倒 ✓テプラなら簡単に張替できる
綺麗に作ろうと思わない ✓売りものじゃない/誰に見せるでもない ✓雑でも不格好でも目的が達成できればOK ✓段ボールで試作してそのまま使うことも… ✓100均のタッパー is 最高 ✓安っぽい素材 → 加工しやすい
✓安い → 加工の失敗がコワクナイ
まとめ
アケコン自作・カスタマイズは珍しくない ✓大会ではアケコン持ち込みが一般的 ✓カスタムしやすい製品 ✓自作用の部品や基板の販売 ✓レバーレスコントローラーの流行 ✓HITBOXタイプを自作してる人は多い
コントローラーDIYのハードルは高くない ✓情報が入手しやすい ✓便利な道具や材料もたくさんある
興味をもったらぜひチャレンジ ✓やってみてください!