1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

大規模なGodotプロジェクト向けのAIアシスタント:ZivaとClaude CodeをPixeloramaで検証

1
Posted at

この記事は https://ziva.sh/blogs/ai-assistant-large-godot-project の日本語版です(英語の原文はZiva.shが2026年11月7日に公開)。

AIアシスタントは、大規模なGodotプロジェクトでも全体を見失わずに作業できるのでしょうか。ZivaとClaude Codeに、Pixeloramaへ同じ機能を追加してもらいました。PixeloramaはGodot 4で書かれたオープンソースのピクセルアートエディターで、GDScriptファイルが249個(約60,000行)、シーンが120個あります。どちらのツールもClaude Opus 5.5を使いました。追加する機能は8つのファイルにまたがります。シェーダー、新しいダイアログのシーンとスクリプト、メニューのコード、ショートカットの一覧、レイヤーエフェクトの一覧、プロジェクト設定、翻訳テンプレートです。

ツールごとに2回ずつ、計4回の実行は、いずれも実行中のアプリでの同じ独立したチェックに合格しました。Zivaは6分と13分で終わり、Claude Codeは2回ともおよそ16分かかりました。自分の作業のテストは、Claude Codeのほうが念入りでした。Zivaのゲームランナーは、待機中で何も操作されていないPixeloramaのスクリーンショットを撮れず、Zivaはプロジェクトのルートに想定外のファイルを残しました。詳しくは以下のとおりです。

ZivaはZiva.shが開発しており、このテストもZiva.shが作成しました。

テストは2026年11月7日に、Linux上のGodot 4.7.2で、Pixeloramaのコミット5b2ebf5(MITライセンス)を対象に実行しました。Zivaは同日の開発ビルド、Claude Codeは2.1.318を使いました。どちらのツールも、推論の設定は既定のままです。1回目の実行は2つのツールで時間が重なり、2回目は同じマシンで同時に開始したため、マシンのCPUを共有していました。ZivaでClaude Opus 5.5を使うにはProプラン(月額$50)が必要です。

タスク

どちらのツールにも、プロジェクトの新しいコピーで、次のプロンプトを一字一句そのまま渡しました(実際に使った英語のプロンプトと、その訳です)。

Add a Sepia color effect to this project (Pixelorama). It should work like the existing color effects:

1. Effects > Color > Sepia opens a dialog with an Intensity slider (0 to 100%, default 100%) and a live preview. Applying it works on the same targets as Desaturation (selected cels, current frame, all frames, all projects, and only the selection when that option is checked), with undo.
2. Sepia gets its own shortcut entry in Preferences > Shortcuts like the other effects (no default key).
3. Sepia is also available as a non-destructive layer effect in the Layer Effects dialog, with the same Intensity parameter.

Follow the project's existing patterns for effects. When you are done, make sure the project still opens and runs without new errors.

訳:このプロジェクト(Pixelorama)にSepia(セピア)のカラーエフェクトを追加してください。既存のカラーエフェクトと同じように動作させてください。

  1. Effects > Color > Sepiaで、Intensity(強度)スライダー(0から100%、既定値は100%)とライブプレビューのあるダイアログが開くこと。適用はDesaturation(彩度を下げる)と同じ対象(選択したセル、現在のフレーム、すべてのフレーム、すべてのプロジェクト、そのオプションにチェックが入っているときは選択範囲のみ)で動作し、元に戻せること。
  2. Preferences > Shortcutsに、ほかのエフェクトと同じようにSepia専用のショートカット項目があること(既定のキーはなし)。
  3. Layer Effectsダイアログで、Sepiaを非破壊のレイヤーエフェクトとしても使え、同じIntensityパラメーターがあること。

エフェクトについては、プロジェクトの既存のパターンに従ってください。完了したら、プロジェクトがこれまでどおり開き、新しいエラーなしで実行できることを確認してください。

大きなプロジェクトでアシスタントが「全体を見失う」のは、まさにこの種の変更です。エフェクトがどこで登録されているかは、プロンプトのどこにも書かれていません。Pixeloramaでは各エフェクトを5か所でつないでいて、1か所でも漏れると、押しても何も起きないメニュー項目、表示されないショートカット、存在しないレイヤーエフェクトのいずれかになります。

ZivaはGodotエディター内で、自動承認をオンにして実行しました。Claude Codeはターミナルで実行しました。プラグイン、MCPサーバー、プロジェクトの指示はなしで、権限は自動承認とし、コマンドラインからGodotと仮想ディスプレイを使える状態にしました。

結果

Zivaの1回目 Zivaの2回目 Claude Codeの1回目 Claude Codeの2回目
実行中のアプリでのチェック 合格 合格 合格 合格
所要時間 6分15秒 12分50秒 16分0秒 15分50秒
費用 Zivaのプラン使用量のうち$1.94 $2.93 $2.70(Claude CodeによるAPI価格での見積もり) $3.58
コンテキストの最大値 137,000トークン 157,000トークン 135,000トークン 164,000トークン
プロジェクトのルートに残ったファイル テスト用のシーンとスクリプト(Zivaが自ら伝えた) Zivaが理由を説明できなかったuntitled.png(Zivaが自ら伝えた) なし なし
自身によるテスト Selected cels(選択したセル)の対象のみ Selected celsと選択範囲のみ 4つの対象すべて、保存と読み込み、82項目のチェック 85項目のチェック

