FC2ブログ

記事一覧

MVInput と ゲーム改造の基礎知識

RPGツクールMVでキー設定を行うプロジェクト「MVInput」を始動しました。

目標は以下の5つです。
① XInputに対応していないコントローラーでも操作可能
② キーボードの動作も設定できる
③ ゲーム開発者の再配布パッケージを作る
④ ブラウザゲームにも対応させる(願望)
⑤ オープンソースで公開



① XInputに対応していないコントローラーでも操作可能
既にMVJpadで相当の実装がされていますが、これはコントローラーの入力を
キーボードの入力に変換しているため、ダッシュ移動がうまく動作してませんでした。
今回はコントローラーの入力を直接XInputの入力に変換します。
これで不具合なく動作可能になります。


② キーボードの動作も設定できる
ツクールMVはキーボードの動作設定ができません。
A S D Wキーで移動するとかは不可能でした。
WM_KEYDOWNメッセージをフックすればキーを入れ替えることができます。


③ ゲーム開発者用の再配布パッケージを作る

ツクールMVはキーボードの動作設定ができません。
コントローラーの設定もできません。
有志の方が作ったプラグインがあったりしますが、作成者の手間は増えます。
そこで、作ったゲームに同封するだけでそのキー設定が行えるプログラムを作ります。


④ ブラウザゲームにも対応させる(願望)
最近はツクールMVのゲームをブラウザゲームとして公開することが増えてます。
当然これもキー設定は出来ないので、出来るようにします。
ただし、ブラウザをハックするとなるとローカルゲームハックと事情がかなり異なるため、
できたらいいなぁぐらいの願望です。


⑤ オープンソースで公開
やることはクラッキングと同じですので、危険性が無いこと証明するために
オープンソースにします。
これは当然ですね。




■ ゲーム改造の基礎知識

そもそも何故MVJpadがxinput1_3.dllをゲームフォルダにコピーするだけで動作するのか。

ツクールMVのゲームはxinput1_3.dllをインポートするように作られています。

通常はWindowsのシステムフォルダからインポートしようとしますが、

ゲームの実行ファイルと同じフォルダに同名のファイル(xinput1_3.dll)があった場合、そちらをインポートします。
オリジナルのライブラリと全く同じエクスポート関数を持っていないといけませんが、
用意さえ出来れば自由にライブラリの動作をすりかえることが出来ます。

xinput1_3.dllはエクスポート関数が6個しかありませんので、書き換えがとても簡単です。


Windowsの主要サブシステムライブラリ(kernel32.dll、user32.dll、gdi32.dll、ntdll.dll等)以外は
実行ファイルと同じフォルダに同じ名前のdllがあればそちらをインポートします。
スポンサーサイト

コメント

コメントの投稿

非公開コメント