WienerWiener
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • はじめに
  • 競合比較
  • 価格・入手
  • FAQ
  • 向いているケース
  • ライセンス
  • Unity Asset版とStandalone版の違い
  • 簡易難読化・改ざん検知
  • 整合性検知・デバッグ
  • ローカライズ
  • バージョン管理
  • Google Sheets入力
  • Excel
  • YAML
  • 設定ファイル
  • データフォーマット
  • マスターデータコンバート
  • ValueOnlyフォーマット
  • スタートアップ
  • サンプル
  • Converter
  • YAML Editor
  • Setting Editor
  • 日本語
  • English
  • YAML操作

    • 概要
    • 定義一覧
    • Header定義
    • Fields定義
    • MultiYamlAction定義
    • ValidateKeyExistsYamlConditions
    • ValidateKeyExistsYaml
    • ValidateUnique
    • EnumConstJoin

Header定義

概要

YAMLのheaderハッシュの詳細です。

記入例

header:
  input_path:
  - path: Unit/Unit.xlsx
  sheet: Unit
  row: 5
  base_type: Normal
  source_type: Normal
  container_type: WienerDictionary
  output_path: Unit
  name: Unit

詳細

input_path

  input_path:
  - path: Unit/Unit.xlsx
  • 定義:条件付き(multi_yaml_action以外は必須)

表入力の入力元をリストで指定します。

入力が1つだけの場合も必ずリストで記述します。

指定できる入力元は以下の通りです。

  • .xlsx / .xlsm: ローカルExcel入力。input_search_path からの相対パスを指定します。
  • https://docs.google.com/spreadsheets/d/{spreadsheetId}/...: Google Sheets入力

ワイルドカードはローカルExcel入力でのみ使用可能です。

Google Sheets URLの gid は無視され、header.sheet のシート名を使用します。

Google Sheets入力は Standalone版とUnity Asset版の両方で使用可能です。

# ローカルExcel
header:
  input_path:
  - path: Unit/Unit.xlsx
  sheet: Unit
  row: 5