チェックには、すべての実行で同じスクリプトを使いました。実行中のアプリでEffects > Color > Sepiaを開き、青いキャンバスに適用し、元に戻し、選択範囲だけに50%で適用し、ショートカットの項目を確認し、Sepiaをレイヤーエフェクトとして追加します。4回とも同じピクセル値になり、どの実行でも起動ログに新しいエラーは増えませんでした。

Claudeのサブスクリプションで使う場合は、Claude Codeの見積もりではなく定額の料金を払います。Zivaの費用は、プランに含まれる使用量によって変わります。どの実行もモデルのコンテキスト上限には遠く及ばなかったため、要約が必要になるほど長いチャットを各ツールがどう扱うかは、このテストではわかりません。

Pixelorama with the Sepia dialog Ziva built: an Intensity slider at 100 %, a sepia-toned preview, the Only affect selection checkbox and the Selected cels target

Zivaが1,383個のファイルの中で目的の場所を見つけた方法

Zivaはコードのインデックス化も埋め込みも行わず、プロジェクトをモデルに読み込ませることもありません。どちらの実行でも、最初の手順は、スクリプト、シーン、シェーダー、プロジェクト設定、翻訳ファイルを対象にした「desaturat」の検索1回でした。この検索で、既存のDesaturationエフェクトがつながっている場所がすべて見つかりました。そのあと、1回目は17個、2回目は22個のファイルを読み、同じパターンをまねました。

途中で役立ったことがいくつかあり、どれもZivaがGodotエディター内で動いていることによるものです。

  • スクリプトを編集するたびにGDScriptをチェック。 Zivaが.gdファイルを作成または編集するたびに、Godotのランゲージサーバーがそのファイルと、そのファイルに依存するファイルをチェックしました。結果はすべて「No problems in this file or its callers.」(このファイルとその呼び出し元に問題なし)でした。
  • プロジェクト設定はGodot経由。 Zivaはショートカットの入力アクションを、project.godotを手で編集するのではなく、Godotのプロジェクト設定APIで追加しました。1回目では、先に現在の入力マップを読み取りました。
  • スタブではなく本物のアプリ。 ZivaはエディターからPixeloramaのメインシーンを実行し、その出力とエラーを読みました。
  • 次回のためのメモリー。 2回目では、Pixeloramaのコードのテスト方法を記したプロジェクトメモリーをZivaが保存しました。次のチャットは、その情報への手がかりがある状態で始まります。詳しくはメモリーを参照してください。

Claude Codeは、シェルのツールで同じところにたどり着きました。grep、sed、そして仮想ディスプレイ上でコマンドラインから実行するGodotです。変更先のファイルもZivaと同じでした。

Zivaが苦労した点

  • 待機中のPixeloramaで、Zivaのゲームランナーがタイムアウト。 PixeloramaはGodotの低プロセッサーモード(low-processor mode)を有効にしているため、何かが変わったときにしか再描画しません。Zivaのrun_sceneは描画されたフレームを待ってスクリーンショットを撮るため、メインシーンの実行は約35秒でタイムアウトしました。各実行で2回ずつです。原因は確認済みです。低プロセッサーモードをオフにすると、同じ呼び出しでスクリーンショットが返りました。Zivaは、アプリを操作して結果を出力する一時的なテストシーンをつくって回避しました。2回目では、このテストシーンがアプリの描画を続けさせたため、run_sceneもスクリーンショットを返しました。
  • ZivaのスクリプトランナーがPixeloramaのオートロードを読み込めなかった。 単発のGDScriptを実行するランナーが「Identifier not found: Global」と報告したため、Zivaは上記のテストシーンに切り替えました。
  • 想定外に残ったファイル。 1回目はテストシーンとスクリプトをプロジェクトのルートに残し、削除するかどうかを尋ねました。2回目はテストファイルを削除しましたが、テスト中にルートにuntitled.pngが現れ、Zivaはそのことを指摘しました。
  • テストがClaude Codeより少ない。 ZivaがテストしたのはSelected celsの対象だけで、Ziva自身もそう伝えました。Claude Codeは4つの対象すべてに加えて、保存と読み込みもテストしました。Claude Codeは1回目で、Pixeloramaの共通エフェクトコードにありそうなバグも報告しました。エフェクトをすべてのプロジェクトに適用すると、ほかのプロジェクトが現在のプロジェクトのサイズで切り取られるというものです。該当する行を読んで報告と一致することは確認しましたが、再現はしていません。
  • Full Game Playtest Agentは実行されなかった。 Zivaは両方の実行で使おうとしましたが、ローカルのテスト環境の認証情報の問題で、開始前に止まりました。このテストからは、Full Game Playtest Agentについて良いとも悪いとも言えません。

このテストでわからないこと

