---
title: "なんで GPT より出来が悪いの？14 億 token を燃やして Live2D を 1 体バインドした話（第 1 版）"
description: "Session の中でいちばんイラッとした自分の文句は「機能は全部あるよ。でも欲しかったのはいろんな動きであって、目玉を吹っ飛ばすことじゃない」でした。"
author: "kidneyweakx"
published: 2026-09-07T00:00:00.000Z
updated: 2026-10-29T11:48:21.540Z
lang: ja
tags: ["ai", "live2d", "claude-code", "個人開發", "踩坑"]
canonical: https://kidneyweakx.com/blog/session-live2d-daughter?lang=ja
alternate_zh_tw: https://kidneyweakx.com/blog/session-live2d-daughter.md
alternate_en: https://kidneyweakx.com/blog/session-live2d-daughter.md?lang=en
---

# なんで GPT より出来が悪いの？14 億 token を燃やして Live2D を 1 体バインドした話（第 1 版）

> Session の中でいちばんイラッとした自分の文句は「機能は全部あるよ。でも欲しかったのはいろんな動きであって、目玉を吹っ飛ばすことじゃない」でした。

今月いちばん token を燃やした session は、仕事でもハッカソンでもなく、このブログの右下にいる Live2D の女の子でした。

3 日ちょっと、context の爆発とやり直しが 4 回、1 つの session で約 **14.7 億 token**（ほとんどはキャッシュ読み込みで、output は約 280 万）。最終的に、まばたきして、首を振って、手も振れるようになりました。過程はだいたい、僕がずっと罵って、AI がずっと謝って、そしてずっと作り直す、の繰り返しです。

（ここが妙に AI っぽいのは、マジで AI に集計させたからです）

まず彼女が誰なのか。名前は 希夜 Kiya、僕のかわいい娘です。

作ったきっかけはちょっと笑える話で、ある NFT を手に入れたら運営チームが飛んだんですよね。考えれば考えるほど腹が立ってきて。**プロジェクト側が価値を与えないなら、この絵には自分で価値を与えてやる。** というわけで、まず NovelAI で Image2Image を試して最初のアイコンを作りました。いちばん最初の Live2D 版は Gemini の実力を試すためのもので、ついでにブログの右下に立ってもらいました。gemini-cli の使用量がまだ実質無制限で、agy と組み合わせれば画像を無限に生成できた頃に作った最初のセットです。

この記事は、新しい構成で作った第 1 版の記録です。彼女はまだ調整中で、たぶん続編も書きます。もう「動けば OK」だった Gemini 時代とは違います。

<br />

## 第 1 ラウンド：モデルは壊れてない、一度も動いてなかった

最初の依頼はシンプルでした。デスクトップに以前作った `12-15-daughter1.cmo3` があって、PC には Cubism Editor が入っている。これを**無料版で開ける**バージョンにしてほしい、と。その旧版の作り方は簡単で、他のオープンソースの Live2D の骨組みを流用して、それっぽく微調整しただけのもの。使えはするけど、じっくり見られるものではない。結局はおもちゃでした。

AI が Editor で開いてみると、FREE の上限を超えていたのはパラメータ数だけ。53 個で、上限は 30。「空のパラメータ」を 28 個消したら 26 個になり、デフォーマ、ArtMesh、パーツはもともと全部規約内でした。そもそも他のモデルのテクスチャを差し替えて作ったバージョンなので、当然といえば当然です。

でも！！！！！そこで AI がついでに、めちゃくちゃ笑える事実を見つけました：

> モデルは壊れていない。でも、**ブログ上のモデルは一度も動いていなかった**。

読んだ瞬間、心の中で「うわマジかマジか」と叫びました。じゃあ当時苦労して書き出したあれは何だったんだ。その結論、読めるけど意味がわからない。

\
犯人はこうでした。ブログの `live2dAnimator.ts` が動かしているのは `ParamAngleX`、`ParamEyeLOpen`、`ParamMouthOpenY` のような標準 ID で、旧モデルではそれらの ID がちょうどあの 28 個の空パラメータだった。実際に何かがバインドされていたのは、`PARAM_ANGLE_X` のような 2.1 時代の旧式 ID だったんです。

**つまり、この看板娘は公開したその日から、ずっとただの一枚絵でした。** 自分では全然気づいていませんでした。泣きそう。しかもバージョンの照合まで AI にやってもらう始末です。

Live2D のはずが、ブログではけっこうな期間、ただの立ち絵をやっていたわけです。

<br />

## 第 2 ラウンド：仕上がりが最悪

新しいモデル（gpt）に差し替えてデプロイすると、頭は回る、目は追ってくる、毛先は揺れる。機能的には全部そろいました。

