ポク太郎です。
またサボって遊んでることがバレてしまう投稿。
MAME・PPSSPP以上に複雑でより高度な設定可能な任天堂WiiエミュレータDolphinのコントローラ設定の話題です。夏休みの自由研究の題材にでもして下さい。
Dolphin | 2407直近の安定板 2412でも確認済。 |
最も高度設定可能なエミュレータDolphin
それより更に高度なのがDolphin。“多様なコントローラ”を売りにしたWiiなので、力の入れ方が違います⇒Dolphinではボタン設定が自由自在なだけでなく、数式表記で設定可能!
なので、秒間30連射・トグル動作・組み合わせ設定も自由自在。
組み合わせ動作…例えばL2を押しながらL3でステートロード、L2を押しながらR3でステートセーブなど。
ただ、“高度な設定”は分かりづらいのが宿命。
そこで、便利だと思われる“高度な設定”例を次項から列挙します。

動作確認済分。
Bluetooth環境とセンサーバーさえ準備すれば実機と同じように使えるよ→wiiリモコンをPC・大画面で使うための自作センサーバー。
複雑設定窓の仕様・編集の仕方
例①】組み合わせ~フルスクリーン切替をL2+L3で
例②】トグル~ターボモード状態を保持
例③】連射~秒間30・15の実現と計算方法
例では「テンキー0が秒間15連射」。‘NUMPAD0’て部分を目的のキーに変えて頂ければ。
2パターン作ってみました。使い勝手の良い方をどうぞ。制御構造プルダウン中の“Timer()、Toggle()、Pulse()”を使います。
「‘NUMPAD0’ & Toggle( Timer(0.032) )」と入力。←ホームページ上に表示され…以下略。
「‘NUMPAD0’ & Pulse( Timer(0.064) , 0.032 )」と入力。←ホームページ上に表示され…以下略。
0.032なる数値について。60フレームとは1フレーム=1/60秒=0.016秒=16ms。
60フレームなのか30フレームなのか入力判定のみ60フレームなのかはゲームによるので、控えめな数値にしとくのがオールマイティー。
Toggle()の仕様は、カッコ内が0.5を超えたら1を保持し、それまでは0を保持。つまり、0.032の期間0→同じ期間1→…→。←秒間15連射。
Pulse()の仕様は、第1引数が0.5を超えたら第2引数の時間1を保持。つまり、0.064の半分の期間0→0.032の期間1→…→。←秒間15連射。
ちょっと分かりづらいので、連射速度別に表にしときます。仕様を勘違いしてなければ合ってるはず。式中の数値をいじって調整してみて下さい。
秒間5連射 | ‘NUMPAD0’ & Toggle( Timer(0.1) ) | ‘NUMPAD0’ & Pulse( Timer(0.2) , 0.1 ) |
秒間8連射 | ‘NUMPAD0’ & Toggle( Timer(0.063) ) | ‘NUMPAD0’ & Pulse( Timer(0.125) , 0.063 ) |
秒間10連射 | ‘NUMPAD0’ & Toggle( Timer(0.05) ) | ‘NUMPAD0’ & Pulse( Timer(0.1) , 0.05 ) |
秒間15連射 | ‘NUMPAD0’ & Toggle( Timer(0.032) ) | ‘NUMPAD0’ & Pulse( Timer(0.064) , 0.032 ) |
秒間30連射 | ‘NUMPAD0’ & Toggle( Timer(0.016) ) | ‘NUMPAD0’ & Pulse( Timer(0.032) , 0.016 ) |
これらTimer()で実現したものは“時間によるオンオフ切り替え”なので同期連射になりません。高橋名人以下の控えめ連射がオールマイティー。
例④】三角関数で鬼シェイク
例では「テンキー0押すと三角関数でX、Y、Zの値を無茶苦茶に」。
シェイクX軸に「‘NUMPAD0’ & sin( Timer(0.016) )」と入力。
シェイクY軸に「‘NUMPAD0’ & cos( Timer(0.032) )」と入力。
シェイクZ軸に「‘NUMPAD0’ & tan( Timer(0.048) )」と入力。←ホームページ上に表示され…以下略。
X、Y、Z軸それぞれ別の三角関数を使い、Timer()内の値をバラバラにし角速度もグジャグジャにしてランダムシェイクを目指します。
また画像撮り忘れましたが、シェイク設定付近にある「強さ」をデフォルト10cm→20cm、「周波数」をデフォルト6Hz→12Hzなど変更すると効果的です。
シェイクX軸に「‘NUMPAD0’ & sin( Timer(0.016) )」と入力。
シェイクY軸に「‘NUMPAD0’ & sin( Timer(0.032) )」と入力。
シェイクZ軸に「‘NUMPAD0’ & sin( Timer(0.048) )」と入力。←ホームページ上に表示され…以下略。
X、Y、Z軸それぞれ三角関数sinを使い、Timer()内の値をバラバラのグジャグジャ角速度にしてランダムシェイクを目指します。
「強さ」をデフォルト10cm→15cm、
「周波数」をデフォルト6Hz→10Hz。
ポインタはガンガン動いてるのにゲームタイトルがそれをシェイクとして認識しないなどの問題が起きるようです。
うちの環境で取りこぼしが無い値に一応調整しましたが、適宜数値を上下させてみてください。
面倒くさい鬼シェイク要求を1ボタンでクリアしてやって下さい。
例⑤】左手ゲームパッド、右手マウス操作
まず、Dolphinのコントローラ設定はこう。「wiiリモコンをエミュレート」とし、横の「設定」ボタンを押して設定に入ります。
「全般」タブが開き、パッドの十字キー・+・-等を設定しますが、特記事項は①②③番。
①:認識されたパッドを選びます。うちの場合は「Xinput/0/Gamepad」です。
②:Aボタンにマウスの左クリックを設定。
マウス左クリックだけの場合 | 「`DInput/0/Keyboard Mouse:Click 0`」と入力。 上のプルダウンを「DInput/0/Keyboard/Mouse」選んで入力。 |
パッドのAボタンもORする場合 | 「`DInput/0/Keyboard Mouse:Click 0`|’Button A’」と入力。 上のプルダウンを[既定]のゲームパッドに戻して’Button A’部分入力。 |
③:Bボタンにマウスの右クリックを設定(秒間10連射も入れました)。
マウス右クリックだけの場合 | 「`DInput/0/Keyboard Mouse:Click 1`&toggle(timer(0.05))」と入力。 上のプルダウンを「DInput/0/Keyboard/Mouse」選んで入力。 |
パッドのBボタンもORする場合 | 「`DInput/0/Keyboard Mouse:Click 1`&toggle(timer(0.05))|’Button B’」と入力。 上のプルダウンを[既定]のゲームパッドに戻して’Button B’部分入力。 |
次に「モーション」タブに切り替え、④⑤⑥⑦を設定。
④:「マウス操作によるポインティングを使用する」ボタンを押す。
⑤:シェイクの各軸をパッドのL1に割り当てます。
X | 「`Shoulder L`&sin(timer(0.016))」と入力。 |
Y | 「`Shoulder L`&sin(timer(0.032))」と入力。 |
Z | 「`Shoulder L`&sin(timer(0.048))」と入力。 |
⑥:強さを「15㎝」に。
⑦:周波数を「10Hz」に。
非常に高度な複雑設定が可能なDolphin。高度故にちょっと難しいです。本投稿を参考に研究して頂ければ。
論理式・if文が使えるてことは、「通常時は連射無し、R1押しながらA押すと連射」てのも自由自在です。
そんな便利なDolphinですが、今現状ではコントローラとキーボード・マウスの混在操作はできないっぽい。左手無線PS3コントローラ+右手マウスでできるといいんだが。
俺が知らないだけかも知れませんが、改良された・判明した等あった場合には、またDolphin話題で投稿いたします。できました。上項に追記済。
コメント
ドルフィンのシェイクって何故か最初だけ反応してあとは反応してくれないんですよね…マリオwiiとか…
>匿名さん
ちゃんと調査してから…としてたら返信遅れました。
ちょっと言い過ぎてた部分があったので数値を微調整して本文を修正しました。
うちでも「ポインタはブリンッブリンッ震えてるのにシェイクとして認識されない」現象が確かに見られました。タイトル毎の違いは不明だし、マリオwiiを持ってないので、訂正後の数値で検証してもらえませんか。
あまりに極端な数値にし過ぎてシェイクが認識されない可能性はあるので、取りこぼししない数値を探してみてください。