第二回Splathonを開催したぞ(42日ぶり2回目の #splathon )
第二回Splathon@Speee(IT企業対抗スプラトゥーン大会) まとめ #splathon
第一回スプラソンの際に特定のプレイヤーの行動のみが大型スクリーンに投影されており、できれば両チームの視点からプレイを見たい、と思ったので、色々と検討していました。
一番簡単?なのは WiiU の出力を全部ひとつひとつ大型テレビなどに投影し、並べて見ることです。しかし、大型テレビが8台も沸いてくるようなリッチな環境は滅多にありません。また、プレイ画面とPV画面を別にするとスプリッタの準備も必要です。あわよくば、そこまでするなら、各プレイヤーの動きを録画したり、解析したら面白そうです。
各プレイヤーの動きを録画したり解析するには、たぶんPCにHDMIキャプチャで入力してIkaLogもしくは相当野ツールで処理するのがよいでしょう。しかし、そうするとHDMIキャプチャデバイスを最大8個準備する必要があります。ヘビーです。
で、色々考えていたのですが、スプラトゥーンは 4対4 なので、画面を半分に縮小して 4-in-1 したらいいのではないかと思ったわけです。
4-in-1 しようとすると、通常はお高い機械が必要です。たとえば BlackMagic Design の MultiView を使えば最大16画面をひとつにまとめてスクリーンに投影できたりしますが、メーカーさんなどが悪いわけではありませんが、スプラトゥーン遊ぶのに 16 万円の機械を導入するのは流石に無理です。
「まてよ? HDMI 信号を FPGA で受信してミックスすればいいのでは?」
なんか変なことを考え始めて色々と検討をはじめました。
そんなこともあろうかと自宅には ZYBO (ARM搭載FPGA)
開発機は入手しています pic.twitter.com/7lAXlO4ZDg
— もつなべおじさん (@hasegaw) 2015, 12月 3
あれ???見えないような、、、、 pic.twitter.com/YJW1IAJLtg
— もつなべおじさん (@hasegaw) 2015, 12月 4
自作HDMI-RGB回路でWiiU画面うつるようになった。 pic.twitter.com/kMH2UQH0NL
— もつなべおじさん (@hasegaw) 2015, 12月 5
ハードウェアが得意なわけでもないのでかなり無謀
しかし自分の机を思えばHDMIにからみつくノイズは気になるじゃろ pic.twitter.com/YRVnKx3vmn
— もつなべおじさん (@hasegaw) 2015, 12月 8
ユニバーサル基板で適当に作ったHDMIブレークアウト基板では1GHzオーバーのデジタル信号はやはり無謀だった。
でも映ってる!!!二枚目が期待値。 pic.twitter.com/DoWJc0Ys8M
— もつなべおじさん (@hasegaw) 2015, 12月 11
あとは4チャンネル同時に信号を受けるようにして(FPGAや回路はソフトウェアと違い並列に並べること自体は容易)、受け取ったデータを一度DRAMに書き込んで(DDR2メモリの性能ならまあ適当に作ってもなんとかなるだろう)、その結果をHDMIもしくはRGBとして出力すればOK、、、というところで、いくつか問題が浮上してきました。ひとつ目の問題は FPGA 上に載っている PLL ブロックの数に限りがある、ということです。開発に利用していた ZYBO の Zynq-7000 には MMCM という PLL 的なものがふたつしか載っていません。しかし HDMI はピクセルクロックで同期しつつその10倍の速度でシリアルデータが送られてくる仕様になっていて、最大 1.5GHz でデータがパタパタ流れ込んできます。 ZYBO 自体でこのクロックを作るのはかなり無理ですし HDMI のピクセルクロックを元に必要なクロックを生成するのが現実的ですが、その回路がふたつしかないのえす。ひとつを入力、もうひとつを出力を使ったらもうありません。どうやって残りの3チャンネルを受ければいいんだ。
手元にあるもうひとつの FPGA 評価ボード NEXYS 4 には MMCM が 6 ありようなのでここで勝利を確信します。しかし、トレーニングボードのネットリストを見てみると PMOD に差動信号ペアとして使えるピンが全然でてないじゃないですかーやだー。ふざけんなよなんでこんなデザインになってるんだよ。俺は差動信号を12ペアぐらい突っ込みたいんだよ。
ここでひとつの悟りをひらきました。まず私が想定している回路はFPGAで作ることは可能です。ただ問題として、HDMIの1.5GHzクロックで流れ込んでくる信号をきれいにさばくには基板の設計を数回繰り返す必要があります。さらに、私の手元にはHDMIの信号を同時に4つ受けられるようなFPGAボードがないのでそこから制作するとなると、何百ものピンが出ているFPGAパッケージとHDMIコネクタを正しく接続したボードを作って、そこに諭吉さんクラスのFPGAを購入し業者に万単位のカネを払ってチップマウントして貰わないと作れないということが現実的にわかってきました。もちろん私が一発で成功させられるわけがないのでそれを繰り返すことになりかねません。
そこまでは難しいので、どうにか外部インターフェイス部分だけの製作で済ませようとするとこういうFPGAボードが載せられる基板をつくる手があるのですが、そもそもこのFPGAボードが10万スタートでかなりハードルが高いです。
BlackMagic Design の MultiView が安く見えてきました。
が、世界の工場で作られた「とりあえず 4-in-1 が可能なハードウェア」を入手することに成功しました!
というわけで、今回のスプラソンに投入してみたわけです。
— kana (@kana1) 2016, 1月 10
— takanamito (@takanamito) 2016, 1月 10
— kana (@kana1) 2016, 1月 10
4画面分割でライブとか充実しすぎ #splathon pic.twitter.com/6vPyX4mNCU
— Haruka Iwao (@Yuryu) 2016, 1月 10
— じゅうなんざいいり(筆の戦士見習い) (@10nanzaiiri) 2016, 1月 10
Ikalogで4画面をリアルタイム画像解析して、RS-232CでHDMIミキサー制御して、シーンによってライブスクリーンの画面分割制御してるって言ってた。すごい。 #splathon
— Haruka Iwao (@Yuryu) 2016, 1月 10
このシステムはスプラトゥーンをプレイする人々(別にほかのゲームでもいいですが)のためにお貸し出しできるように揃えています。仲間うちでプレイしたい、みんなでプレイするときにこの機材が使いたい、という方は是非ご連絡ください。イニシャルがけっこうかかっていますので無料というのはきついですが、場合によっては一ヶ月分の給料に相当する程度の機材を気軽に利用してもらえるように準備しています。