言語を切り替える
テーマを切り替える

Cocos Creator AIアセット整理実践:生成からインポートまでの完全ワークフロー

頭の中には無数のクールなキャラクター、シーン、アイテムのアイデアがあるのに、予算と時間が1人のキャラクターのラフを描く分しかない。アートリソースという、クリエイティビティと製品の間に横たわる巨大な溝。これが原因で、どれだけのゲームアイデアが最終的にドキュメントの中に留まることになったでしょう。

従来のフローでは、1人の2Dキャラクターをデザインから使用可能な状態にするまで、数千元のコストがかかり、期間は週単位です。現在、AIツールを使えば10分でキャラクター、ボーン設定、スキニング、アニメーションを完遂でき、コストは元の10分の1に削減されます。しかし問題があります。AI生成の素材をどうやってCocos Creatorで使用可能なリソースに変換するのか?インポート後にディレクトリが乱雑になり、後からメンテナンスが困難になり、Draw Callが高すぎてゲームがカクつく——これらの落とし穴を私はすべて経験しました。

この記事では、AI生成のアート素材から始め、Cocos Creatorリソースディレクトリの標準構造、命名規約、アトラス作成、パフォーマンスチューニングの完全なプロセスをステップバイステップで解説します。読み終わると、コンセプトからエンジンで使用可能な状態まで、このパスには確かな道筋があることがわかります。

Cocos Creatorリソースディレクトリ構造の基礎

Cocos Creatorプロジェクトを開くと、いくつかのフォルダが見えます:assets、library、local、settings、temp。これほど多くのディレクトリがある中で、どれが本当の「リソース管理場所」なのか?

答えは1つだけ:assets。

assetsディレクトリは、エディタのリソースマネージャーに表示される唯一のディレクトリです。画像、アニメーション、プレハブ、スクリプト、すべてここに配置します。他のフォルダ——libraryはキャッシュ、localはローカル設定、settingsはプロジェクト設定、tempは一時ファイル——は気にする必要なく、削除しないでください。

metaファイル:各リソースの「IDカード」

assetsディレクトリには面倒なものがあります。各ファイルの横に.metaファイルが付いています。例えばknight.pngがあれば、隣に必ずknight.png.metaがあります。

このmetaファイルは、Cocos Creatorがリソースを管理する中核メカニズムです。リソースのuuid(一意識別子)、バージョン情報、サブリソース情報を記録しています。metaファイルを削除すると、エンジンはそのリソースを見つけられなくなります。リソースファイルの名前変更や移動には、metaファイルを同期して処理する必要があります。そうしないと、参照がすべて切断されます。

私が初めてプロジェクトを担当した時、metaファイルが邪魔に感じて、一気に全部削除してしまいました。結果は?プロジェクト全体が廃棄され、すべてのリソース参照が「Missing」に。痛い教訓でした。

resourcesディレクトリ:動的ロードの特別な通路

assetsディレクトリの下に、特別なサブディレクトリがあります:resources。ここに配置されたリソースは、コードで動的にロードできます:

resources.load('sprite-frames/background', cc.SpriteFrame, (err, spriteFrame) => {
    // 動的ロードされたSpriteFrame
});

ただし、resourcesディレクトリには落とし穴があります。ビルド時にこのディレクトリ下のすべてのリソースがパッキングされ、使用しているかどうかにかかわらず含まれます。そのため、すべてをresourcesに入れないでください。本当に動的ロードが必要なリソースだけを配置してください。多言語切り替えのテキストや、プレイヤーの進行度に応じてアンロックされるシーンなどが該当します。

よくある落とし穴

いくつかのよくある間違い:

  • project.jsonファイルを手動で編集——このファイルはエディタが自動的にメンテナンスします。手動で変更すると問題が発生します
  • libraryフォルダを削除——削除後にプロジェクトを開き直すと再構築されますが、時間がかかります。大規模プロジェクトでは数分待つ必要があります
  • すべてのリソースをresourcesに入れる——ビルドサイズが爆発的に増加し、読み込み時間が長くなります
  • metaファイルの同期を無視——参照が切断され、プレハブ内の画像がすべてMissingになります

