「ボーンの抑制」に関してはチュートリアルでも何度か登場してますが、ダイアログ内をあらためて全体的に確認しておきたくて、まとめてみました。
ボーンの抑制(Bone Constraints)
Mohoでは、各ボーンに様々な制約を設定することができます。
アニメーションを効率的に、かつ自然な動きを再現させるのに役立つ機能なので、大いに活用しましょう。
[ボーンを選択]ツール > ツールオプション[ボーンの抑制]
ボーンの抑制ダイアログの中身

- 角度の抑制
- 個別の角度
- ストレッチ拡大縮小
- IK ストレッチ最大値
- IK ソルバを反る
- インバースキネマティクスにより無視
- ターゲット
- コントロール 角度制御ボーン
- コントロール 位置制御ボーン
- コントロール スケール制御ボーン
- ボーンのダイナミクス
各項目の詳細
前章で表示した「ボーンの抑制」ダイアログの画面スクショには、項目ごとに番号を表示しました。この章では、それぞれの項目についての詳細です。
1. 角度の抑制

ボーンの動きを特定の角度に制限する場合は、このオプションにチェックを入れます。
ボーンを回転させる最大角度と最小角度の範囲を入力します。
例えば、ボーンをどちらの方向にも10度だけ回転させたい場合は、「最小」フィールドに-10、「最大」フィールドに10と入力します。
角度の抑制を設定したボーンを選択すると、ボーンの下部に最小/最大角度の目安ラインが表示されます。角度の値に合わせて、目安ラインの開く角度も変わります。

2. 個別の角度

通常、親ボーンを移動または回転させる場合、子ボーンも一緒に移動または回転します。子ボーンの「個別の角度」オプションにチェックを入れると、子ボーンは元の角度を維持します。
キャラクターが歩く動作をする際に、脚部が動いても足先が地面と平行を保つようにしたい場合などに使用します。
3. ストレッチ拡大縮小

英語版だと「Squash and stretch scaling」で、「圧縮と伸縮の調整」みたいに訳したほうが分かりやすいかも…
このオプションをオンにすると、ボーンによって制御されているオブジェクトは、スケーリングされても体積を維持します。
例えば、ボールを押し潰したときは、押した部分が凹んで、凹んだ分が横に伸びますよね。この「ストレッチ拡大縮小」をオンにすると、このような現象を再現できます。
チュートリアルでは、Mr.Beanというキャラクターの足を使って練習しましたが(チュートリアル3.6:強化されたボーン)、円形を使うと更に分かりやすいです。
下図のように、ベクターレイヤーに円形を描画して、2本のボーンを追加します。
フレーム「6」あたりをクリックし、[ボーンを変形]ツールを使って上のボーンを短くします。
[ボーンを変形]ツールは、Ctrl+左右にドラッグすると、ボーンの長さを変えられます。

ボーンが短くなると、円形が押しつぶされたようになりますが、この時に[ストレッチ拡大縮小]がオンかオフかで、円形の変形具合が違ってきます。

[ストレッチ拡大縮小]の値フィールドの数値を変えると、変形度を変更できます。
4. IKストレッチ最大値

[IKストレッチ最大値]は、ボーンが伸びる最大量を制限する機能です。
キャラクターのアニメーション時に足や腕が不自然に伸びすぎたり、逆に縮みすぎたりするのを防ぎ、リアルで制御しやすい動き(特に関節の限界を超えるような動き)を表現するために使われます。
Mohoの「Maximum IK Stretching(最大IKストレッチ)」とは、IK(逆運動学)リグのボーンが、設定された限度を超えて伸びるのを防ぎつつ、自然な伸び(ストレッチ)を可能にする機能で、キャラクターアニメーションで脚や腕などが不自然に伸びすぎたり、逆に硬直したりするのを防ぎ、リアルな動き(膝が伸び切った時などに少し伸びる表現)を作るために使われます。
通常のIKではボーンが伸びるのを制限しますが、この機能を使うと、制限値(ストレッチの最大値)までなら自然に伸び、それを超えると伸びが止まる、あるいは制限されることで、リアルな「伸び」と「止まる」の表現が可能になります。
こうした特徴から、後述のターゲットボーンとセットで使うことが多いです。
ロックされているボーンやターゲットに帰属しているボーンは、ボーンチェーンがターゲットまで伸びようとしたときにターゲットが遠すぎる場合、ボーンはターゲットをまっすぐ指すだけになります。しかし、IK ストレッチ最大値に「1」より大きい値を設定すれば、ボーンはその分さらに伸びてターゲットに届くことができます。
つまり、値が「1.5」であれば、ボーンはターゲットに届くために元の長さの1.5倍伸びることができます。
5. IK ソルバを反る
英語版だと「Arc IK Solver」で、「IK」はインパースキネマティクスの略です。
ダイアログに表示された「IK ソルバを反る」では全く意味が分からないどころか、その説明とも合ってない気がするんですよねぇ…

