CRI ADX  Last Updated: 2024-09-25 17:41 p
ゲームデータ(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"]
# キューシートを取得
cuesheet = 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)
if result["succeed"]:
print("CueSheet「Tutorial」のビルドが完了しました。")
else:
print("CueSheet「Tutorial」のビルドに失敗しました。")

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

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

スクリプトの保存と実行

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