AI生成アート素材の実践ツール

現在、AIアートツールが数多く登場していますが、どれを選べばいいのでしょう?私の実際の使用経験から、インディーズ開発者に適した3つのソリューションをおすすめします。

SOONプラットフォーム:ボーンアニメーション一括生成

SOONはゲームキャラクターアニメーションに特化したAIプラットフォームです。文章で「鎧を着たカートゥーン騎士、剣を持って戦闘ポーズ」のように記述すると、キャラクター、ボーン設定、スキニング、アニメーションを自動生成し、Spine形式のボーンアニメーションをエクスポートできます。

従来のフローでは、キャラクターデザイン、ボーン設定、スキニング、アニメーション設計、各段階で専門家が必要で、期間は週単位です。SOONはこの期間を10分に短縮します。新浪网の報道によると、従来のフローと比較してコストは80%-90%削減されます。

私はSOONを使って横スクロールアクションゲームの主人公を作成しました。10分後、36セットのアニメーションを直接エクスポート:待機、歩行、走行、ジャンプ、攻撃、ダメージ、死亡……各アニメーションがスムーズで自然。アーティストに依頼していたら、見積もりを見て心が折れていたでしょう。

Holopix AI:ゲーム特化のAIイラスト+スマート切り抜き

Holopix AIはゲーム開発専用に設計されたAIイラストツールです。特に便利な2つの機能があります:ワンクリック原稿生成とワンクリック切り抜き。

ワンクリック原稿生成:キャラクター記述を入力すると、複数のスタイルセットを生成して選択できます。欧米スタイル、アニメスタイル、ピクセルスタイル、それぞれ専用モデルでトレーニングされており、汎用AIツールよりゲームニーズに適しています。

ワンクリック切り抜き:生成されたキャラクターには背景が付いていますが、ゲームでは透明背景のスプライト画像が必要です。Holopix AIの切り抜き機能でワンクリックで完璧に処理でき、エッジも綺麗で、Photoshopで手作業する必要がありません。これはアートスキルのないプログラマーにとって救いです。

万象熔炉:ローカルデプロイのSDXL

万象熔炉(Anything XL)は、ローカルデプロイ可能なStable Diffusion XLツールです。その利点は:プライバシーリークのリスクがなく、使用回数の制限がありません。

プロジェクトに機密性が必要で、アートのアイデアをクラウドプラットフォームにアップロードしたくない場合、万象熔炉は良い選択肢です。デプロイには少し手間がかかり、GPUのサポートが必要ですが、デプロイ完了後は生成速度が安定し、素材の品質も制御可能です。

ツール比較と選択のアドバイス

ツール機能の特徴コスト適用シナリオ
SOONボーンアニメーション一括生成プロジェクト単位課金キャラクターアニメーションが必要なプロジェクト
Holopix AIゲーム特化イラスト+スマート切り抜き基本機能無料+有料プラン透明背景のスプライト画像が必要
万象熔炉ローカルデプロイSDXLハードウェアコスト+無料使用機密性が必要なプロジェクト

私の選択戦略:キャラクターアニメーションはSOON、静的スプライト画像はHolopix AI、機密性が必要な素材は万象熔炉。この3つのツールを組み合わせることで、アートニーズの大部分をカバーできます。

AI生成からCocosインポートまでの完全プロセス

AIで生成した素材を手に入れたら、次はエンジンで使用可能なリソースに変換します。このステップに最も多くの落とし穴があります。一つずつ解説していきます。

フォーマット変換と背景処理

AI生成の画像には通常、背景が付いています。ゲームでは透明背景のスプライト画像が必要なので、最初のステップは背景の除去です。

背景除去ツールの例:

  • Transparify:Webベースのツール、画像をアップロードしてワンクリックで背景除去、エッジ処理も綺麗
  • SpriteCut AI:ゲームスプライト専用設計、キャラクターの輪郭を認識し、余分な空白を自動トリミング
  • Holopix AI内蔵切り抜き:生成時に透明背景オプションを選択すれば、ワンステップで完了

処理後、必ずAlphaチャンネル付きのPNG形式でエクスポートしてください。JPGは透明をサポートしていないので使用しないでください。