で、ひと目見たら、目が髪の上まで跳ね上がっていたので、AI を問い詰めました：

> 仕上がりが最悪。細かい調整をまったくしてないでしょ

AI も真面目に一通り調べてくれました。Live2D の MCP はある？　ない。MCP registry にもないし、GitHub にある 2 つは、デスクトップのプレイヤーを操作するものか、GUI 自動化で Windows 版 Editor をクリックするものだけ。Cubism 5.1 以降は公式の WebSocket 外部 API（port 22033）があるけど、**モデル構造の読み取りとパラメータ値の一時的な設定しかできず、デフォーマ、キーフォーム、メッシュは変更できない**。

つまりバインドは Editor の GUI でやるしかない。残された道はひとつ、computer use で AI 自身にあの Java のウィンドウをクリックさせることです。

それから数時間、transcript はだいたいこんな感じでした：

* 「サブダイアログが固まった（クリック／Escape／アクセシビリティ、どれも反応なし）」
* 「サブダイアログがまた凍った（2 回ともダイアログ内でスクロールした直後）」
* 「パラメータの行がまた 1 行ずれた（『口 変形』を変更してしまった）」
* 「Editor が見えないモーダルダイアログで止まっている（メニューが全部グレーアウト）ので、再起動した」

**AI が Java Swing のウィンドウと格闘して、ずっと負け続けている。**

それでも、ちゃんと v4 は作ってくれました。黒目はクリッピングマスクで白目の中を動き、ハイライトは独立したレイヤー、口は上唇・下唇・口内に分割、2048 のテクスチャ、Tap モーション一式。ついでに「手が 2 本出てくる」問題も直してくれました。原因は、元絵のジャケットが実は 3 回描かれていたことです。

かなり完成してそうでしょう？

<br />

## 第 3 ラウンド：全身がゼリーみたい

> パラメータのエフェクトをうっかり全体に引っ張っちゃって、今この子全身ゼリーみたいになってるし、手のつなぎ目もおかしいのわかってる？

AI が Cubism Core で全パラメータの極値をスキャンした結果：**体の回転 Y が −10 のとき、胴体が 3.8 倍に伸びて、下に 1700px ずれていた。**

1700px。画像全体でもそのくらいの高さしかないのに。

それを直してもらって、シミュレーターを開かせて自分の目で確認し、10 項目を並べました：

> 1. タップのモーションがおかしい、頭が後ろにひっくり返る
> 2. 首を回すと顔が平面になる
> 3. まばたきすると目がそのまま消える、眉もなくなる
> 4. 前髪のエフェクトがカクカク跳ねてる wtf?
>    ……
> 5. 画像の切り方がめちゃくちゃ、体の上下がそのまま剥がれる
>
> 他の人のチュートリアル、ちゃんと調べた？　なんで gpt より出来が悪いの

これを送ったとき、僕は本気でした。

その頃はまだ Opus 5.5 が出ておらず、この session は主に Fable 5.1 で回していました。そして GPT 6 astra はその時期、本当に強かった。**computer use はまさに無敵**。ひたすら GUI をクリックし続けるような作業で比べられても、まったく文句は言えません。

<br />

## 死因：1 本のハンマーで全部の釘を打った

今回ようやく手を止めて、まず根本原因を、しかもかなり正直に説明してくれました：

**死因 1：「3D回転表現を適用」を万能のキーフォーム生成器として使った。** 首振り、まばたき、口、眉、体、全部同じダイアログで作っていた。あれは各パーツを平面のカードとして 3D で回転させるだけなので、首を振ると顔が平面になり、うなずくと頭全体がカードみたいに後ろへ倒れ、まばたきはまぶたが下りるのではなく目を一本線に押しつぶすだけになる。

**死因 2：髪を剛体回転させた。** 前髪が一枚まるごと 1 点を中心に回るので、「カクカク跳ねる」ように見える。

**死因 3：パラメータごとに見た目を一度も確認しなかった。** Core で頂点の数値はチェックしていたのに、各パラメータの極値をレンダリングして目で見ることはしていなかった。

3 つ目がいちばん痛い。**ずっと「数値が正しいか」を検証していて、「見た目が正しいか」は検証していなかった。** 1 か月後、AI アニメーションを作ったときも、自動チェックは全部 PASS なのに見る気がまったく起きない、というまったく同じ穴にまた落ちました。

そこでやっと公式マニュアルとコミュニティのチュートリアルを読みに行き、調査結果を 3 本のドキュメントにまとめてくれたのですが、その中で v4 はあっさり死亡判定されていました：

