『カービィのエアライダー』の3D酔い対策機能と、その機能を使用してもまだ酔う人が一部残る要因

カービィのエアライダーに酔い対策機能が実装&酔い対策ONでも酔いが軽減する人と変わらず酔う人に分かれると知り、以前少し3D酔いの事を調べてた*1身としては興味深かったので、それについて書いていきたいと思います。

※11/19 10:48 タイトルちょっと変更
※11/19 15:16 Xへのポストを列挙したまとめから、ブログに合った形式に書き換え&いろいろ加筆。

プレイヤー側にできる3D酔い対策だけ先に書いておくと、とにかく画面から離れてください。
少し離れてもまだ酔う場合更に離れてみてください、離れれば離れるほど軽減すると思います。あまり遠いと視認性は悪くなりますが、酔ってプレイできないほどではなくなるはず。



  • 3D酔いの原因と対策
  • エアライダーのここが酔いやすい
  • 酔い対策機能の中身
  • 最後に



*1:映像酔いについての論文は昔からいろいろありますが、VR HMD(視野角が広いためテレビなどより酔いやすい)の登場で研究が増えてるんですよね~。

続きを読む

Raspberry Pi Pico 2でHDMI接続&映像の表示遅延を計測する

Raspberry Pi Pico 2が発売されましたねー。今回はPico2の新機能を使った実験です。

表示遅延計測と言っても、Pico2では1080p60や2160p60等は出力できずフルHDや4Kのモニタのネイティブ解像度で表示できないので、スケーリングで遅延が増える古い一部のモニタには向きません。

なお、HDMI接続ですが出力する信号自体はDVI-D信号です。HDMIはDVI-Dに対して上位互換性があるので、HDMI接続でもDVI-D信号を表示することができます。

 

先にソースコードと.uf2ファイルを置いておきます、コンパイルする環境が無くても.uf2ファイルをPico2に入れれば動くと思います。

hstx_dvi_out_lag_test.zip - Google ドライブ

Raspberry Pi公式のHSTX機能のサンプルdvi_out_hstx_encoderがプログラムのベースです。
開発環境はWindows 11とVS Code、PlatformIOでArduino-Picoを使用してます。Arduinoの機能はシリアル通信くらいしか使ってません。シリアル通信はPico SDKのものよりArduinoの方が使い慣れてたのでこっちを使ってます。

 

  • Pico2の新機能、HSTXとTMDSエンコーダー
  • HDMIとPico2を繋ぐ
  • DVI出力の解像度はPico DVIの時より大きくできるのか
    • Pico2のクロックについて
  • 実際に出力解像度を上げてみる
  • 信号出力から映像表示までの遅延を計測する
    • 使い方
    • 測定方式による差異
  • 最後に

 

続きを読む

Raspberry Pi PicoでNTSCのコンポジット映像信号を出力する(カラー出力編)

Raspberry Pi PicoでNTSCの映像信号出力に挑戦。前回はモノクロ出力でした。

u-mid.hateblo.jp

今回はカラー出力なんですが、バグというか何故かNTSC出力の処理が一瞬停止して横にノイズが走ってしまうという問題(何らかの割り込み?メモリアクセス待ち?)が起き、その原因の調べ方がわからず詰まっている間にゼルダのティアキンが出てそっちに没頭してしまっていたため、Picoの方がほったらかしになってました。
問題の調査の仕方自体がわからなくて原因不明のままなのですが、デュアルコアCPUの2コア目の方を使えば問題なくNTSCカラー出力できる状態なので、とりあえずここで一段落とします。

プログラムはゼルダが出た15ヶ月前のままで、今見返すと色々と忘れてしまっています。なので今回の記事は実際のプログラム内容と違うことを間違って書いてる箇所があるかもしれません。

 

  • 開発環境
  • 仕様
  • 回路図
  • プログラム
    • Picoの動作クロックをカラーサブキャリア周波数に合わせる
    • フレームバッファとパレット
    • PIOとDMA

 

続きを読む

Raspberry Pi PicoでNTSCのコンポジット映像信号を出力する(まずモノクロから)

Raspberry Pi PicoでNTSCの映像信号出力に挑戦。一度NTSC映像信号生成ってのを試してみたかったんですよねー。

PicoにはPIO(programmable I/O)なる小規模なCPU的なハードが載ってて、メインのCPUから独立してちょっとした処理を行うことができます、しかもCPUと同じクロックスピードで。命令も全て1クロック。
これ使えば専用のIC使ったりしないでリアルタイムにNTSC信号作れちゃうのでは!?というのが今回のチャレンジです。

 

最終目標は320x240くらいの解像度のカラー映像の表示です、が、まずはモノクロ映像に挑戦します。信号がカラーよりシンプル*1で難易度が低い。

  • 開発環境
  • 仕様
  • NTSC信号について
  • 回路図
  • プログラム
    • PIO
    • DMA
  • 最後に

 

*1:というか白黒テレビに後付けでカラーにする信号を乗っけてるので、白黒がシンプルというよりカラーで複雑化という感じ?

続きを読む