アトラス作成の実践

単一のスプライト画像を直接インポートすると、各スプライトが1回のDraw Callをトリガーします。10個のスプライトなら10回のDraw Call、100個なら100回。ローエンドデバイスでは、カクつきが目に見えます。

アトラス(Atlas)が解決策です。複数のスプライトを1枚の大きな画像にパッキングすると、エンジンは1回のDraw Callで、そのアトラスを参照するすべてのスプライトをレンダリングできます。

TexturePacker設定のポイント

  1. TexturePackerを開き、スプライト画像ファイルを追加
  2. Output形式でcocos2d-xを選択し、plist+pngファイルをエクスポート
  3. Trim Modeでtrimを選択。透明ピクセルをトリミングするが、元の画像枠は変更しない(cropやflush positionを選ぶと、アニメーションの位置ズレが発生します)
  4. Max Sizeはターゲットデバイスに応じて調整。一般的に2048x2048で十分

Cocos Creator 3.0はTexturePacker v4.x未満の形式をサポートしていません。古いバージョンのTexturePackerを使用している場合は、最新版にアップグレードしてください。

Cocos Creatorへのインポート手順

TexturePackerから2つのファイルがエクスポートされます:.plist.png。この2つのファイルは一緒にCocos Creatorにインポートする必要があります。

インポート方法:2つのファイルをassetsディレクトリにドラッグ&ドロップ。ドラッグ後、リソースマネージャーにAtlasリソースが表示され、展開するとすべてのSpriteFrameが確認できます。

各SpriteFrameは個別に使用できます。SpriteコンポーネントのSpriteFrameプロパティボックスで、対応するフレームを選択すれば、そのスプライトを表示できます。

完全な事例:2D横スクロールアクションゲームのキャラクターインポート

SOONで騎士キャラクターを生成し、36セットのアニメーションがあるとします。完全なインポートフロー:

Step 1:AI生成

  • SOONプラットフォームで「鎧を着たカートゥーン騎士」と入力
  • アクションタイプを選択:待機、歩行、攻撃、ジャンプなど
  • PNGシーケンスをエクスポート(各アクションは複数フレーム)

Step 2:背景透過

  • PNGシーケンスをTransparifyにインポート
  • ワンクリックで背景を除去し、透明PNGをエクスポート

Step 3:アトラスパッキング

  • TexturePackerですべてのPNGフレームを追加
  • Output形式はcocos2d-xを選択
  • knight_atlas.plistとknight_atlas.pngをエクスポート

Step 4:エンジンへのインポート

  • plistとpngをassets/characters/hero/sprites/にドラッグ
  • metaファイルが自動生成されるのを待つ

Step 5:シーンでの使用

  • Spriteノードを作成
  • SpriteFrameプロパティでknight_atlas内の対応フレームを選択
  • Animationコンポーネントでフレームアニメーションを再生し、異なるアクションを切り替え

このプロセスを完了すれば、騎士キャラクターがゲーム内で動きます。36セットのアニメーションがすべて使用可能で、Draw Callは1回だけ(同じアトラスから来ているため)。

リソースディレクトリ命名規約とベストプラクティス

プロジェクトが半分進んだ時点で、assetsディレクトリが混沌としている:画像、スクリプト、プレハブが混在し、命名も適当で、リソースを探すのが大海から針を探すようなもの。このシーンはあまりにも一般的です。私の実際のプロジェクト経験から、Cocos Creatorのリソースディレクトリ規約を提供します。

基礎命名規則

核心原則:1つのフォルダには1種類のファイルのみ

texture、prefab、animationを同じディレクトリに入れないでください。タイプ別に分けて保存すれば、探しやすく、メンテナンスもしやすいです。

命名形式はUnity/Unrealの業界標準を参照:

prefix_theme_description_suffix

例:

  • char_knight_idle_a.png — キャラクター、騎士、待機、albedo(ベースカラー)
  • char_knight_attack_01.png — キャラクター、騎士、攻撃、シーケンス番号01
  • ui_btn_play_9slice.png — UI、ボタン、再生、9スライス