「アークIKソルバー」のソルバーを「反る」にしちゃったとか?
「IK ソルバを反る」がオフの場合、下図の緑色のボーンのように、IKターゲットがゴールに到達するまでの道筋は多岐にわたり、ボーンの動きによってアコーディオンのように折り畳まれることもあります。ただし、この方がボーンをより細かく制御できます。
一方、「IK ソルバを反る」をオンにすると(下の紫色のボーン)、Mohoはボーンを滑らかな円弧上のセグメントとして整列させるように移動しようとします。ただし、アークIKソルバーをオンにすると、ボーンをS字カーブに沿って移動するのが難しくなる可能性があります。

ちょっと分かりづらいので、Google AIに聞いてみました。
Arc IK Solver(アーク・インバースキネマティクス・ソルバー)は、キャラクターの動き(特に手足や尻尾など)をより自然な弧(アーク)を描くように制御するための強力な機能で、ボーンチェーンに適用され、エンドボーン(末端の骨)を動かすと中間ボーンが連動し、まるで物がしなるように、またはキャラクターが腕を振るように滑らかな曲線運動を自動生成する仕組みです。これにより、手動で細かく調整する手間を省き、生物的な有機的な動きを簡単に実現できます。
6. インバースキネマティクスにより無視
「インバースキネマティクスにより無視」をオンにすると、インバースキネマティクス(IK)はボーンを無視します。
腕や脚に補助ボーンをアタッチする場合に便利です。
インバースキネマティクスを無視する方法の詳細については、「インバースキネマティクスを無視する(ユーザーズマニュアル106頁)」を参照しましょう。
7. ターゲット
ボーンには、別のボーンをターゲットとして割り当てることができます。
この機能の最も一般的な用途は、キャラクターにインバースキネマティクス(IK)を設定し、歩行サイクルをより簡単にアニメーション化できるようにすることです。
- ターゲット
- ストレッチ拡大縮小
- IKストレッチ最大値
この3つをセットで使うことが多いようです。
8~10. コントロールボーン
参考画像に付けた番号の❽~❾ですが、この3つは「コントロールボーン」としてのグループに属します。
Mohoのver.14を使ったチュートリアル動画では、グループであることがわかりやすい表示に改良されていました。
コントロールボーンは、あるボーンの動きを、別のボーンの動きで制御します。コントロールできるのは、角度、位置、スケールです。

コントロールボーンの設定方法
- 制御対象となるボーンを選択する。
- [ボーンの抑制]ダイアログ内の角度、位置、スケールのうち、あてはまる項目のドロップダウンメニューから、コントローラーとして使用するボーンを選択する。
角度フィールドに希望する制御角度を入力します。
正と負の値の両方が許容されます。
位置フィールドにX座標とY座標を入力します。
正と負の値の両方が許容されます。
スケールフィールドに希望するスケール係数を入力します。
下の参考画像は、チュートリアル「3.2 ボーンの抑制」で使ったものです。
この場合、❷と❸のボーンそれぞれに、[角度制御ボーン]で❶のボーンを選択し、❷には「0.5」、❸には「-0.5」と角度指定しています。

こうしておくと、❶のボーンが動いた時に、❷と❸のボーンが指定した角度に動きます。

11. ボーンのダイナミクス
Mohoのボーンダイナミクスとは、ボーンに重力や重さ、物理的な動きを自動で与える機能で、親ボーンの動きに反応して子ボーンを自動的に動かします。
キャラクターの髪や服の揺れ、しっぽの動きなど、自然な「揺れ」や「しなり」をリアルかつ簡単に表現するための物理演算(Physics)機能です。
バネの物理シミュレーションを使用して動きを計算するもので、トルク力、スプリング力、減衰力の値を指定します。

物理演算でのトルク力とは、物体を回転させる力(回転力・ねじりモーメント)のことです。
値が大きいほどボーンの動きが大きくなります。
物理演算でのスプリング力は「ばね」の力のことで、物体に加えられた変形(伸びや縮み)に対して、物体を元の形に戻そうとする(復元力)仮想的な力のことです。
値が大きいほど速く元に戻り、動きが硬く見えます。値が小さいと動きが柔らかくなります。
英語版では「Damping Force」で、減衰力のことを言います。物理演算における減衰力とは、物体の運動を妨げる方向に働く抵抗力のことです。
ボーンがどれくらいの速さで動きを止めるのかを決めます。値が大きいほどボーンの動きは速く止まり値が小さいほどボーンはゆっくり止まります。
ボーンダイナミクスのサンプル
「チュートリアル3.3:ボーンの力学」で使ったサンプルです。

まとめ
チュートリアルを読み終えてから実践的にMohoを使い始めると、リギング作業で「ボーンの抑制」を開く場面が増えてきました。
必要性がわかるほど、ボーンの抑制ダイアログ内のことをキチンと理解しておくことが大切だと実感しています。
それから、MohoのVer.14のチュートリアル動画を観ると、ボーンの抑制ダイアログ内が少しだけ変化していることに気づきました。Ver.13以上に細かい設定が可能になっているようです。


