サーバーサイド出力のユースケース
WienerはUnity/UE5だけでなく、サーバーサイドのマスターデータ管理にも活用できます。 1つのExcelからバイナリ(Unity/UE5共用)・UE5 C++・サーバー用JSON・PHP・SQLを同時生成し、クライアントとサーバーで常に同一データを保証します。
1. JSON出力 — REST API / BFF向け
ユースケース: ゲームAPIサーバーがマスターデータをJSONで配信する場合
[
{
"id": 1,
"name": "ハートの薬",
"type": "Consume",
"heal_point": 100,
"price": 50
}
]
設定例(YAML):
output_format:
- format: Json
活用例: フロントエンドがAPIからマスターデータを取得するBFF構成。UnityのStreamingAssetsと同一データをAPIでも提供。
2. PHP出力 — PHPサーバー向け
ユースケース: PHPで動くゲームAPIサーバーでマスターデータを参照する場合
<?php
class ItemMaster {
const DATA = [
['id' => 1, 'name' => 'ハートの薬', 'type' => 'Consume', 'heal_point' => 100, 'price' => 50],
['id' => 2, 'name' => '魔法の盾', 'type' => 'Equipment', 'heal_point' => 0, 'price' => 200],
];
}
設定例:
output_format:
- format: PHP
活用例: PHPサーバーのゲームロジックでアイテム効果・価格を参照。DBを使わずファイルで完結させたい場合に有効。
3. SQL出力 — DB初期データ投入
ユースケース: RDBにマスターデータを投入してサーバーから参照する場合
SQL出力は、YAMLで指定した項目だけを抜き出したDB投入用のCSVを出力します。LOAD DATA INFILE や各DBのインポート機能でそのまま取り込めます。
id,name,type,heal_point,price
1,ハートの薬,Consume,100,50
2,魔法の盾,Equipment,0,200
設定例:
output_format:
- format: SQL
活用例: バージョンアップ時の差分データのDB適用。マスターデータのシード投入の自動化。
クライアント・サーバー同期の実現
Excel(1ファイル)
|
+-- バイナリ (.bytes) → UnityおよびUE5に組み込み
+-- C#クラス (.cs) → Unity型安全アクセス
+-- C++ヘッダー/ソース (.h/.cpp) → UE5に組み込み
+-- JSON (.json) → APIサーバーで配信
+-- PHP (.php) → PHPサーバーで参照
+-- SQL (.csv) → DBに投入
メリット:
- クライアントとサーバーのデータが常に一致(同一ソースから生成)
- マスターデータの更新時は1回の変換コマンドで全プラットフォームに反映
- バリデーションも1回のコンバートで全形式をまとめてチェック