CRI ADX2(AtomCraft)
ロボット編08 ゲームデータ(ACF, ACB)の出力

プロジェクトの作成と波形ファイルをキューに登録」チュートリアルで作成したプロジェクトを使用して、ゲームデータ(ACFファイル、ACBファイル)を作成するスクリプトを書いていきます。

本チュートリアルは、チュートリアル「プロジェクトの作成と波形ファイルをキューに登録」で作成したプロジェクトを使用します。
プロジェクトを開いていない場合は、プロジェクトを開くか、「プロジェクトの作成と波形ファイルをキューに登録」にて作成したスクリプトを実行してから、チュートリアルを進めましょう。

スクリプトファイルの準備

スクリプトメニューで「スクリプトリスト...」を選択し、 スクリプトリストからのスクリプト実行ウィンドウ表示します。
スクリプトリストウィンドウの新規作成ボタンを押して、以下の名前でスクリプトファイルを作成します。

スクリプトの保存先 スクリプトファイル名
tutorials [CRI] tutorial04-1_build_acb.py

スクリプトの説明

作成したスクリプトをダブルクリックして、スクリプトエディターからのスクリプト実行で開きます。
スクリプトリストからのスクリプト実行ウィンドウでスクリプトの内容が一覧できるように、スクリプトの説明を次のように記述しましょう。

# --Description:[チュートリアル]ゲームデータ(ACF, ACB)の出力

モジュールのインポート

スクリプトの説明が記述できたら、スクリプトでCRI Atom Craftを操作するため、次のモジュールをインポートします。

import cri.atomcraft.project as acproject
import cri.atomcraft.build as acbuild

CRI Atom Craftのプロジェクトデータを操作するProjectモジュールに加え、ゲームデータ作成を行うためのBuildモジュールをインポートします。
CRI Atom Craftではゲームデータを作成することを「ビルド」と言います。

ビルドに必要な情報の取得

キューシートをビルドしてACBファイル作成を行うためには、以下のオブジェクトが必要になります。

  • キューシート
  • ターゲットコンフィグ:出力先となるプラットフォームの設定
  • 言語設定:ローカライズ設定(省略可)
ビルドに必要なそれぞれの情報取得をスクリプトに記述していきます。

キューシートの取得

パラメーター変更とプレビュー」チュートリアルと同じように、ワークユニットを取得してその中にあるキューシートの取得を行います。

# ワークユニットを取得
workunit = acproject.get_workunit("WorkUnit_Tutorial")["data"]

# キューシートを取得
cuesheet_rootfolder = acproject.get_cuesheet_rootfolder(workunit)["data"]

# キューシートフォルダ「WorkUnit_Tutorial」を取得
cuesheet_folder = acproject.get_child_object(cuesheet_rootfolder, "CueSheetFolder", "WorkUnit_Tutorial")["data"]

# キューシートを取得
cue_sheet = acproject.get_child_object(cuesheet_folder, "CueSheet", "Tutorial")["data"]

ターゲットコンフィグの取得

ターゲットコンフィグはプラットフォームのビルド設定等を管理するオブジェクトで、全体設定で管理されます。
次の関数を使って全体設定からターゲットコンフィグフォルダーを取得します。

関数名 説明
get_global_folder 全体設定フォルダー直下の各オブジェクトフォルダーを取得します

ターゲットコンフィグの取得をスクリプトで記述すると次のようになります。

# ターゲットコンフィグフォルダーの取得
target_config_folder = acproject.get_global_folder("TargetConfigFolder")["data"]
# PCターゲットコンフィグの取得
target_config_pc = acproject.get_child_object(target_config_folder, "TargetConfigPc", "PC")["data"]

ターゲットコンフィグの取得の説明

全体設定で管理されている各オブジェクトのを取得するには、まずget_global_folder関数を使用して、 全体設定からオブジェクトフォルダーを取得します。
get_global_folder関数には、「オブジェクトのフォルダータイプ」を指定します。
オブジェクトフォルダーが取得できたら、get_child_object関数を使用して目的のターゲットコンフィグを取得します。

言語設定の取得

ローカライズ用のデータビルドには言語設定の指定が必要となりますが、本チュートリアルでは使用しません。
言語設定もターゲットコンフィグと同様に全体設定で管理されます。
取得する場合は、ターゲットコンフィグの取得同様にget_global_folder関数を使用して言語設定フォルダーを取得し、 取得したフォルダーに対してget_child_object関数を使用して目的の言語設定を取得してください。

ゲームデータのビルド

ビルドに必要な「キューシート」、「ターゲットコンフィグ」情報が取得できました。
Buildモジュールの次の関数を使って、ビルド処理を書いていきます。

関数名 説明
build_cuesheet 指定したキューシートをビルドします

キューシートのビルドをスクリプトで記述すると次のようになります。

print("CueSheet「Tutorial」のビルドを開始します")
result = acbuild.build_cuesheet(cuesheet, target_config_pc, None)["succeed"]

if result == True:
    print("Script Msg :CueSheet「Tutorial」のビルドが完了しました。")
else:
    print("Script Msg :CueSheet「Tutorial」のビルドに失敗しました。")

キューシートビルドの解説

ゲームデータのビルドにはbuild_cuesheet関数を使用します。
build_cuesheet 関数には「キューシート情報」、「ターゲットコンフィグ情報」、「言語設定情報」(省略化、省略する場合はNoneを指定)を指定します。
関数を実行すると、指定されたキューシートをビルドしてACBファイルを作成すると同時に、全体設定もビルドしてACFファイルを作成します。
関数の返り値は、ビルドが成功したかどうかです。result 変数に格納して、ログ出力の条件に使用しています。

スクリプトの保存と実行

これで本チュートリアルのスクリプト記述は終了です。スクリプトを保存し、実行しましょう。
ビルドが正常に行われると、「CueSheet「Tutorial」のビルドが完了しました。」というログが出力されると同時に、プロジェクトファイルと同階層に作成された「PC」ターゲットフォルダーに ACF ファイルと ACB ファイルが出力されます。