YAML Editor
Unity Asset版はローカルExcel入力と、header.input_path にGoogle Sheets URLを指定する入力の両方に対応しています。
概要
WienerのYAMLファイルをUnityEditorから編集するためのEditorWindowです。
起動
メニューバーから Tools > Wiener > Open Yaml Editor で起動します。

画面

ウィンドウ構成
| エリア | 説明 |
|---|---|
| ツールバー | ルートフォルダ選択・ステータス表示 |
| YAMLツリー | フォルダ/ファイルのツリービュー・検索 |
| エディタペイン | Header/Fields/Multi YAML Action の編集 |
| プレビューペイン | 編集中YAMLのテキストプレビュー |
ツールバー

Root フォルダ
YAMLのルートディレクトリを指定します。
デフォルト:Assets/Wiener/Data/client/yaml
... ボタンでフォルダダイアログを開いて変更できます。
Google Sheets Credential JSON
Googleスプレッドシートを読み込む場合に使用する、サービスアカウントの認証JSONファイルを指定します。
認証JSONファイルの生成手順は Google Sheets入力の設定手順 を参照してください。
... ボタンでJSONファイルを選択できます。
指定済みの場合は Clear ボタンで設定を解除できます。
YAMLツリー

左ペインのツリーにYAMLファイルがフォルダ単位で表示されます。
- ファイルの選択:クリックで選択し、右ペインで編集できます
- 検索:ツリー上部の検索フィールドに文字を入力すると、一致するYAMLファイルだけを表示します。表示時は一致ファイルまでの親フォルダを残すため、絞り込み後もフォルダ構造を確認できます
- 複数選択:
Ctrl + クリックで個別追加/解除、Shift + クリックで範囲選択できます。複数選択時のDuplicate/Deleteは選択中のファイル・フォルダすべてに適用されます - 空白部分の右クリック:ツリー末尾より下の空白を右クリックすると、ルートフォルダに対するメニューを表示します
- 作成・リネーム後の選択:フォルダ作成、YAML作成、リネーム、複製の完了後は対象の項目が選択状態になります
- 自動再構築:ウィンドウがフォーカスを得た時に自動でツリーを再構築します。Unity外部でのファイル・フォルダの追加・削除・変更が即座に反映されます
右クリックメニュー
| 操作 | 対象 | 説明 |
|---|---|---|
| Refresh | フォルダ | ツリーを再読み込みします |
| Create Folder | フォルダ/ファイル | 選択フォルダ内にサブフォルダをツリー上でインライン入力して作成します |
| New YAML | フォルダ/ファイル | 選択フォルダ内に新しいYAMLファイルを作成します |
| Create From Input | フォルダ/ファイル | 指定したExcelまたはGoogleスプレッドシートのシートからHeaderとFieldsを自動生成します |
| Create From Enum | フォルダ/ファイル | Enum専用のExcelまたはGoogleスプレッドシートから、シート数分のEnum形式YAMLを一括生成します |
| Recreate From Enum | フォルダ/ファイル | 前回成功したCreate From Enumの設定で、選択フォルダにEnum形式YAMLを再生成します。前回設定がない場合は選択できません |
| Rename | ファイル/フォルダ | ファイルまたはフォルダ名を変更します |
| Duplicate | ファイル/フォルダ | ファイルまたはフォルダを複製します |
| Open (external) | ファイル | 関連付けられたエディタでファイルを開きます |
| Delete | ファイル/フォルダ | ファイルまたはフォルダを削除します(確認ダイアログあり) |
Create From Input
ExcelファイルまたはGoogleスプレッドシートを読み込み、指定したシートのヘッダー行をもとにYAMLを1ファイル生成します。
| 入力項目 | 説明 |
|---|---|
| Source | Excel / Spreadsheet のいずれかを選択します |
| Excel File / Spreadsheet URL | Excelファイルのパス、またはスプレッドシートのURL |
| Sheet | 対象シートをドロップダウンから選択します |
| Type Row | 型情報が記載されている行番号 |
| Name Row | フィールド名が記載されている行番号 |
| YAML Name | 生成するYAMLファイル名 |
| Key Style | UpperCamel / SnakeCase から選択します |
Key Style で UpperCamel を選択した場合は、生成される fields[].key だけでなく header.name もUpperCamelになります。
Type RowでEnumを指定する
Type Row のセルには、通常の型名に加えて、YAMLルート内にあるEnum形式YAMLのファイル名(拡張子なし)または header.name を指定できます。対象になるのは header.source_type が Enum のYAMLだけです。指定名の大文字小文字は区別しません。
たとえば enum/item_type.yaml の header.name が ItemType の場合、型として item_type または ItemType を指定すると、次のフィールドを生成します。
- key: ItemType
name: item_type
type: Foreignkey
relation:
yaml: enum/item_type.yaml
from: From
to: To
from と to には、参照先Enum形式YAMLに実際に定義されている From / from、To / to のキー名を使用します。指定したEnumが見つからない場合は type: String として生成します。
Create From Enum
Enum専用のExcelファイル(EnumBase.xlsx など)またはGoogleスプレッドシートを読み込み、全シートからEnum形式のYAMLを一括生成します。
動作仕様
- 全シートが対象。シート選択は不要です。
- シート名が
EnumRuleのシートは存在していても除外されます。EnumRuleシートは必須ではありません。 - 各シートの A1セル をenum名およびファイル名のベースとして使用します。A1セルが空の場合はシート名を使用します。
- 対象フォルダ内に 同名のYAMLが既に存在する場合はそのシートをスキップします(上書きしません)。
- ヘッダー行(
to/from/value列)を自動検出します。見つからない場合は5行目をデフォルトとします。 value列の値がすべて整数の場合はtype: Int、それ以外はtype: Stringとして出力します。
入力項目
| 入力項目 | 説明 |
|---|---|
| Excel File | ExcelファイルをBrowseボタンで選択します |
| Key Style | UpperCamel / UpperSnakeCase から選択します |
最後に成功したSource、ExcelファイルパスまたはスプレッドシートURL、Key Styleは保存され、次回ダイアログを開いた時に復元されます。Targetフォルダは保存されず、常に右クリックしたフォルダまたはファイルの親フォルダが対象になります。
Recreate From Enum
前回成功した Create From Enum のSource、ExcelファイルパスまたはスプレッドシートURL、Key Styleを使って、右クリックしたフォルダにEnum形式YAMLを再生成します。
Unity Asset版はローカルExcelとGoogleスプレッドシートの両方に対応しており、GoogleスプレッドシートからのRecreate From Enumも使用できます。
出力YAMLの構造
Key Style を UpperCamel に設定し、A1セルに gender_type と記載されたシートがある場合、以下のYAMLが生成されます(ファイル名: gender_type.yaml)。A1セルが空の場合は、シート名がファイル名と header.name の元になります。
header:
input_path:
- path: EnumBase.xlsx
sheet: 性別
row: 5
base_type: Normal
source_type: Enum
name: GenderType
output_path: Enum
fields:
- key: To
name: to
type: Enum
enum: GenderType
enum_value: Value
enum_comment: From
- key: From
name: from
type: String
- key: Value
name: value
type: Int
...
ヘッダーエディタ
YAMLの header: 項目を編集できます。