suffixの約束:

  • _a — albedo、ベースカラーテクスチャ
  • _n — normal、法線マップ
  • _9 — 9slice、9スライス画像

この命名規則は面倒に見えますが、メリットは明らかです。ファイル名を見れば何をどこに使うかがわかります。チームコラボレーションでは、命名規約が最もコミュニケーションコストの低い方法です。

推奨ディレクトリ構造テンプレート

ゲームの機能モジュール別に分類し、リソースタイプ別ではありません。なぜ?開発時に考えるのは「キャラクターシステム」であり、「すべてのテクスチャ」ではないからです。

assets/
├── characters/
│   ├── hero/
│   │   ├── textures/         # キャラクターテクスチャ
│   │   ├── animations/       # アニメーションリソース
│   │   ├── sprites/          # SpriteFrame
│   │   └── prefab/           # キャラクタープレハブ
│   ├── enemies/
│   │   ├── textures/
│   │   ├── animations/
│   │   ├── sprites/
│   │   └── prefab/
│   ├── npcs/

├── scenes/
│   ├── level01/
│   │   ├── textures/         # シーンテクスチャ
│   │   ├── tilemaps/         # タイルマップ
│   │   ├── prefab/           # シーンプレハブ

├── ui/
│   ├── textures/             # UIテクスチャ
│   ├── fonts/                # フォントファイル
│   ├── prefab/               # UIプレハブ

├── audio/
│   ├── effects/              # 効果音
│   ├── music/                # BGM

├── scripts/                  # TypeScriptスクリプト
│   ├── components/           # カスタムコンポーネント
│   ├── utils/                # ユーティリティクラス

├── resources/                # 動的ロードリソース(慎重に使用)
│   ├── languages/            # 多言語テキスト
│   ├── unlock-scenes/        # アンロックシーン

この構造のメリット:各モジュールが自己完結し、モジュール間で干渉しません。heroキャラクターを修正する時は、characters/heroディレクトリ内で操作するだけで、他のリソースを誤って変更することはありません。

よくある間違いと回避ガイド

いくつかの落とし穴を経験しました:

落とし穴1:ファイルの混在
hero.pnghero.prefabを同じディレクトリに入れると、後の整理が大混乱に。texturesには画像、prefabにはプレハブと分けて保存してください。

落とし穴2:命名の適当さ
image1.pngnew_picture.png未命名.png……このような命名だと、1ヶ月後には自分でも何かわからなくなります。規約に従った命名を使えば、ファイル名自体がドキュメントになります。

落とし穴3:metaファイルの無視
リソースの名前変更や移動時、metaファイルの同期処理を忘れる。結果:プレハブ内の参照がすべてMissingになり、再参照に時間と労力がかかります。

Cocos Creatorにはメカニズムがあります:エディタ内で名前変更や移動を行うと、metaファイルが自動的に同期されます。そのため、すべてのリソース操作はエディタ内で完了させ、ファイルシステムを直接操作しないでください。

metaファイル管理の核心的な注意事項

metaファイルとリソースファイルはバインド関係にあります。いくつかの核心ルール:

  1. 同名同一ディレクトリknight.png.metaknight.pngと同じディレクトリに存在する必要があります
  2. 削除不可:metaを削除すると、uuidが失われ、参照がすべて切断されます
  3. 手動名前変更不可:metaファイルの名前を変更すると、エンジンがリソースを見つけられなくなります
  4. エディタ内操作:名前変更、移動、削除はすべてエディタのリソースマネージャーで操作

ファイルシステム外で操作する必要がある場合(一括インポートなど)、インポート後にmetaファイルが自動生成されるのを待ち、このプロセスを中断しないでください。大規模プロジェクトのインポートには数分かかる可能性があるため、辛抱強く待ってください。

パフォーマンスチューニング:アトラス作成とDraw Call制御

ゲームをリリースした後、プレイヤーから「カクつく」「フレーム落ちする」というフィードバックがありました。調査の結果、Draw Callが120+であることが判明。ローエンドデバイスでは全く耐えられません。

Draw Callとは?1つのスプライトをレンダリングするたび、エンジンはGPUに1回の描画命令を送信します。送信回数が多すぎると、CPU-GPU間の通信オーバーヘッドが爆発し、フレームレートが30以下に低下します。

