TOP/拡張スクリプト/スクリプト概要

スクリプト概要

BMX2WAV では機能の一部をスクリプト(Squirrel言語)で定義・実行したりしています。 これにより、実行ファイルを再度コンパイル等すること無く機能を変更・拡張・追加することができるようになっています。

BMX2WAV で使用している Squirrel のバージョンは 3.1.0 になります。

現在、拡張スクリプトで出来る事

BMX2WAV の機能の変更・拡張・追加

  • 本体、searcher の表示セルの内容や並び替え方法の設定
  • WAV ファイルや ogg ファイルの読み込みルールの設定
  • 右クリックメニューで BMS ファイルに対する処理(アプリ起動など)
  • 変換後のより複雑なプログラム起動
  • 出力ファイル名の設定
  • 変換中の各種タイミングでスクリプト処理の実行
  • 以下は Searcher での機能
    • ファイルの表示するしないのルール(フィルタ)
    • BMS ファイルの検索方法の設定

システム周りで可能なこと

  • メッセージボックスの表示
  • プログラムの起動
  • 音の再生(ファイル指定)
  • ファイルパスの編集
  • Squirrel 言語ライブラリで可能なこと(詳しくはSquirrel のドキュメントを参照してください)
    • ファイル名変更・削除
    • 時間の取得
    • 文字列編集
    • 数学関数等

Squirrel 言語について

BMX2WAV で採用しているスクリプト言語は Squirrel 言語になります。

http://squirrel-lang.org/

似たような用途でよりメジャーな言語には lua がありますが、 lua はプログラム言語的に少し癖があり Squirrel はそれに比べ素直な言語なので こちらを採用しました。

if や for 等の制御構造、関数、クラス、例外等の通常のプログラム言語に良くある機能を有しており、 整数、文字列、配列、テーブル(連想配列やハッシュと同機能)等のデータを扱えます。まあ普通の言語ですね。

Squirrel 言語について勉強したいのなら、以下のサイトが参考になるかと思います。

https://wikiwiki.jp/lua/Squirrel

ファイル構成と読込順序

BMX2WAV と BMX2WAV Searcher ではスクリプトファイルを読み込むそれぞれタイミングがあり、 各タイミングで複数のスクリプトを読み込みその後の動作が決定されます。

どのような時にどのスクリプトファイルが読み込まれるのかは以下の図に示した通りになります。 (初期化等はこのファイルだけではなく実行ファイル内でも色々と行われています。)

read_file.png

TOP/拡張スクリプト/スクリプト概要