* 公式に「3D回転表現を適用」はキーフォームを上書きすると明記されていて、**まだキーを打っていないオブジェクトにだけ使うことが推奨されている**
* 「揺れ動作の自動生成」はワープデフォーマにしか対応しておらず、回転デフォーマは非対応と明記されている
* 髪の物理演算は公式サンプルの数値をそのまま写せる：2 段の振り子、長さ 10/7、揺れやすさ 0.95/0.86……

もうひとつ、自分でも思いつかなかったことがあります。Web のトラッキングが無限にゼリーになるのは、pixi-live2d-display 0.4 の `focus()` がカーソル位置を `atan2` で単位ベクトルに変換しているからで、**中心から 5px でも 500px でも、振れ幅は最大の ±30°**。しかもマウスが離れたときの処理がないので、モデルは永遠に中央に戻りません。

**最初にやるべきだった調査を、第 3 ラウンドでやっとやった。** それまでに燃やしたぶんは、全部授業料です。

<br />

## 第 4 ラウンド：v5 は全滅、v4 に戻る

調査のあと、計画どおり PSD を切り直して v5 を作りました。前髪の 1 回目は直線のくさび形で強引に切っていて、Session の記録には「long bundle って何なんだよ」と残っています。2 回目は毛束の輪郭に沿って切るように変えて、これは正しいと思いました。

ところが Editor に読み込んだら、また爆発：

> やっぱり v4 で調整したほうがいいと思う。このバージョンほぼ全滅してる
>
> てか何切ってんの、フチの処理が全然きれいになってないし、目はもともといちばん問題が少なかったのに、めちゃくちゃ悪くなってる

AI も認めました。v5 の切り方はアルファのしきい値と膨張処理だけで、フリンジ除去も、孤立ピクセルの掃除も、エッジの処理もしていなかった。**目は v4 の時点でうまく切れていたので、切り直すべきではなかった。**

というわけで v6 は「v4 の目 + v5 の調査結果」。今回は 1 ステップごとに moc3 を書き出して、自作のオフラインレンダラーで画像を出し、僕が確認してから次へ進むようにしました。途中、すごく典型的な落とし穴も出てきました：

> Editor はスライダーの値をパラメータのデフォルト値として書き込む

書き出したとき、右目の開閉スライダーがたまたま 0 で止まっていたので、待機状態の彼女は片目を閉じたままでした。

<br />

## GPT に引き継いで、また取り戻す

途中で「いちばん簡単な言葉で」引き継ぎ資料を書かせて、gpt 6 astra に渡そうとしました。理由はさっきのとおり、computer use はあっちのほうが強いからです。Claude は `docs/handover.md` を書いてくれました。

そのあとまた戻ってきて「直して」と頼んだら、開いた瞬間にこう気づきました：

> The Editor was relaunched by someone and a new `v7/` folder exists next to v6

いきなり上書きはせず、まずディスク上で何が変わったのかを確認してから手を動かしていました。**2 つの AI が交代で同じ Editor を触って、どちらも相手のものを壊さなかった**。これはバインドそのものより貴重だと思います。

最後の数ラウンドは腕でした。ひじの回転の支点を関節の上までドラッグする、前腕を 150° まで曲げられるようにする、手を振ったときに手がキャンバスの外へ飛び出さないようにする。その途中でまた「全選択のショートカットで不透明度が全メッシュに適用される」みたいなことを踏んで、保存ファイルまで戻すはめになりました。

<br />

## TLDR

1. **API のないツールでは、AI はマウスを握ってあなたと一緒に苦しむだけ。** Cubism Editor はプログラムからバインドを変更できないので、キーフォームはすべて computer use でクリックして作ったもので、見えないダイアログが出るたびに再起動
2. **先に調べて、それから手を動かす。** 今回いちばん高くついたミスは、第 3 ラウンドになってやっと公式マニュアルを読んだこと。最初の 2 ラウンドは、自動化機能で「機能は全部ある」ものを無理やりでっち上げていた
3. **検証するのは「見た目」で、「数値」ではない。** 頂点座標は全部まともなのに、本人はゼリー。自分でオフラインレンダラーを書いて画像を出すほうが、どんな数値チェックより役に立つ
4. **うまくいっている部分は作り直さない。** v5 は、もともといちばん問題のなかった目まで切り直したせいで全滅した

結局のところ、この session が 14 億 token も燃えたのは、Live2D がそれほど難しいからではなく、**「まず理解してから作る」というステップを飛ばさせてしまったから**で、それを 3 日間の往復で埋め合わせたわけです。

AI は謝るのがすごく上手です。でも、謝っても彼女の前髪はなびきません。

それでも今は、彼女をタップすると手を振ってくれます。運営が飛んだプロジェクトの NFT が、最後は僕のブログの上で動き出しました。**この"価値"は、ようやく自分の手で与えたものです**。

第 1 版はここまで。Kiya はまだ調整中です。次のバージョンができたら、また書きます。
