概要

charatbeatHDXのスキン機能は、画像をただ差し替えるだけといった単純なものではなく、画像やアニメーション、サウンドなどを自由にロードして、これらを任意のタイミングで表示したり再生したりといったことが出来るようになっています。
また、これらの制御はLuaというスクリプト言語を用いて記述出来るため、かなり自由度の高いプログラマブルな設計になっています。

Luaはスクリプト言語と言われていますが実際にはほぼプログラム言語であり、CやBasicと同じく変数を使って計算をさせたり、自分で関数を作ってそれを呼び出したりといったことが出来ます。さらに組み込み関数としてsinやcosといった数学関数などが標準で実装されているため、プログラムを少しでも知っているならば、これらを活用してより高レベルなスキンを作成することも出来ます。

なお、charatbeatHDXのスキンは基本的に画面の表示を行う処理を記述するもので、ゲームの進行(遷移)やゲームプレイ処理などは全てシステム側で行われます。このため、スクリプト側で曲データを解析したりそれらをプレイするような処理を記述する必要はまったくありません。
例えば現在タイトル画面だった場合は、タイトル画面用の専用のスクリプト関数が呼び出されるので、スクリプト側はその時に画像をロードしたり描画処理などを行います。ちなみにこの時呼び出されるスクリプト関数を、ここではコールバック関数と呼んでいます。

charatbeatHDXのスキンは本来、全ての画面(タイトル画面やモード選択画面など)を含めたスクリプトを記述するのが望ましいのですが、実際に各画面を全て作り込むとなるとかなりの時間がかかってしまうため、例えばゲーム画面のみを作りたい場合などを考え、それ以外の画面用のコールバック関数が定義されていなければ、デフォルトのシステムスキンが使用されるようになっています。
これにより最初はゲーム画面から作り、あとで選曲画面やタイトル画面といった感じでどんどん拡張していくことが可能です。
なお、ここでは各画面のことをシーンと呼んでおり、シーンにはタイトル画面、ログイン・プレイモード選択画面、ゲームモード選択画面、選曲画面、ゲーム画面、結果画面、コース結果画面の7つが定義されています。

ちなみに選曲時のリスト表示やゲームのレーン部分は、処理速度の関係上システム側で処理を行います。このためスクリプト上で出来る事は使用する画像やサイズの指定、またはアニメーションの指定とその制御のみとなります。
シーンの開始時などにこれらの情報をセットしておくことで、表示が必要になるとその情報を参照して実際に画面に表示されるという仕組みになっています。

最終的に作成したスキンデータは、スキン情報ファイル「_info.txt」と一緒にまとめてzipファイルに圧縮しておきます。
ただしスキンデータは必ずzipのルート上に存在している必要があり、フォルダの中に入っているとスキンとして認識出来ないので、もし作成したスキンが正しく選択出来ない場合は、まずはこの構造に間違いが無いか確認してください。
作成したzipファイルをゲームの「SKIN」フォルダに入れることで、設定画面から選択出来るようになります。

なお、スキン作成時に毎回zipファイルに圧縮するのは効率が悪いため、直接ファイルを読み込めるスキン作成モードがあります。
charatbeatHDXを起動する際に「SKIN\_CREATE」というフォルダが存在した場合は、強制的にスキン作成モードとなりその中のLuaスクリプトを直接読み取って現在のスキンを実行します。
また、画像などの各ファイルもこのフォルダに入れることで圧縮無しでスキンのテストが可能なため、単純に修正したデータは上書きしてしまえば更新完了となります。

スキンのデバッグが完了したら最後にこの中のファイルを全てzip圧縮することで、リリース用のスキンデータとなります。
これを各ユーザーに配布することで、作成したスキンを使用してもらうことが出来ます。

ちなみにスキン作成モードでは、スクリプトなどにエラーがあるとゲームが起動しなかったりするため、その場合はDEBUG.TXTにてエラー内容を確認して修正を行ってください。

 charatbeatHDX同梱のサンプルスキンの中身の例
 
スキンデバッガー
charatbeatHDXにて作成中のスキンをテストするには、毎回そのシーンまで遷移しなければなりません。また数値など確認したい場合も、その数値になるまで何度も繰り返す必要があったり、さらに通信プレイの各シーンを確認するために毎回ログインするなどの手間が必要となるため、作成中のスキンをチェックするのはかなり面倒です。

これらの手間を省くため、スキンを任意のシーンで実行してテストするためのスキンデバッガーが用意されています。


スキンデバッガーは本家サイトにあるので、必要ならそちらからダウンロードしてください。
これにはソフトの使い方が同梱されているので、詳細はそちらを確認してください。