アトラスが必要な理由:Draw Callの原理

直感的な例を挙げましょう:

ゲームに50個のUI要素があるとします:背景、ボタン、アイコン、テキストボックス……各UI要素が独立したSpriteの場合、エンジンは50回のDraw Callを送信する必要があります。

この50個のUI要素をすべて1枚のアトラスにパッキングすれば、エンジンは1回のDraw Callを送信するだけです。1回のレンダリング命令で、GPUはアトラス全体のデータをロードし、SpriteFrameに基づいて異なる領域を切り取って表示します。

データ比較:あるプロジェクトでは調整前Draw Call 120+、調整後10以下に削減。フレームレートは25fpsから60fpsに向上。ローエンドデバイスでの体験は目に見えて改善されました。

動的アトラスメカニズムの詳細

Cocos Creatorには自動調整メカニズムがあります:動的アトラス(Dynamic Atlas)。

原理:エンジンが実行時に自動的に散らばった画像を一時的なアトラスに統合します。手動パッキングが不要で、エンジンがやってくれます。

制御方法:SpriteFrameにPackableプロパティがあります。Packableをチェックすると、このSpriteFrameは動的アトラスに参加します。チェックを外すと、参加しません。

ただし、動的アトラスには限界があります:

  1. 32枚以下の散らばった画像のみサポート、それを超えると無効
  2. 実行時の統合で、一定のオーバーヘッドがある
  3. 不安定で、散らばった画像の数が変化するとアトラスが再構築される

そのため、正式なプロジェクトでは手動でのアトラスパッキングを推奨します。動的アトラスは迅速なプロトタイピングに適していますが、正式リリースのプロジェクトには適していません。

自動アトラス設定とビルドフロー

Cocos Creator 3.xには内蔵機能があります:自動アトラス(Auto Atlas)。

使用方法:

  1. assetsディレクトリにAutoAtlasリソースを作成
  2. パッキングするSpriteFrameを追加
  3. プロジェクトビルド時に「自動アトラス」オプションをチェック
  4. ビルド完了後、散らばった画像が自動的にアトラスに統合

自動アトラスのメリット:ビルド時に自動処理され、手動パッキングの手間が省けます。

ただし注意点があります:ビルド後のアトラスファイルはビルド出力ディレクトリにあり、assetsディレクトリにはありません。開発時には散らばった画像が表示され、ビルド後だけアトラスになります。デバッグ時はこの点を覚えておいてください。

パフォーマンス調整効果の定量化

アトラス調整の効果を検証するには?

Cocos Creatorのデバッグパネルを開き、Draw Callの数値を確認します。調整前の数値を記録し、調整後と比較します。

120+
アトラス未使用 Draw Call
ローエンドデバイスの典型値
10以下
アトラス使用 Draw Call
最適化後の効果
25fps → 60fps
フレームレート向上
ローエンドデバイス実測比較
Source: CSDNブログパフォーマンステストデータ

フレームレートが倍増し、カクつきが消失しました。これがアトラス調整の価値です。

さらに、アトラスはメモリオーバーヘッドも削減します。テクスチャ切り替えが減り、GPUが異なるテクスチャデータを頻繁にロードする必要がなくなります。メモリ使用量がより安定し、GCの負荷が低下します。

まとめ

AI生成のアート素材からCocos Creatorで使用可能なリソースまで、このパスの核心は標準化と自動化にあります。

AIツール——SOON、Holopix AI、万象熔炉——はアートコストを元の10分の1に削減します。しかし、素材生成は最初のステップに過ぎません。エンジンへのインポート、規約あるディレクトリ構造の確立、アトラスパッキング、Draw Callの制御——これらのプロセスがプロジェクトの長期的なメンテナンス性を決定します。

いくつかのポイントを覚えておいてください:

  • assetsディレクトリは唯一のリソース管理場所、他のフォルダは削除しないで
  • metaファイルはリソースのIDカード、すべての操作はエディタ内で完了
  • ディレクトリ構造は機能モジュール別に分類、1つのフォルダには1種類のタイプのみ
  • アトラスパッキングはパフォーマンス最適化の必須項目、Draw Callは100+から10以下に削減

