■はじめに

こんにちは😊

前回は、3Dモデリングツールが吐き出したglbファイルを使って、勇者が疾走するアクションを作ってみました。

今回は再びツール側の改良です。

今回やったことは、

- スカートのバグ修正
- ごちゃついてきたメニュー整理
- ポージングの座標系見直し
- オマケでアニメーション作成

になります。

見た目は地味ですが、中身はかなり大きく進歩しました。

■スカートのバグとは?

前回作ったスカートは、見た目だけはそれっぽかったのですが、大きな問題がありました。

それは……

キックすると足がスカートを貫通する(笑)

という問題です。

考えてみれば当然で、スカートは足の動きを全く見ていませんでした。

そこで試行錯誤した結果、

「膝を表す球体」に注目しました。

膝球を約2倍まで拡大し、
左右の膝球をカプセル型(この言葉もChatGPTさんに教えてもらった)でつなぎます。

そして、このカプセル形状を基準にスカートを作るよう変更しました。

すると、足を上げてもスカートが自然についてきます。

かなりそれらしくなりました😊

ただし……

ロングスカートになると、今度は大きく足を上げられません。

こちらは今後の宿題です。

ゲームによっては問題にならないかもしれませんが、アクションRPGを目指す以上、いずれ解決したいですね。

■操作系がごちゃついてきたので整理します

開発を続けていると、どうしてもボタンやメニューが増えてきます。

そこで、

コマンドの並びを一般的な日本語アプリに合わせて整理しました。

さらに、

選択項目は
ドロップダウンリストへ統一。

普段あまり使わないコマンドは折り畳み表示にしました。

これだけでも画面がかなりスッキリしました。

少しずつですが、

「試作品」

から

「普通に使えるツール」

へ近付いてきた気がします。

  座標系も思い切って変更


ここでChatGPTさんから、

«「今の回転方向の与え方は、順番依存がありバグの原因になるので、Quaternionを用いた座標系への変更をオススメします。」»

というアドバイスをいただきました。



最初は「Quaternionって何?」状態でした(笑)

Three.jsには標準でQuaternion関数が用意されています。

そこで、

今までの回転方式をやめ、

Three.js標準のQuaternionを利用するよう変更しました。

これによりポージングが、

- 前後
- 左右
- ねじれ

という感覚的に分かりやすい操作へ変更してます。

回転順序による問題も起きにくくなりました。

結果として、コードも分かりやすくなり、今後のアニメーション作成も楽になりそうです😊

作ったアプリはこちらです。

モデリングツール


上のボタンで上手くいかない人は、
下のURLをGoogle検索窓に入れてアクセスしてね😊
自分の環境だと検索窓しかだめなの。
なんでかね?

https://logicmaker256-prog.github.io/model-04/

■オマケでアニメーションも作ってみました

ツールの動作確認も兼ねて、簡単なアニメーションも作りました。

まずAIへ迷路生成を依頼します。

ただし、

ここはかなり細かく条件を書きました。

① 10×10の迷路を作り、中央に3×3のドラゴン部屋を配置する

② 勇者の初期位置を(1,1)として、A*アルゴリズムでドラゴンまで到達可能か確認する。到達できなければ迷路を作り直す。

③ 勇者が迷路内を走る座標は、このA*探索結果を利用する。

この辺りまで指定しないと、

・壁をすり抜けた
・ドラゴン部屋へ入れなかった

など、AIらしい面白いバグが発生します(笑)

あとは、

④ ドラゴンと遭遇

⑤ 大剣で一刀両断

⑥ バンザイして終了

という流れです。

たったこれだけですが、

自作ツールで作ったキャラクターが、自分で迷路を走ってドラゴンを倒す姿を見ると、かなりテンションが上がります😊

作ったアニメーションはこちらです。

下のURLをGoogle検索窓に入れてアクセスしてね😊

https://logicmaker256-prog.github.io/fighting-anime/

■今回の学び

今回一番の収穫は、

「Three.jsにはQuaternionという便利な機能が最初から用意されている」

ということでした。

数学的には少し難しい仕組みですが、

使う側は

「前後・左右・ねじれ」

を指定するだけ。

内部では綺麗に回転を処理してくれます。

これのおかげでポージングもかなり扱いやすくなりました。

ChatGPTさん、本当にありがとうございます😊

■次回予告

3Dモデリングツールも少しずつ実用レベルになってきました。

次回からは、このツールを使って

スマホ版「ドラゴンバスター」

の制作を始めます。

また、今回はAIにかなり仕事をお願いしました。

次回以降も、なるべくAIへ作業を振りながら、

最近話題の**MCP(AIとの協調開発)**が実際どこまで使えるのかも検証していきたいと思います。

完成まで、まだまだ道のりは長いですが、一歩ずつ頑張っていきます😊