そのままでも動画キャプチャー機能とtwitter連携以外は問題なく動作するはず。
ここでは動画キャプチャーとその音ずれ対策について行った事を書いていく。前者はdllを置換するだけだが、後者はソースに修正を加えてコンパイルするのでwindows環境が必ず必要になる。
個人の環境に大きく依存しそうなので参考程度に。
- 艦これ一覧めいかー改ニ
Ver0.12 - 作業環境
Arch Linux 64bit
VMWare上の Windows 10 64bit
動画キャプチャーを使えるようにする
ffmpeg.exeがエラーを吐くのが問題なのでそれの対応をする。
-
windows環境から下記のdllをコピーしてくる。
C:\windows\System32\quartz.dll -> ~/.wine/drive_c/windows/system32/quartz.dll C:\windows\System32\qcap.dll -> ~/.wine/drive_c/windows/system32/qcap.dll C:\windows\System32\downlevel\api-ms-win-core-privateprofile-l1-1-0.dll -> ~/.wine/drive_c/windows/system32/api-ms-win-core-privateprofile-l1-1-0.dll
-
winecfgでdllオーバーライドの設定を行う。
winecfg
を起動し、ライブラリダブでquartz.dll
とqcap.dll
を追加する。
音ずれを修正する
艦これ一覧めいかー改二のソースを修正してHot Soup Processorでコンパイルする。
-
ソースに差分を適用する
--- a/src/sub/VideoCapture.hsp +++ b/src/sub/VideoCapture.hsp @@ -192,20 +192,12 @@ diffTime = 0.0 if (vStartTime!=0.0 && aStartTime!=0.0){ - vStartTime = 11644473600.0+vStartTime dim FILETIME, 2 GetSystemTimeAsFileTime varptr(FILETIME) - aStartTime = -0.001*timeGetTime() + aStartTime + (4294967295.0*FILETIME(1) + (FILETIME(0)&0x7FFFFFFF) + -2147483648.0*((d(0)&0x80000000)>>31) )/10000000.0 - diffTime = (aStartTime-vStartTime)/1000 - //2秒以上ズレずれていたら無かったことにする - if ( absf(diffTime)>2.0 ){ - diffTime = diffTime2 - } - } - - //2秒以上ズレずれていたら無(ry) - if ( absf(diffTime)>2.0 ){ - diffTime = 0.0 + mtime = double(timeGetTime()) / 1000.0 + ftime = double(strf("%u", FILETIME(1))) * 4294967296.0 + double(strf("%u", FILETIME(0))) + utime = ftime / (10000.0 * 1000.0) - 11644473600.0 + diffTime = (vStartTime - (aStartTime + (utime - mtime))) } logmes "vStartTime :"+vStartTime
-
HSPのインストールとエディタのUnicode対策
HSPをインストールする。
一覧めいかーのソースはutf-8だが、HSPスクリプトエディタは非対応なので……
- あらかじめSJISに変換する。
- Unicode対応HSP「hsp3utf」を使う。
- 自分が知らないだけで楽な解決策がある。
今回は2の方法で。
hsp3utf_20170824b.zip
をダウンロード・展開。hsed3utf.exe
をhsed3.exe
に名前変更してHSPインストール先のファイルを上書きする。 -
コンパイル
src/main.hsp
をHSPスクリプトエディタで開いて、メニュー > HSP > 実行ファイルの自動作成
を実行する。文字化けしたファイル濶ヲ縺薙l荳隕ァ繧√>縺九・謾ケ莠・.exe
が生成されるので艦これ一覧めいかー改二.exe
に名前変更する。 あとはLinux環境に持っていって実行するだけ