小さなプロジェクトから実践を始めることをお勧めします:SOONまたはHolopix AIでキャラクターを生成し、この記事のフローに従ってCocos Creatorにインポートし、規約あるリソースディレクトリを確立してください。アートリソース管理がもはや頭痛の種ではなく、再現可能なワークフローであることがわかるでしょう。

このプロセスが確立されれば、大規模プロジェクトのリソース管理も自然とスムーズになります。

AIアート素材をCocos Creatorにインポートする完全プロセス

AI生成からエンジンで使用可能な状態までの標準化ワークフロー。キャラクター生成、背景処理、アトラスパッキング、シーンでの使用を含みます。

⏱️ 目安時間: 15 分

  1. 1

    ステップ1: AIでキャラクター生成

    SOONプラットフォームでキャラクター記述(例:「鎧を着たカートゥーン騎士」)を入力し、アクションタイプ(待機、歩行、攻撃など)を選択してPNGシーケンスをエクスポートします。
  2. 2

    ステップ2: 背景透過処理

    PNGシーケンスをTransparifyにインポートするか、Holopix AIの内蔵切り抜き機能を使用して、ワンクリックで背景を除去し、透明PNGをエクスポートします。
  3. 3

    ステップ3: アトラスパッキング

    TexturePackerですべてのPNGフレームを追加。Output形式はcocos2d-x、Trim Modeはtrimを選択し、knight_atlas.plistとknight_atlas.pngをエクスポートします。
  4. 4

    ステップ4: エンジンへのインポート

    plistとpngファイルをassets/characters/hero/sprites/ディレクトリにドラッグ&ドロップし、metaファイルが自動生成されるのを待ちます。
  5. 5

    ステップ5: シーンでの使用

    Spriteノードを作成し、SpriteFrameプロパティでアトラス内の対応フレームを選択。Animationコンポーネントでフレームアニメーションを再生し、異なるアクションを切り替えます。

FAQ

AI生成のアート素材は直接Cocos Creatorにインポートできますか?
通常、フォーマット変換が必要です。AI生成の画像は背景が付いていることが多く、まず背景を除去して透明PNGにする必要があります。ボーンアニメーション(SOONなど)はSpine形式で直接エクスポート可能。静的スプライト画像はTexturePackerでアトラスにパッキングする必要があります。
resourcesディレクトリには何を置くべきですか?
動的ロードが本当に必要なリソースのみを配置してください。多言語テキスト、進行度に応じてアンロックされるシーンなどが該当します。すべてのリソースをresourcesに入れると、ビルドサイズが肥大化します。通常のリソースはassetsの対応するディレクトリに配置すれば十分です。
metaファイルは削除または手動で編集できますか?
できません。metaファイルはリソースの一意識別子(uuid)を記録しており、削除すると参照が切断され、手動編集はエンジンがリソースを見つけられなくなります。すべてのリソース操作(名前変更、移動、削除)はCocos Creatorエディタ内で行う必要があります。
Draw Callが高すぎるとどのような問題が発生しますか?
Draw Callが高すぎるとCPU-GPU間の通信オーバーヘッドが増大し、フレームレートが低下してゲームがカクつく原因となります。特にローエンドデバイスで顕著です。アトラスパッキングにより複数のスプライトを1回のDraw Callに統合でき、パフォーマンスが大幅に向上します。
アトラス最適化の効果を検証するには?
Cocos Creatorのデバッグパネルを開いてDraw Callの数値を確認します。最適化前は通常100以上、最適化後は10以下に削減できます。フレームレートは25fpsから60fpsに向上し、効果は目に見えてわかります。
TexturePackerのTrim Modeは何を選べばいいですか?
trimモードを選択します。透明ピクセルをトリミングしますが、元の画像枠は変更しません。cropやflush positionは選択しないでください。これらのモードはアニメーションの位置ズレを引き起こします。

7 min read · 公開日: 2026年5月20日 · 更新日: 2026年5月21日

関連記事

コメント

GitHubアカウントでログインしてコメントできます