コーディングエージェントでGB Studio用のBGM制作をSkill化

お疲れ様です。

世間では相変わらず猫も杓子もAIですが、情報のキャッチアップが大変ですよね。分かります。

いろんな技術も少し枯れてきたぐらいで手を付け始める私ですが、今日はちょっとSkillに挑戦してみた話です。

そろそろAIの記事を一つぐらい書いとこうかなという。

正直ピンときてなかった

MCPやSkill、プラグインなど、さまざまな概念が出てきており、NSやテックブログを見れば「何ができるのか」は理解できるのですが、実際に「自分で何か作りたいものがあるか」というと、正直まだピンと来ていない状況でした。

MCPもわざわざインストールせずにコマンド実行してもらえばよくない?とか、Skillも都度スクリプト生成してお願いすれば良くない?とか。
トークン消費が増えてしまい非効率だけど、まぁいっかと思ってた時期がありました。

もともとデフォ厨(※1)なので、余計な設定入れたくないタイプの人間ってのもあります。

さて、今日はそんなデフォ厨な私が、Skillを作ってみたというお話です。

きっかけ:GB Studioの音源作成

作ってみたと言うより、「こういうのSkill化したほうがいいんじゃね?」と自然になった感じです。

今、GB Studioというゲームボーイのゲーム作成用フレームワークでゲームを開発しており、これはGUIでステージやキャラクター、ギミックなどを開発できるとっても便利なツールです。

このツールの中に音源(BGM・効果音)を作成できる機能があるのですが、フォーマットの知見と音楽の知識がないとちゃんとしたBGMを作成するのが難しい。
ゲームステージやシーンに合わせた作曲スキルはなんて皆無です。

最初はCoworkで都度お願いしていた

というわけで、最初はCoworkを使ってBGMの作成をAIにお願いしていました。
フォーマットに関するドキュメントを読んでもらったり、実際のツールの画面を見てもらったり、いろいろ試行錯誤して、なんとか作成してもらうことができました。

プログラムで音源を生成するぐらいならAIがなくてもできたかもしれないですが、作曲の部分はさすがに難しいので、ここはAIに任せることができてよかったです。

「毎回お願いするの面倒だな」からのSkill化

そして、毎回Coworkにお願いして作成してもらうのが手間になってきた。

1、2個作成したらもう使わないだろうと思ってたが、意外と使う。
効果音とかも増えてきて、ちょっとこだわりたくなってきて使う頻度が上がってきた。作成して音源確認して、やり直して……だんだん面倒くさくなってきた。

こういうのテンプレート化してClaude Code CLIとかでも使えればなー。……こういう時にSkillなんじゃね!?ってなりました。

Skill化作業

早速、音源作成をしていたセッションで以下ポイントに気をつけて、skill化を頼んだら速攻作ってくれました。仕事がはえー!

1. scriptsに共通スクリプトを入れる

Skill化する前は、毎回ゼロからPythonスクリプトを生成してもらっていた。UGEのバイナリ構造を組み立てるコードだけで100行以上あるので、毎回それを書かせるのは時間の無駄だった。
scripts/uge_template.py にテンプレートを入れておくと、Claudeはそれをベースに曲の中身だけ変えて生成してくれる。効果音も同様で sav_template.py に共通パターン(ジャンプ、コイン、爆発等)を定義しておけば、「ピンポーン追加して」だけで済む。
要するに「毎回同じコードを書かせない」ためのスクリプト置き場。ここが一番効いたポイントかも。

2. referencesにフォーマット仕様を入れる

Skill化する前は仕様を確認するのに毎回GitHubのソースコードを読みに行ってもらっていた。時間もかかるし、たまに読み間違えてバグるファイルができたりもした。
仕様を一度 references/uge_format.md と references/sav_format.md にまとめておけば、以降は外部を参照せずにサクッと正しいファイルを作ってくれる。「Claudeが毎回調べ直す必要がある情報」はreferencesに入れておくと良い。

出来上がったもの

1
2
3
4
5
6
7
8
9
gb-music/
├── SKILL.md (メインの手順書)
├── scripts/
│ ├── uge_template.py (UGE生成テンプレート)
│ ├── sav_template.py (SAV生成テンプレート + 汎用SFXパターン)
│ └── audio_to_uge.py (MP3/M4AUGE変換ツール)
└── references/
├── uge_format.md (UGE v6バイナリ仕様)
└── sav_format.md (FX Hammer SAV仕様)

あとは、これをプロジェクトの .claude/skills/ 以下に放り込めば、あら不思議、引き続き音源を作成してくれるじゃありませんか。

ただ、この状態だとSkillを認識してくれるケースとくれないケースがあるので、CLAUDE.mdとかAGENTS.mdに「BGM/効果音の作成はgb-musicスキルを使って」という一文だけ足してあります。

まとめ

というわけで、Skill便利でした。

Skillは「何度も同じことをAIにお願いしている」と気づいたときが作りどきだと思う。最初から設計するものじゃなくて、使ってるうちに自然と「これまとめたいな」ってなる。そのタイミングで作れば、ちゃんとプロジェクトやチームにフィットしたものになる。

Skill以外にも、コーディングエージェントをとりまく概念はいろいろあります。使いこなせなくても、単語だけでも知っておくとこういった発想につながるので、損はないと思います。

リポジトリはこちら:
https://github.com/kurum-inc/gb-music


作成中のゲームはこちら!BGMの出来栄えをご確認ください!

では👋


※1 デフォ厨:デフォルト設定のまま使いたがる人のこと

Please share