名無しのモッフィーにアニメをつける作業でドツボはまり。
なるべくラクして3Dキャラを作りたい。―― こんな欲のためにかえってシンドい目にあった経過を、ソフトの名前ごとに書いておきます。
ラフスケッチ - MonsterMash
手描きで3Dオブジェクトができる。MonsterMashはソースが公開されているので自分のマシンでビルドして試しましたが、Webの方が軽快に動作していました。
メッシュとアーマチュア - Blender 1
MonsterMashで作った.objをきれいに磨いてリトポして、まあこの段階は楽しくてスイスイ進みました。
モデルを後でCascadeurに送る都合上、Cascadeurの命名に合わせてボーンを作ります。
トランスフォームで変更があった場合は「適用」を済ませておくこと。
ボディ | 左腕 | 右腕 | 左脚 | 右脚 |
---|---|---|---|---|
pelvis | clavicle_l | clavicle_r | thigh_l | thigh_r |
stomach | arm_l | arm_r | calf_l | calf_r |
chest | forearm_l | forearm_r | foot_l | foot_r |
neck | hand_l | hand_r | toe_l | toe_r |
head |
リグとアニメ付け - Cascadeur
クイック・リギングでボーンの場所を指定します。Blenderの段階でここで使う名前と同じものを用意しておいたので、同じ名前が並ぶように配置すればよい。わかりやすくて便利です。
アニメ付けが終わったら File Export Fbx/DaeでFbxシーンをエクスポートします。
キーフレームの操作や、それらしく見えるアニメの設定などは後でじっくり学ぶとして、とりあえず動きが加わったモデルをBlenderに戻します。この辺りからだんだん訳がわからなくなっていきます。例えば出力形式では、どうしてかは分かりませんがDAE形式ではうまく行かず、FBXシーン一択とか。これはこれで問題があったのですが。
Godot用モデルをエクスポート - Blender 2
Cascadeurから戻ってきたモデルは末端の骨が大きくなっていました。ちゃんと動くので、気にしないことにしようと思いましたが…
このモデルをglTF形式でGodotに持って行ったら、すごいことに。Blenderで異常を確認した骨がさらに肥大化しています。Blenderに戻って修正します。
デカデカ・ボーン現象は、Cascadeurで新たに"_end"で終わる小骨が追加された部分で起こっているので、試しに"_end"の骨を削除してみました。ボディの中央に並んでいるので見つけにくいですが、アウトライナーで選んで全部で5個の追加分を削除。Blender内ではアニメ動作は良好でした。がっ!!
glTFエクスポート・アドオンでエラー発生。‘AttributeError: ‘Pose’ object has no attribute ‘rotation_mode’
Pythonソースなんて読みたくないし。他の方法を探します。
悪戦苦闘の末、Godot Engine(.escn)エクスポート・アドオンで出したものが、Godotで開けることがわかりました。
escnを開いてキャラの動きを確認 - Godot
手足ピコピコのアニメがエディタ内では動くのに、出力したゲーム内では動かず。これの謎を解くのにさらに悪戦苦闘しました。DuckDuckGoで検索しまくり。(そういえばGoogle検索を使わなくなって久しいな。なくても困らない。)ほとんど偶然に、「読み込み後、自動再生」というボタンを見つけて解決しました。
次のステップ - 敵キャラ
主人公がウロウロするだけでは話にならない。とりあえず雑魚でいいので敵キャラを1匹作ります。
モデルはこの人。名前は「蛭・外忌吊1.0」です。「ゲ」の字は「外道」の「ゲ」か、「下衆」の「ゲ」か迷ったのですが、この者が後年行ったことを見れば、「外道(災いをなすもの。悪魔)」がふさわしいと思いました。
さてさて、どうなりますことやら。もふもふ山はまだ遠い。師匠、どうしていらっしゃるかなあ。