2025年11月21日金曜日

自分のやっていた事がオーパーツになっていた件

 若い頃にやっていた事が理解できなくなる…という事は老いるとよくある事で、最近特に多いのですが。6年前にやっていたボーンの組み方が解らなくなって頭を抱えたというお話。もう一度思い出す事ができそうにないのでココに備忘録を残します。

基本的な方針
私の人間のボーンの組み方で、動かしたいボーンに対して、基準位置ボーンを用意し、ターゲット用のボーンに追従させて曲げる、という方法を取っています。

「振る」ボーン

「振る」ターゲット

この方法だと、例えばボールの方に腕を向けるといった動作をする場合、ターゲット用ボーンをボールと同じ位置にすれば良いだけなので制御が楽です。
あと、親を基準に角度制限をかければ良いので制限も簡単に付けられます。

が、それは「振る」という動作しかしない関節ならばのお話
肩や尻、肘、親指の付け根、そして脊柱の関節はこれに加えて「捻る」という動作がつきます。
とりあえず、「振る」用のターゲットボーンに直行するボーンを立てて、これに「捻る」用のターゲットを追従させるようにします。

「捻る」ボーン

「捻る」ターゲット

又、捻る用のターゲット用ボーンは振る用ターゲットボーンのローカル座標系でXY座標面のみ移動できるように制限します。
次に「振る」ボーンに直行する形でボーンを置き、コレの子ボーンとして振りと捻りを反映する「真のボーン(実際にオブジェクトに影響を与えるボーン)」を改めて作ります…

ここで挫折
さて、ここでターゲット系のボーンと、反映用のボーンが相似する形になっているので、ここのローカル角度をコピーすれば良くね?と当初考えていました。
…が、どうやってもボーンがおかしな方向に曲がってしまい上手く行きません。

そこでまず捻りボーンの先端に子ボーンを作りまして…
「振る」ターゲットに子ボーンを作って、捻りボーンの子ボーンの位置に追従させます。

コンストレイン

同様に「振る」ボーンの子ボーンを作って、ローカル位置を転写。
「真のボーン」の親ボーンを追従させる。

「真」の親

「真」の親のターゲット

これにて完成
ローカルの位置関係が相似しているためにできる芸当です。
捻り角度の制限はターゲット側、元ボーン側のどちらでかけても良いのですが、「振る」角度の制限を元のボーン側でかけているのでそちら側でかけた方が取り回しが良さそうです。
※今回は元ボーン側の「真」の親(下の方)で角度制限をつけています

ローカルの位置関係を転写しているので、「振る」の限界以上に曲げて同軸上から外れた位置関係になっても正しく「捻じる」動作が出来ています。

…はい、1日がかりで作りましたが、こんなもの思い出せるハズが無いデス。
いや、大元のデータ残ってるから探せば良いだろと思うのですが…。
この中から有効なボーンを探すのが文字通り骨でして。結局0から組み直す事になりました。今回は筋肉繊維用のボーンを組まないのでもう少し簡素な形にする予定ですが、なんとも進んでいるのか戻っているのか解らん状況です。

Blender5 ですって?
いや、この間 4.5 出したばっかりですが。個人的にはタイムライン周りのUIが変わったのが…確かに改善されたのでしょうけど、しょっちゅうUI変えすぎじゃないですかね Windows じゃあるまいに。
…と、思ったら Blender の商用サポートって Ubuntu 作ってるカノニカルがやってるんでしたっけ?あそこもUIがフワフワしてますからねえ。
まあ、 2.75 から 2.8 系に変わった時の「頂点選択が右クリックから左クリックになりました」程のインパクトは無いですが(未だにうっかりミスする事があります)。
あと、カノニカルがサポートを始めた21年6月は Blender のバージョンが 2.9 だった訳ですが、18カ月で1バージョン上がっているようなペースです。
90年代のRPGじゃないんだからもう少し落ち着けと言いたいですが、Blender としてはデファクトスタンダードになれるかの瀬戸際なんでしょうか?もう 3DStudioMax は超えたんでしょうかね?
今の業界の事は全く分かりませんが、月額4万円のサブスク料金を払うのは個人ではほぼ無理で企業でも負担が重いでしょう。
もしスタンダードが Blender に傾いたら一気に流れが変わる気はしますね。

0 件のコメント:

コメントを投稿