■ はじめに

こんにちは!プロンプト・ウサギです!

3Dモデリングツールも、必要な機能がだいぶ揃ってきました。

取扱説明書も作ったし、いよいよキャラクターにいろいろなポーズをつけていこう!

……と思ったのですが、ここで問題が発生。

ポーズを作るのって、思っていたより大変です!


■ 関節の角度を調整するのは難しい!

今の3Dモデリングツールでは、関節ごとに角度を指定してキャラクターを動かしています。

例えば、腕を上げたい場合は肩の角度を変更し、肘の角度も調整します。

ところが、これがなかなか思い通りになりません。

手の位置を少し変えたいだけなのに、肩や肘の角度を何度も調整する必要があります。

「関節の角度を一つずつ指定してポーズを作るのって、無理じゃない?」

そこで、Blenderではどうやってポーズを作っているのか調べてみました。

すると、見慣れない言葉が出てきました。

IKとFKです。

さっそくChatGPTに聞いてみます。

■ IKとFKって何?

簡単に説明すると、どちらもキャラクターの骨格(ボーン)を動かしてポーズを作る方法です。

ただし、動かし方が違います。

FK(フォワードキネマティクス)

FKは、日本語では順運動学と呼ばれます。

親になる関節から順番に動かしていく方法です。

例えば、腕の場合は次のようになります。

1. 肩の角度を決める。
2. 肘の角度を決める。
3. 手首の角度を決める。

つまり、関節を一つずつ操作して、最終的な手の位置を決めます。

IK(インバースキネマティクス)

IKは、日本語では逆運動学と呼ばれます。

FKとは反対に、手や足などの目標位置を先に決める方法です。

例えば、手を頭の上に持っていきたい場合。

1. 手を頭の上の目標位置に移動する。
2. コンピューターが肩や肘の角度を計算する。
3. 腕全体が目標位置に向かって動く。

つまり、関節の角度を一つずつ考えなくても、手の位置を指定すれば腕の形を計算してくれるわけです。

身近な例で考えると、



- FK:腕の関節を一つずつ動かして、手を目的の場所に持っていく。
- IK:手を目的の場所に持っていくと、腕の関節が自動的に動く。

という違いです。

これは便利そう!

■ FKを全部IKに変更すればいい?

それなら、今までのFKを全部IKに変更すればいいのでは?

と思ったのですが、ちょっと待った!

例えば、弓を持ったキャラクターを考えてみます。

弓を構えるポーズでは、腕や手の位置を決めるIKが便利です。

しかし、弓そのものの向きを微調整したい場合は、これまでのFKのように関節の角度を直接操作する方が便利そうです。

つまり、IKとFKにはそれぞれ得意なことがあります。

そこで、今回の3Dモデリングツールは、IKとFKを切り替えて使える方式にすることにしました。

これなら、ポーズの種類に合わせて使い分けられます。

■ 大きな改造なので5段階に分けました

ここでChatGPTからアドバイス。

こういった大きな機能変更を一気にやると、既存機能まで壊してしまう可能性があります。

そこで、今回は次の5段階に分けてClaudeに作業をお願いすることにしました。

段階| 作業内容
①| 右腕IK
②| 左腕IK
③| 右足IK
④| 左足IK
⑤| IK総合テスト

片腕ずつ、片足ずつ追加していく作戦です。

一つずつ動作を確認しながら進めれば、問題が発生しても原因を見つけやすくなります。

ちなみに、Claudeは無料枠で作業しているので、今回も途中で何度か停止してしまいました。

5回ぐらいは作業が止まったと思います(笑)。

でも、ここで便利なのがClaudeへの質問です。

作業が止まったときに、

「何処までできたの?」

と聞けば、現在の進捗を教えてくれます。

その内容を確認してから、

「では、続きからお願いします」

と指示すれば、作業を再開できます。

AIに作業をお願いするときは、途中で止まっても慌てないことが大切ですね。

■ ChatGPTとClaudeの役割分担

今回、もう一つ感じたことがあります。

それは、自分のプロンプトだけでは、どうしても指示に抜けが出てしまうということです。

例えば、単に「右腕をIKに変更してください」とお願いするだけでは不十分です。

- 既存のFK機能は残っているか?
- IKとFKを切り替えられるか?
- 左右の腕に影響していないか?
- 保存したポーズは正常に読み込めるか?
- 既存の機能が壊れていないか?

こういった確認項目も必要になります。

そこで、Claudeに渡す変更プロンプトはChatGPTに作ってもらっています。

特に、今回のようなテスト系のプロンプトはChatGPTが必須になっています。

私がやりたいことをChatGPTに相談し、変更内容や確認項目を整理してもらう。

それをClaudeに渡して実際にプログラムを変更してもらう。

この役割分担が、最近の私の開発スタイルです。

■ まとめ:新しい技術への挑戦もAIと一緒に!

今回のIK対応は、単なる機能追加ではありません。

これまで関節の角度を一つずつ調整していたポーズ制作を、もっと直感的に操作できるようにするための挑戦です。

もちろん、IKを追加したからといって、すべてのポーズが簡単に作れるわけではありません。

IKとFKを使い分けながら、少しずつ使いやすい3Dモデリングツールにしていきたいと思います。

今回修正したファイルもGitHubで公開してます。

【ダウンロード方法】
環境で駄目な場合が多いから素直に検索窓にアドレス直打ちがいいかも💦

追記,バグ直しました。

👇️僕の環境からは失敗します

3Dモデリングツール


下の「…」から「Downloadを選んでください。」
うまくダウンロードできない場合は、以下👇️をGoogle検索窓へコピー&検索

https://github.com/logicmaker256-prog/3DmodelingTool03/blob/main/3DmodelingTool-WorldYRotate.zip

AIにプログラムを書いてもらうだけでなく、知らなかった技術を調べて、実際に自分のツールに取り入れてみる。

IKを使ってどんなポーズが作れるのか、いろいろ試したいけど、その前にIKが良くなった分、他の部分のあらさか目立ちます。

直したコードも上👆️に含まれていますが、かなり直しました。

次回は、この辺の説明がメインかな💦