スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

カテゴリ : スポンサー広告

吉里吉里を簡単に再起動する方法

吉里吉里/KAGでゲームを作っていると、本体を再起動する必要が結構あったりします。
いちいち既に起動している吉里吉里を終了して、起動しなおすのは面倒です。
windowsのバッチファイルを使って簡単に再起動できるようにしてみます。

参考:Windows でアプリケーションを再起動するバッチ処理 - タスクの強制終了、タスクリスト、エラーレベルによる条件分岐
バッチファイルの内容は参考リンクそのままです。

バッチファイルというのは拡張子が.batのファイルで、windowsのコマンドを自動実行することができます。
今回は吉里吉里本体の再起動するためにコマンドを使います。


吉里吉里本体(krkr.exe)とKAGのプロジェクトフォルダ(dataフォルダ)は同じフォルダにあることが前提です。
そのフォルダに新しく「再起動.bat」ファイルを作成して、テキストエディタで開いて以下のコマンドを書きます。
@echo off

tasklist | findstr "krkr.exe"

if errorlevel 1 goto START
if errorlevel 0 taskkill /f /im "krkr.exe"

:START
start "" "krkr.exe"
保存して、「再起動.bat」を実行すれば吉里吉里が再起動されます。
テキストエディタのマクロやショートカットなどに登録しておくと便利かと思います。

簡単に解説すると、「tasklist | findstr "krkr.exe"」でkrkr.exeが起動しているか調べています。
「if errorlevel 1 goto START」では、起動していない場合に「:START」の行までジャンプします。
「if errorlevel 0 taskkill /f /im "krkr.exe"」で、起動していた場合にkrkr.exeを強制終了します。
最後の「start "" "krkr.exe"」でkrkr.exeを起動しています。

もし「krkr.exe」の名前を「ゲーム名.exe」と変更しているのであれば、3つある"krkr.exe"を全て"ゲーム名.exe"」と書き換えます。

また、プロジェクトフォルダについてです。
吉里吉里本体と同じフォルダに"data"フォルダがあれば、自動的にプロジェクトフォルダとして読み込まれます。
ない場合は「フォルダ/アーカイブの選択」ウィンドウが出てきてめんどくさいです。
プロジェクトフォルダは"data"フォルダとして置いておくのを推奨しますが、何らかの信念があって他の場所にプロジェクトフォルダを起きたい場合、バッチファイルでそのプロジェクトフォルダを指定できます。
例えばプロジェクトフォルダが「C:\krkr\project」フォルダなら、最後の「start」のコマンドが「start "" "krkr.exe" "C:\krkr/project"」のようになります。


解説はここまで。残りは再起動について補足なので上記のバッチファイル使うだけなら読まなくても大丈夫。

先の方法だとtaskkillで強制終了しているのでセーブデータが書き出されなかったりして問題あったりします。
実際は開発中ならそれほど困らないと思います。

/fをはずすと通常の終了になりますが、終了確認ダイアログがでてきて嬉しくありません。
正しく動作させるならKAGに手を入れて確認ダイアログを飛ばすようにするといいかもしれないですね。
それなら通常終了でセーブも大丈夫な気がします。

もっと頑張るなら再起動時のみ確認ダイアログ省略するように?
既存のmessenger.dllあたり使うと比較的簡単にできそうです。
通信させる必要があるのでちょっと面倒ですが。

普段はデバッグモードで起動させておいて、デバッグモード時のみダイアログ飛ばすようにする、くらいがちょうど良さそうです。


そもそも開発中に再起動する事自体が無駄なので、そこから何とかしたいですね。
現状のKAGEX/KAGEZレベルでも再起動が必要になる場面はほとんどありません。
スポンサーサイト

タグ : 吉里吉里 KAG

カテゴリ : KAG

コメントの投稿

非公開コメント

No title

自分は吉里吉里側で自分自身をキックバックする外部プログラムをshellExecuteして
そのまま即終了させるようなデバッグメニューをALT+DEL等のショートカットで登録しておいて使ってますね。
キーボード操作一発で再起動できるのは結構便利です。

ただ,単に即再起動させるとInitialize.tjsの多重起動防止(createAppLock)に引っかかることがあるので,
コマンドライン内容で回避させるか,もしくは外部プログラム側でMUTEXが消えるのを待ってから起動させるか
何らかの細工が必要になりますのでご注意を。

Re: No title

コメントありがとうございます。
エディタだけでなく吉里吉里側にもショートカット付けておくのは便利そうですね。
多重起動防止はコマンドラインで回避するのが簡単そうです。

山村正和のコメント

すごいですね!
最新記事
カテゴリ

openclose

記事一覧
Twitter
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。