対象は1つのプロジェクト、1つの機能、ツールごとに2回の実行、1つのモデルです。このタスクは、多くのファイルにまたがる機能の追加でした。多数のシーンにまたがるリネームやファイルの移動ではなく、そちらはまだテストしていません。どちらのツールも、チャットを要約する必要はありませんでした。ほかのモデル、もっと大きなプロジェクト、もっとあいまいなプロンプトでは、結果が異なる可能性があります。

プロジェクトが大きくなってAIが全体を見失うときは

今回のテストで役立った習慣で、どのアシスタントでも使えます。

  • 既存の例を示す。 「Desaturationと同じように動作させる」という指示で、どちらのツールもどこを見ればよいかがわかりました。プロジェクト内の似たシーン、スクリプト、仕組みを名前で示しましょう。
  • プロジェクトのルールを書き出す。 Zivaはプロジェクト内のAGENTS.mdファイルを読み、Claude CodeはCLAUDE.mdを読みます。フォルダー構成、オートロード、規約をそこに書いておけば、アシスタントがチャットのたびに調べ直さずに済みます。
  • プロジェクトを実行させる。 どちらのツールも、報告の前にPixeloramaを実行してエラーを読みました。テキストを編集するだけのアシスタントには、読み込みに失敗するシーンが見えません。
  • 新しいタスクには新しいチャットを。 古いファイルの内容でいっぱいの長いチャットでは、今の変更に使える余地が減ります。

2つのツールをより広く比較した記事はZiva vs Claude Code for Godot(英語)です。Claude Codeを使っていて、その中でZivaのGodotツールを使いたい場合は、ZivaをローカルMCPサーバーとして実行できます。

よくある質問

AIアシスタントは大規模なGodotプロジェクトを扱えますか?

今回のテストでは扱えました。どちらもClaude Opus 5.5で動くZivaとClaude Codeに、Pixelorama(GDScriptファイル249個、約60,000行、シーン120個)へSepiaエフェクトを追加するよう依頼しました。変更は8つのファイルにまたがり、シェーダー、ダイアログのシーンとスクリプト、メニューのコード、ショートカットの一覧、レイヤーエフェクトの一覧、プロジェクト設定、翻訳テンプレートに及びました。4回の実行(ツールごとに2回)はすべて、実行中のアプリでの同じ独立したチェックに合格しました。1つのプロジェクトと1つのタスクでの結果なので、ベンチマークではなく1つの例として見てください。

Godotプロジェクトが大きくなると、AIが全体を見失うのはなぜですか?

モデルが見られるのはコンテキストウィンドウの中身だけで、大きなプロジェクトはそこに収まりません。エージェントは正しいファイルを検索し、そのファイルだけを読み、チャットが長くなっても自分のメモを保つ必要があります。Pixeloramaでのテストでは、Zivaはプロジェクトの1,383個のファイルのうち17個と22個を読み、コンテキストの最大値は137,000トークンと157,000トークンで、Claude Opus 5.5の上限を大きく下回りました。Zivaは、GDScriptの編集をすべてGodotのランゲージサーバーでチェックします。新しいチャットにも引き継がれるプロジェクトメモリーを保存でき、プロジェクトのルールを書いたAGENTS.mdファイルを読み、長いチャットがモデルの上限に近づくと自動で要約します。

Zivaは多数のGodotファイルにまたがるリファクタリングができますか?

今回テストしたのは、リネームではなく、複数のファイルにまたがる機能の追加です。Zivaはシェーダー、ダイアログのシーンとそのスクリプトを作成し、既存の5つのファイルを編集しました。その中には、Godot自身のプロジェクト設定APIを通したproject.godotの編集も含まれます。Zivaの2回の実行はどちらもチェックに合格しました。多数のシーンにまたがる大規模なリネームや移動は、まだテストしていません。

大規模なGodotプロジェクトには、Claude CodeとZivaのどちらが向いていますか?

このタスクでは、どちらも動作するコードをつくりました。Zivaは6分と13分で終わり、プランの使用量として$1.94と$2.93を消費しました。Claude Codeはどちらも約16分かかり、API価格での見積もりは$2.70と$3.58でした。テストはClaude Codeのほうが念入りでした。4つの適用対象すべてと保存・読み込みを確認し、一方の実行ではPixeloramaの共通エフェクトコードにありそうなバグも報告しました。Zivaがテストしたのは既定の対象だけで、どちらの実行でもプロジェクトのルートにファイルを残し、Zivaはそのことを指摘しました。

Zivaはプロジェクト全体をインデックス化しますか?

いいえ。Zivaには、コードの埋め込みもセマンティックインデックスもありません。必要になったときに、ripgrepベースのファイル検索とテキスト検索でプロジェクトを検索し、ファイルを範囲ごとに読みます。大きなプロジェクトの最初のチャットで表示されることがある「Indexing project」というメッセージは、ZivaのUndo(元に戻す)に使う履歴を作成しているもので、コードのインデックスではありません。

この記事の原文(英語):https://ziva.sh/blogs/ai-assistant-large-godot-project

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?