だいぶ実装が進みました~
あ、ちなみに用途はギャルゲ用スクリプトインタプリタです
吉里吉里っぽいのです
現在、スクリプトを読むことは出来ませんが(ぇ
自前デバッグコンソールからコマンドをぶち込むことで動作確認とれるので何とかなってます。
結果的に使用することとなったのは以下のSDK、ライブラリです
- DirectX 9
- DirectShow (Windows SDK)
- XAudio2
- Ogg Vorbis
意外と柔軟性が高く、エフェクトが簡単にかけられることが魅力的でした。
Panに関しては2チャンネル時のみSetChannelsVolumeで何とかなりますが……
他ん時は知りません。
ループはVorbisFileに丸投げしました。(∀`*ゞ)テヘペロ
んで、以下のリストが実装済みの機能(括弧内は実装済みオプション)
- image[tab=30](load move copy swap delete rotate(x y z) zoom(x y z) alpha)
- sound[tab=33](load play stop pause delete reverb changereverb(いくつかパターンが存在する) equalize volume pan)
- movie[tab=28](load play stop waitend)(ムービー中にスクリーンモード切替可能)
- text[tab=44](edge edgecolor edgesize color alpha apearspeed alphachangeflag(徐々に出現するかどうか) ambiguity(徐々に出現する際の前の文字がどれだけ見えてから次の文字が出るかの閾値))
- その他(マルチスレッド、ウィンドウサイズ可変(可能なサイズは限られている)、フル⇔ウィンドウ切り替え、TLSFメモリ管理機能、ログ排出、デバッグコンソール)
- button
- messageframe
- image
- voice
- se
- bgm
- text
ちなみにスクリプト言語の仕様はKAG3の独自拡張版とするため、KAG3に入っている要素は基本入れていきたいと思います。
TJS2にあたる部分はLuaで補います。iscript endiscriptは廃止してilua endiluaを取り込みます。
最後に実装予定の機能リストです
- autosave[tab=13](boost::serialization使用)
- save[tab=44](boost::serialization使用)
- load[tab=46](boost::serialization使用)
- ファイル関係[tab=1](暗号化(独自形式)、ハッシュ作成(SHA-256)、アーカイブ)
- クリッカブルマップのための判定機構
- 分割済みイメージ(png,jpg)を使用したアニメーション
- グラフィカルボタン
- ハイパーリンク
- マウスカーソルの変更
- 実行ファイルのアイコンの変更(外部より)
- 非アクティブ時動作指定
こんなんやらんの?とかありましたら是非教えていただけると嬉しいです!
……リストに書いておいて前々から疑問に思ってたんだけど
吉里吉里のツールの一つにあるアイコン変更ツールってどうやってんだろう……(´・ω・`)
そういえばboostて遅いって聞いたことがあるんやけど、ほんまなん?使ってないけど
使う予定やけど