Astra開発における勘所
Astraがリリースされてから、これまでAIアプリ開発で感じていた「デザイン」の課題が解決され始めたことは、昨日触れた通りです。
しかし、依然として難しい領域があります。
それが「リアルなもの」の生成です。
さらに難しいのが、リアルな見た目だけではなく、リアルな動きまで再現することです。
現在、アプリ内でリアルに動く魚を作っているのですが、これがなかなか一発では思い通りにいきません。
「本当にこんなレベルのものを作るの?」と思うような成果物が出てくることもあります。
そこから指示を変え、生成し直し、良いものだけを残していく。
そんな試行錯誤を繰り返しているうちに、ようやく納得できるものができ始めました。
そして今日、その過程で一つ発見がありました。
忘れないうちに書いておこうと思います。
「デザイン → 3D → 動き」の3段階で考える
リアルな魚を作っていて気づいたのは、モデリングには大きく分けて3つの段階があるということです。
デザイン → 3D → 動き
この3段階それぞれで、人間の目で見て「OK」と判断できる品質まで持っていく必要があります。
重要なのは、途中の品質に妥協しないことです。
1. デザイン
まずデザインです。
ここは妥協を許してはいけません。
最初に「これが最終的に作りたいものだ」と言えるデザインを作り、それを後工程における正解として扱います。
曖昧なデザインのまま3Dモデリングに進むのではなく、まず2Dの段階で納得できるところまで詰める。
ここで基準となるデザインを完成させます。
2. 3Dモデリング
次が3Dです。
ここでもAIに自由に作らせると、かなり曖昧なものが出てくることがあります。
そこで、先ほど完成させたデザインを「合格基準」にします。
例えば、デザインから輪郭が大きくはみ出していたらNG。
逆に、3Dモデルによって基準となるデザインの重要な特徴が隠れてしまってもNG。
つまり、
「なんとなく似た魚を作る」のではなく、「完成したデザインを3D空間上で再現する」
という考え方です。
デザインを正解として固定してしまえば、3Dモデルの良し悪しも判断しやすくなります。
3. 動きのモデリング
そして3つ目が「動き」です。
実はここが、現在もっとも難しいと感じています。
魚の泳ぎ方、体のしなり、尾びれの振り方、方向転換、速度変化など、リアルさを決める要素が非常に多いからです。
この部分については、まだ自分の中でも完全な勘所を掴めていません。
今はひたすら試行錯誤しています。
ただし、一度良い動きが出たら、それをその場限りで終わらせないようにしています。
「なぜ今回はうまくいったのか」
「どの指示や実装が効いたのか」
「他の魚にも転用できる部分はどこか」
これらをAIに整理させ、次の開発に再利用できる形で残していきます。
一度成功した作業は、二度とゼロからやらない
今回の開発を通じて感じたことをまとめると、
「一度やった作業は簡略化できるし、簡略化するべき」
ということです。
魚を一匹作って終わりではありません。
一匹目を作る過程で得られた知識を整理し、二匹目をもっと簡単に作れるようにする。
二匹目で新しい知見を得たら、それをまた仕組みに取り込む。
そうすると、開発するたびに次の開発が少しずつ楽になっていきます。
AIの面白いところは、この「再帰的な自己改善」をかなり高速に回せることだと思います。
何か一つうまくいったら、
「これを次から自動化できないか?」
「今回得た知識を汎用化できないか?」
「次回はもっと少ない指示で同じ品質を出せないか?」
とAIに問い続ける。
隙があれば自己改善を促すわけです。
すると、
作る → 評価する → 改善する → 改善方法そのものを仕組み化する
というループが高速で回り始めます。
高速PDCAマシーンの完成です。
こういう開発をしていると、「AGIが来たな」と感じる瞬間があります。