3Dモデリングに挑戦 その3 - パーツの組み込み | Arcade Cabinet

Arcade Cabinet

自作したゲームコントローラを紹介します

 GW中は、仕事もありましたが、ほとんど自宅で趣味に没頭していました。3Dモデリングを勉強したいと思って「Bartop Arcade Mini」筐体を製作しています。モニタ縦向きにも対応できるように設計しました。

 

 

Fusion360の使い方は少しずつですが、なんとか理解しつつあります。内部にパーツを綺麗に組み込みたいため、細かくサイズを計測して、図面に組み込みました。結構大変です。ジョイスティック、ボタン、液晶モニタ、モニタコントロール基板、スピーカー、アンプなどを組み込む必要があります。

 

 モニタはiPad3以降で使われている9.7インチ、解像度2048 x1536、4:3の液晶モニタを使いました。上写真はHDMI入力あり、LCDコントローラボードで音声出力のできるものです。

 

 ところで、液晶モニタはブラウン管と比較すると、残像や表示遅延が気になると言われていますが、実際どうなんでしょうか?

 

 遅延チェックソフトで比較検証してみました。iPhoneで240fpsで撮影してチェックしました。使った機器は「DE10-Nano」で、MiSTerというFPGAでメガドラなどレトロハードを再現するプロジェクトがあり、HDMIとRGB15kHzを同時出力できるハードです。

 まず、Misterの性能を実機と比較するためブラウン管で計測しました。

 右がメガドラ実機で左がFPGA(MiSTer)です。全く同じタイミングで表示されています。ハードウェアを並列してエミュレーションするFPGAは実機と全く同じハードではありませんが、遅延に関しては240fpsのレベルでは認めませんでした。プレイ感覚もほぼ同じと言って良いと思えます。MiSTerのコントローラーはUSB接続(BUFFALO USBゲームパッド 8ボタン スーパーファミコン風)ですが、コントローラによる遅延も1/240秒(4.2msec)以下という結果でした。

 両方の機器に正確なボタン同時押しを再現するために同一スイッチを両方のコントローラに配線しています。(機器が壊れるかも?)

 

<MiSTer.iniの設定内容>

video_mode = 2048,26,32,48,1536,3,6,12,200000(解像度2048×1536)

vscale_mode = 3(0.25x整数ステップ)

vga_scaler = 0

composite_sync= 1 (水平同期信号として複合同期を使用)

vsync_adjust = 2(低遅延モード)

*主なビデオ周りの設定内容です。

 

 今回使用したiPad3用の液晶パネルでの検証です。ブラウン管モニタとの比較をしました。結果は1フレーム未満の遅延でしたが、上写真でわかるように残像が約1フレームほど認めました。

 

 参考に、MiSTer同様にFPGAを使用しているメガドラ互換機「Mega-Sg」と実機で比較検討しました。Mega-SgはHDMI出力のみなので「Acerゲーミングモニター VG240Ybmiix」で比較検討しました。結果は約1フレームの遅れでした。本体側の映像をHDMIに変換する処理と、液晶側の表示処理合わせて1フレーム(1/60秒=16.7msec)の遅延ということでしょうか。

 このモニタはiPad3用の液晶パネルより残像少なめでした。

 

 ついでにソフトウェアによるエミュレーション(エミュレータ)でも調べてみました。Raspberry PiのRetroPie上のメガドラのエミュレータ「lr-genesis-plus-gx」を使用しました。ビデオ出力を15kHzにしてダイレクトにRGB接続しています。約3フレームの遅延を認めます。

 

 やはり、レトロゲームでシューティングゲームをする場合は、やはり実機&ブラウン管がベストと思われます。しかし、自分の場合は、遅延1フレームまでなら、プレイしていてほとんど違和感は感じませんでした。

 

 音声出力の遅延も検証しましたが、FPGA+HDMI出力は音の遅延は1フレーム以下(自分の耳では遅延を聞きとれませんでした)でした。

 

 内容がすこし脱線しましたが、液晶パネルでも、環境を整えれば1フレーム程度の遅延に抑えれることがわかりました。特にプレイしていて音の遅延がないのは大きいと思います。

 

今回使用した、MD用遅延チェックソフトです。

ダウンロード

 

 

 

モニタの調節ボタンも背面に設置、

後面に、アンプのボリュームも設置しました。

 

 

一つのパーツの造形に半日以上かかるので、全ての出力にかなりの時間を費やしました。1週間ぐらいかかります。

 

UVプリンターを使って筐体に直接印刷

 

こんな感じです。