# ローカルExcelのワイルドカード
header:
  input_path:
  - path: Unit/*.xlsx
  sheet: Unit
  row: 5

# Google Sheets
header:
  input_path:
  - path: https://docs.google.com/spreadsheets/d/xxxxxxxx/edit#gid=0
  sheet: Unit
  row: 5

ワイルドカードを使うと、同じシート構造のExcelをフォルダ単位でまとめて読み込めます。例えばユニットデータを複数のExcelに分けておき、Unit/*.xlsx と指定しておくと、新しいExcelを追加してもYAMLを変更せずに読み込み対象を増やせます。

development_input_path

  development_input_path:
  - path: Unit/Unit_Test.xlsx
  • 定義:オプション

設定ファイルで development: true の場合にのみ読み込まれる追加の表入力。

input_path と同じ形式でパスをリストで指定します。development: true のときは input_path と development_input_path の両方を読み込みます。development: false のときは development_input_path は無視されます。

開発専用の入力(テストデータなど)を本番用の入力と分離するために使用します。YAML定義を重複させる必要がなくなります。

# 開発モード: Unit.xlsx + Unit_Test.xlsx を読み込む
# 本番モード: Unit.xlsx のみ読み込む
header:
  input_path:
  - path: Unit/Unit.xlsx
  development_input_path:
  - path: Unit/Unit_Test.xlsx
  sheet: Unit
  row: 5
  ...

sheet

  sheet: Unit
  • 定義:条件付き(multi_yaml_action以外は必須)

表入力のシート名を指定します。

row

  row: 5
  • 定義:オプション
  • デフォルト:1

表入力の解析開始行を指定します。

例えば5を指定した場合、1~4行目まではコメント行として扱えます。

base_type

  base_type: Normal
  • 定義:オプション
  • デフォルト:Normal

基本タイプを以下の中から指定します。

値説明
Normalデータ、定数、列挙の出力時に指定
NoOutputデータを出力しない場合に指定。列挙のリレーションのみ使用する場合や、定数・列挙結合時に使用
MultiYamlAction複数のYAMLに跨る処理を行う場合に指定。input_path・sheetの定義は不要(multi_yaml_actionの定義を参照)
ManualOnlyデータの出力は行わないが、マニュアルファイルのみ出力したい場合に指定。fields.manual_onlyは設定不要

source_type

  source_type: Normal
  • 定義:オプション
  • デフォルト:Normal

ソースタイプを以下の中から指定します。

値説明
Normalデータ出力時に指定
Enum列挙出力時に指定
Const定数出力時に指定。C#はバイナリと読み取りソースを出力
ConstSource定数ソース出力時に指定。C#は定数ソースファイルを出力。C#以外はConstと同様のデータを出力

container_type

  container_type: WienerDictionary
  • 定義:オプション
  • デフォルト:List

コンテナタイプを以下の中から指定します。

値型説明
ListT[]配列形式で出力
DictionaryDictionary<T, U>辞書形式で出力。fieldsの最初のkeyがキーとなる。キーが重複した場合はエラー
DictionaryListDictionary<T, U[]>辞書配列形式で出力。fieldsの最初のkeyがキーとなる
WienerDictionaryDictionary<T, U>WienerDictionary形式で出力。fieldsの最初のkeyがキーとなる。キーが重複した場合はエラー
WienerDictionaryListDictionary<T, U[]>WienerDictionaryList形式で出力。fieldsの最初のkeyがキーとなる

辞書形式の特性比較

形式プラットフォーム対応検索速度メモリ消費
Dictionary / DictionaryListプラットフォームネイティブ辞書
Unity: Dictionary
UE5: TMap
高速多い
WienerDictionary / WienerDictionaryListUnity: 二分探索
UE5: TMap(BPで使用するためTMapが必要)
Unity: O(log n)
UE5: 高速
Unity: 少ない(Listと同等)
UE5: 多い

output_path

  output_path: Unit
  • 定義:条件付き(base_typeがNormalの場合は必須)

出力するフォルダ名を指定します。

name

  name: Unit
  • 定義:条件付き(base_typeがNormalの場合は必須)

名前を指定します。 ファイル名、クラス名、変数名になります。

group

  group: Unit
  • 定義:オプション
  • デフォルト:""

C#/UE5にて使用可能です。

複数のデータを用意するが、使用時に2つ以上同時に使わない場合の形式です。

通常データファイルはUnit.bytesに全て結合されますが、groupを指定した場合は指定した値のファイルが出力されます。

(記述例ではUnit.bytesを出力)

groupを使用する場合は以下の条件を満たしてください。

  • 1データにつき1つの表入力を用意
  • 上記の全ての表入力はシート名や列などの形式を同じにする(行数は同じでなくてよい)
  • ローカルExcel入力をワイルドカードで指定する場合は、同一のフォルダに入れて、groupに関与しないExcelは入れない
  • スプレッドシートではないこと

例)ユニットデータを複数作り、グループ化してC#で1ファイル毎に読む

ローカルExcelのファイル配置

excel/unit/unit_rare.xlsx
excel/unit/unit_common.xlsx

unit.yaml

header:
  input_path:
  - path: unit/*.xlsx  # ローカルExcel結合と同じ書式
  sheet: Unit
  row: 5
  output_path: Unit
  name: Unit
  group: Unit  # groupの定義が必須
  ...

使用するC#コード

void Load()
{
  var wm = new WienerManager();

  // unit_rare.xlsx
  wm.LoadUnitPack("Unit.bytes", "unit_rare"); // groupを指定した場合は、「Load[Group名]Pack」という専用の読み込みメソッドが生成される
  var rareUnit = wm.Unit; // データアクセス

  // unit_common.xlsxに切り替え
  wm.LoadUnitPack("Unit.bytes", "unit_common");
  var commonUnit = wm.Unit;
}

sort

  sort: True
  • 定義:オプション
  • デフォルト:False

fieldsの最初のkeyでソートを行います。

※container_typeがListの場合にのみ使用することを推奨

encryption

  encryption: True
  • 定義:オプション
  • デフォルト:False

fields全体を難読化します。

manual_comment

  manual_comment: "YAMLのコメントを記述"
  • 定義:オプション

マニュアル出力時のYAMLのコメントを記述します。

template

  template: BasicPhp.php
  • 定義:オプション
  • デフォルト:""

PHPのみ使用可能です。

独自形式で出力したい場合にテンプレートファイルを指定します。

validate

  validate:
    composite_unique:
      - keys:
        - key: Id
        - key: SubId
  • 定義:オプション

データ検証定義です。 YAML内の複数のkeyに対する検証を行います。

composite_unique

複数のkeyの組み合わせの重複チェックを行います。

以下の例の場合は1行目と3行目のId、SubIdが同一であるためエラーとなります。

行IdSubId
110020
210030
310020

localization

  localization:
    id_key: Id
  • 定義:オプション

そのYAMLのローカライズを有効化する設定です。

id_key

  • 定義:条件付き(localizationを指定した場合に必須)

各行を一意に識別するフィールドのkeyを指定します。
指定したフィールドは自動的に重複チェック(unique)が有効になります。
manual_only: True でないフィールドを指定してください。

ローカライズが有効なYAMLでは、localize: True を指定したフィールドが翻訳対象となります。
翻訳用CSVのキーは {クラス名}.{フィールドkey}.{id_keyの値} 形式で生成されます。

multi_yaml_action

  multi_yaml_action: 
    type: ValidateKeyExistsYaml
    ignores:
    - value: 0
  • 定義:条件付き(base_typeがMultiYamlActionの時に必須)

タイプを以下の中から指定します。

タイプ説明
ValidateKeyExistsYaml複数YAMLのいずれかにkeyが存在するかを検証
ValidateKeyExistsYamlConditionsパラメータ条件付きで複数YAMLのkeyの存在を検証
ValidateUnique複数YAML間のkeyの一意性を検証
EnumConstJoin列挙と定数を結合

複数のYAMLにかかわる処理の定義です。 トップレベルの multi_yaml_action 定義は MultiYamlAction定義 を参照してください。

ignores

  • 定義:オプション

検証時に無視する値のリストを指定します。

タグ必須説明
value○無視する値を指定
最終更新:: 2026/06/12 2:44
Contributors: artisan-sawasaka
Prev
定義一覧
Next
Fields定義