layer-live-ops について
承認済みアセットを基に、ライブ運営向けゲームアートのバリエーションを作るワークフローガイドです。アイテムの段階変化やキャラクター強化、季節スキンを、識別性を保って制作するゲームアーティスト向けです。
主な機能
- 01承認済み画像を基準に変化を生成
- 02各段階で変化させる要素を一つに限定
- 03アセットのサイズと配置を統一
- 04段階を並べて一連で確認
- 05承認済みファイルの状態を記録
活用シーン
- 01武器やアイテムの強化段階を制作
- 02通貨やバンドルの一貫した段階を作成
- 03季節向けのキャラクターやアイテムスキンを制作
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ layerai/ skills --skill layer-live-opsインストール後、Claude Code で/layer-live-opsを入力して読み込まれたか確認します。
詳細
Layer Live Ops
概要
ライブオプス用アートとは、プレイヤーがすでに知っているものにバリエーションを加えたものです。ティア3の剣はティア1の剣だと認識できなければならず、ハロウィンスキンはそのヒーローだと認識できなければならず、通貨パックは前後のパックと並ぶ段階的なラインナップの一部でなければなりません。重要なのは、アイデンティティを保ちながら、変える要素を正確に一つに絞ることです。
ここで紹介するすべての手法では、承認済みの画像をもとに新しい画像を作成します。そのため、重要なモデルフィルターは image_editing です。これはソース画像と参照画像を受け取り、被写体を再現するモデルです。style_reference は見た目だけを引き継ぎ、アイテムの一貫性は保てません。生成の仕組みと費用の承認ゲートについては layer スキル、ベースアセットのデザインについては layer-game-assets を参照してください。
ここに記載した関連スキルが利用可能なスキルにない場合は、ユーザーにインストールを依頼してください(npx skills add layerai/skills --skill <name>)。ユーザーが不在の場合は、ツールスキーマをもとに作業を進め、不足している点を明記してください。
クイックリファレンス
| 作業 | 入力 | 固定する要素 |
|---|---|---|
| アップグレードまたは進化 | ベースティアを reference_image、前のティアを init_image に指定 | シルエット、比率、パレット |
| 通貨またはバンドルのラインナップ | 最小パックを reference_image に指定 | コインまたはジェムのデザイン、光、角度 |
| キャラクターのレベルアップ | 承認済みキャラクターを init_image に指定 | 顔、体格、カラーアイデンティティ |
| シーズンまたはイベント向けスキン変更 | 元の画像を init_image に指定し、プロンプトにテーマを記述 | シルエット、ゲームプレイ上の見分けやすさ |
| テーマに沿ったアイテムの一括作成 | 承認済みアイテムを2つか3つ reference_image に指定 | レンダリング、輪郭、パレット |
| 数か月にわたって使うルック | トレーニング済みの参照セット(layer-reference-sets) | 上記すべて |
ティアごとに変える軸は一つ
素材、サイズ、発光、装飾を一度に変えるティアは、別のアイテムに見えてしまいます。生成を始める前に進行を決め、プレイヤーが理解しやすい一定の順序で、ステップごとに一つの軸だけを変えましょう。
- 素材:木、鉄、鋼、金、クリスタル。
- 装飾:装飾なし、帯飾り、彫刻、宝石のはめ込み。
- エネルギー:発光なし、ほのかな発光、オーラ、パーティクル。
- 大きさまたは個数:バンドルの場合は、少量、小山、袋、宝箱。
各ティアのプロンプトは、差分として記述してください。「同じ剣、形状と比率も同じ。刃を鋼にし、血溝に彫刻を施す。それ以外はすべて変更しない」のようにします。レアリティカラー(コモン、レア、エピック)は通常、UIで追加するフレームやプレートなので、ゲーム内でアイテム自体に色を付ける場合を除き、アイテムには含めないでください。
画像は1枚ではなく2枚を基準にする
各ティアを直前のティアだけにつなげていくと、ずれが積み重なります。ティア5になるころには、剣が別物になっています。アイデンティティを保つため、ベースティアを reference_image に指定し、これまでの段階的な変化を引き継ぐため、直前のティアを init_image に指定してください。init_image の重みはデフォルトで0.5です。形状がぶれる場合は重みを上げ、新しい素材が反映されない場合は下げてください。
承認済みの出力にはすべて file_id が付与されています。そのまま渡してください。生成済みアセットを再アップロードしてはいけません。
リスキン
季節ごとのスキンで変わるのは見た目であり、構造ではありません。元の画像を init_image として渡し、変わらない点と変わる点の両方を指定します。「同じキャラクター、同じポーズ、同じシルエットとプロポーション。衣装を赤と白のニットウェア、ファーの縁取り、槍に代わるキャンディケインの杖で冬祭り風に変更」。ゲームプレイ時の視認性はテーマ性より優先されます。敵のリスキンでも、ゲームプレイ時のサイズでその敵だと判別でき、武器も射程が分かるように輪郭を保つ必要があります。
イベント用に多数のアイテムを用意する場合、まず2〜3個を承認し、layer-game-assets でアイコンセットを拡張するときと同じように、それらを残りのアイテムの参照画像として添付します。毎月イベントを実施するゲームでは、シーズンごとに基準を設定し直すのではなく、ハウススタイルを一度確立して適用します。
チェーン全体でキャンバスを統一する
個別に生成したアイテムはサイズや位置がばらつき、ストアのグリッドやアップグレード画面で不揃いに見えます。チェーン内のすべての実行で、output_fit に同じ canvas: "FIXED"、width、height を設定し、アイコンには anchor: "CENTER"、立っているものには "BOTTOM_CENTER" を指定して、少し padding を加えます。これで、すべてのティアが同じスプライトサイズになります。
チェーンを確認してからマークする
ティアは一つずつではなく、必ず並べて評価します。compose_image を使うと、行全体の幅のキャンバスにティアごとに1レイヤーを配置し、それぞれに width、height、left のアンカーを設定して、コストなしでチェーン全体を1行に並べて確認できます。どの段階でアイデンティティが崩れたかを見つけ、そのティアを再生成し、修正済みのティアを起点に後続のティアも再実行します。
ある段階を承認したら、記録します。ワークスペースのステータス ID を取得するには list_file_lifecycle_statuses を使います(ワークスペースごとに名前が異なるため、名前で照合してください)。次に set_file_lifecycle_status に承認済みの file_id を渡します。スタジオのルールに基づく自動スコアリングには layer-quality を使います。
実例
「鍛冶画面用の木製盾のアップグレードを5段階で作成します。」
- ティア1は出荷承認済みの盾で、
file_idがあります。 filter.use_case: "image_editing"とfilter.capabilities: {image_editing: true}を指定してlist_base_modelsを実行し、最初の結果を選びます。- 各段階の変更軸を計画します。鉄の帯、鋼鉄の表面、彫刻入りの紋章、ほのかな光を放つ金の縁取り。
- 最初の実行の前に費用を見積もります。ティア2〜5は入力の形状が同じ(同じサイズのファイルが2つ)なので、見積もりに4を掛けます。20 CU を超える場合は、確認を求め、明示的な承認を待ちます。
- 各ティアで、ティア1を
reference_imageに、直前に承認されたティアをinit_imageに指定し、プロンプトには一つの変更軸だけを記述します。output_fit: {canvas: "FIXED", width: 512, height: 512, anchor: "CENTER", padding: 24}、batch_size: 2を設定します。poll_interval_secondsでポーリングし、1つ選んで続行します。 compose_imageで5つのティアを1行に並べ、まとめて確認します。アイデンティティが崩れたティアを再生成し、その後のティアも再生成します。- 5つすべてに、ワークスペースの承認済みステータスを
set_file_lifecycle_statusで設定します。
よくある間違い
- 同じティアで素材、光の効果、装飾を変更する。
- 各ティアを直前のティアだけを基に生成し、アイデンティティが徐々にずれてしまう。
image_editingモデルではなくstyle_referenceを使い、アイテム自体の形状が維持されない。- リスキンでシルエットが変わり、プレイヤーが敵や武器を見誤る。
output_fitを設定し忘れ、ティアごとにサイズや位置が異なる。- チェーン全体ではなく、ティアを一つずつ確認する。
- すでに
file_idがある承認済みの出力を再アップロードする。