| 項目 | 説明 |
|---|---|
base_type | Normal / NoOutput / MultiYamlAction / ManualOnly |
input_path | 参照する表入力のパス一覧 |
sheet | 表入力のシート名 |
row | データ開始行 |
source_type | Normal / Enum / Const / ConstSource |
container_type | List / Dictionary / DictionaryList / WienerDictionary / WienerDictionaryList |
output_path | 出力フォルダ名 |
name | 出力名(クラス名・ファイル名) |
group | グループ名(C#のみ) |
sort | 先頭keyでソートするかどうか |
encryption | フィールド全体を難読化するかどうか |
template | PHPテンプレートファイル名 |
manual_comment | マニュアル出力時のコメント |
composite_unique | 複数keyの複合ユニークチェック |
詳細はHeader定義を参照してください。
フィールドエディタ
YAMLの fields: 項目を編集できます。

フィールド一覧操作
| ボタン / キー | 説明 |
|---|---|
| Add Field | 新しいフィールドを追加します |
| Delete Field | 選択中のフィールドを削除します |
| Move Up / Move Down | フィールドの順序を変更します |
Delete / Backspace | テキスト入力中でない状態で選択中のフィールドを削除します |
フィールドパラメータ
| 項目 | 説明 |
|---|---|
key | フィールドのキー名(C#プロパティ名になります) |
name | Excelの列名(snake_case推奨) |
type | Bool / Byte / Short / UShort / Int / UInt / Long / ULong / Float / Double / String / Enum / DateTime / Foreignkey |
default | セルが空の場合のデフォルト値 |
string_format | テキスト出力時の数値フォーマット |
comment | ソースコードに出力されるコメント |
manual_comment | マニュアル出力時のコメント |
localize | ローカライズ対象かどうか |
encryption | メモリ難読化の有無 |
manual_only | マニュアル出力のみ行うかどうか |
obsolete | C#アクセサを非推奨扱いにするかどうか |
Relation(Foreignkey時)
type が Foreignkey の場合に表示されます。
| 項目 | 説明 |
|---|---|
yaml | 参照先YAMLのパス(ドロップダウンで選択可能) |
from | 参照先YAMLの検索対象key |
to | 変換先のkey |
Enum(Enum時)
type が Enum の場合に表示されます。
| 項目 | 説明 |
|---|---|
enum | Enum名(source_typeがEnumのYAMLのname) |
enum_value | 列挙値として使用するkey |
enum_comment | 列挙コメントとして使用するkey |
Validate
各フィールドのバリデーション設定です。
| 項目 | 説明 |
|---|---|
unique | 重複チェック |
key_exist | 単一YAMLとのデータ存在チェック |
key_exists_yaml | 複数YAMLとのデータ存在チェック |
key_exists_yaml_conditions | パラメータ付き複数YAMLとのデータ存在チェック |
enum_exists | Enum定義の網羅チェック |
range | 値の範囲チェック |
string_length | 文字列長チェック |
詳細はFields定義を参照してください。
Multi YAML Actionエディタ
base_type: MultiYamlAction の場合にフィールドエディタの代わりに表示されます。

| ボタン | 説明 |
|---|---|
| Add Item | アクション対象YAMLを追加します |
| Delete Item | 選択中のアイテムを削除します |
| Move Up / Move Down | 順序を変更します |
各アイテムで参照するYAMLと対象keyを設定します。
プレビューペイン
編集中のYAMLをテキスト形式でリアルタイムプレビューします。テキストは選択してコピー可能です。

ツールバーボタン
| ボタン | 説明 |
|---|---|
| Save | 現在のファイルを保存します |
| Save All | 未保存の変更があるすべてのファイルを一括保存します |
| Reload | ファイルを再読み込みします |
ショートカット
| キー | 操作 |
|---|---|
Ctrl + Z | 元に戻す(Undo) |
Ctrl + Shift + Z / Ctrl + Y | やり直す(Redo) |
Ctrl + S | 保存(Save) |
Ctrl + Shift + S | 一括保存(Save All) |
Ctrl + N | ツリーで新規YAMLファイルを作成 |
Ctrl + D | ツリーで選択中のファイルまたはフォルダを複製(複数選択可) |
F2 | ツリーで選択中のファイルまたはフォルダをリネーム |
Delete / Backspace | ツリーで選択中のファイルまたはフォルダを削除(複数選択可)。UnityのAssets配下では対応する .meta も削除されます |
Delete / Backspace | フィールド一覧で選択中のフィールドを削除します(テキスト入力中・ツリーフォーカス時を除く) |
↑ / ↓ | ツリーで前/次のノードを選択 |
Shift + ↑ / Shift + ↓ | ツリーで範囲選択 |
Ctrl + ↑ / Ctrl + ↓ | 選択状態を変えずにキーボードカーソルを移動 |
Ctrl + Space / Space | キーボードカーソル位置のノードを複数選択に追加/解除 |
← | フォルダを閉じる(閉じている場合は親フォルダへ移動) |
→ | フォルダを開く(開いている場合は最初の子ノードへ移動) |