MSBuildを使ったリビルドバッチでリビルドが終わったことを音声通知する
MSBuildを使ったリビルドバッチでリビルドが終わったことを音声通知する
初音ミク冒険記の「本体」は、VC++で作られているけど
初音ミク冒険記専用の「開発ツール」は、C#で作られている。
これは、開発ツールはGUI(グラフィカルユーザインタフェース)で
手早く作りたいためだ。
(VC++でもGUIツールは作れるけど、面倒くさいのだ・・・)
今更ながらMSBuildを使ったバッチを作った という記事にも書いたことを再掲して
リビルド時間を最新状況にすると、こんな感じ。
▼再掲ココから▼
「デバッグ設定ツール」で「オプション追加」ボタン押下すると
初音ミク冒険記の既存のVC++ソースを読み込んで
入力したオプション設定に従い、修正したソースを自動生成するようにしている。
この時、生成されるものの中には、
ほとんどのVC++ソースでincludeしているヘッダファイルがある。
本来だと、そのヘッダをincludeしているソースだけ
ビルドすれば良いんだけど、
ごくたまにビルドしたら期待通りに動かず
リビルドしたら期待通りに動くという現象が起きる。
このため、リビルドするようにしてるんだけど
このリビルドが1分50秒くらいかかるので、その間に別の作業がしたい。
ということで、「オプション追加」ボタン押下時に
MSBuildでVC++側をリビルドするバッチ処理を動かして
すぐにC#側の作業をしたいと思ったわけだ。
▲再掲ココまで▲
現在は、リビルドをするところまではできている。
が、リビルドにかかる時間が分単位のため、
「リビルド終わったかな?」とリビルドバッチの
コマンドプロンプトを見て
「あ、まだ終わってないや」とか確認する
という状況が出てきた。
さて、Jenkinsの設定をいろいろと変更してみた、が、あと一歩が分かんない という記事にも書いたが、現在の初音ミク冒険記の開発では
バージョン管理ソフトのSVNにソースをコミットすると10分以内に
Jenkinsが動いて、CppCheckによる静的テストや
全体のステップ数などの品質指標値の取得を自動で行っていて
終わった時に音が鳴るようになっている。
このため、リビルドが終わった後に音が鳴ると良いんじゃないか?
と思ったわけだ。
でも、Jenkinsで使っている音とは別の音にしたい。
このあたりは、携帯の着信音を分けるとかの発想に近い。
だからといって音を探したりするのも面倒だ・・・
ということで、最近使っていなかった
CeVIO Creative Studioを起動してONEに喋ってもらうことにした。
VOICEROIDの「結月ゆかり」とか「Megpoid Talk」で作っても良いのだが
喋りに関しては、CeVIO Creative Studioの方が、
音量や表情付けがしやすいし、何もしないデフォルトでも
期待通りのアクセントになりやすい気がする。
「結月ゆかり」はtwitterの読み上げで使うこともあるし、
声がかぶらない方が良いかなとも思っただよね。
そんなこんなで
リビルドが終わったら「本体のリビルド終わったよ」
と言ってくれるようにしたわけだ。
ボイスなので、裏でBGMを流していても気が付きやすいように
音量を上げる調整と、ちょっと語尾のイントネーションをいじったくらいなんで
ボイス製作時間は、実質数分程度である。
(むしろ、久々すぎてバージョンアップ作業のほうが時間がかかった)
バッチファイルで音を鳴らすのに
Windows Media Playerを使えば良い
ってところまでは思いついた。
たしか、Windows Media Playerはコマンドラインに対応していたはずだ。
が、ここで1つ問題が出てきた。
調べてみると指定した音声を鳴らし終わった後に
Windows Media Playerを終わらせる/colseというオプションが
いつの間にかなくなっているらしい。
つまり、Windows Media Playerを起動して
指定の音声ファイルを再生した後、
Windows Media Playerが起動したままなのだ。
これだと毎回Windows Media Playerを終了させる必要があって面倒だ。
解決策として、Windows Media Playerを起動して
指定時間を経過したら、Windows Media Playerを終了するようにした。
最終的に出来上がったバッチはこんな感じだ
Set PATH=%PATH%;"%ProgramFiles(x86)%\MSBuild\12.0\Bin"
F:
cd "F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki"
MSBuild.exe HatsuneMikuBoukenki.sln /p:Configuration=Release /t:rebuild
@rem 再生するファイル名
@set WAVPATH="F:\Visual Studio 2008\Projects\HatsuneMikuBoukenki\VOICE_DATA\Debug\ONE_本体リコンパイル終了通知.wav"
@rem 再生実行
@start wmplayer.exe /play %WAVPATH%
@rem XPの頃に存在したメディアプレイヤーで自動再生後に終了する/closeオプションが無くなったので、指定秒数待つ
@rem (実際の音声の時間より余裕をもたせてる)
timeout 5
@rem メディアプレイヤーのタスクを終了する
taskkill /im wmplayer.exe
pause
| 【固定リンク】 | 【コメント (0)】 | 【トラックバック (0)】
このエントリーへのリンク
トラックバック
この記事へのトラックバックの一覧です: MSBuildを使ったリビルドバッチでリビルドが終わったことを音声通知する:
コメント
このブログの新着コメントをRSSリーダに登録する為のxml