[blender] ミラーモディファイアを適用せずに左右の目をボーンで独立制御しつつ、左のボーン操作のみで右のボーンを自動的に同期(左右対称または同じ動き)させる方法 [2025/04/19]

blender

はじめに

Blenderで左目ボーンの操作だけで右目もたれ目・つり目として同期させるには、右目ボーンに「Copy Rotation」コンストレイントを設定し、左目の回転を参照させる方法が簡便です。左右対称にするには軸の反転(Invert)を適用します。また、ドライバーを使えばより柔軟に制御でき、式に「-var」と設定すれば左右対称の回転も可能です。共通の親ボーンに左右目ボーンをぶら下げる構造や、カスタムプロパティによる一括制御も有効です。用途に応じて組み合わせが可能です。

以下は,ChatGPTにした質問に対するDeep Researchの結果となる.Deep Researchの使用を明示したわけではなかったが,切替えスイッチとて「検索」,「Deep Research」があるので,それを誤って「Deep Research」にしてから実行した可能性,または,いままでDeep Researchを一度も使ったことが無かったこと,少し込み入ってた質問であったこと等がきっかけとなった(利用促進)のかも知れない.確かにまた使ってみようと思ったのは事実だが.

Deep Researchについては,以下の記事で解説しています.ご参考まで.


~メンバー専用 ↓
~~~~~~~~~~~~~~~~~~~
↑ メンバー専用~

無料登録は右の握手ボタンからかできます.

ChatGPT: 了解しました。Blenderにおいて、ミラーモディファイアを適用せずに左右の目をボーンで独立制御しつつ、左のボーン操作のみで右のボーンを自動的に同期(左右対称または同じ動き)させる方法について調べてみます。 調査が完了したら、実現可能な設定方法や使用できる機能(ドライバー、コンストレイント、カスタムプロパティなど)を含めてお知らせします。Research completed in 13m· 22 件の情報源


Blenderで左右の目ボーンを同期させる方法

背景: 回転操作で「たれ目」「つり目」を表現

Blenderでキャラクターの左右の目(眼球や目尻の傾き)をボーンで制御する際、片側のボーン操作で両目を同時に動かすことができれば、左右対称の「たれ目」「つり目」表現を簡単に行えます。例えば、左目用ボーンをY軸回転すると両目とも外側が下がる「たれ目」になる、といった同期動作です。これを実現するには、ミラーモディファイアを使わずに、リギング(ボーンの仕組み)で左右ボーンを連動させる方法を取ります。

左右の目ボーンを同時に動かす基本手法

Blenderには以下のような方法で左右の目ボーンを同期(左右対称に同じ動き)させることができます。

  • X軸ミラー機能を利用した対称操作(編集/ポーズモード): Armatureのボーン名を「.L」「.R」等のペアにしておけば、ポーズモードで「X軸ミラー」を有効にすることで、一方のボーンの移動・回転・スケール操作がもう一方に対称に適用されます​tantena.com。これは編集やポージング時の補助機能で、特別なリグを組まなくても左右対称の動きを同時に付けられるメリットがあります。ただしこれはあくまで手動操作のミラーであり、リグとして常時リンクされるわけではありません。左右非対称に動かしたい場合はミラーをオフにして個別操作する必要があります。
  • ボーンコンストレイント「Copy Rotation」を使う: 右目ボーンに「Copy Rotation(回転コピー)」コンストレイントを設定し、左目ボーンの回転を参照させます。こうすると左目ボーンを動かすだけで右目も追随します​packtpub.com。対称な動きにするには、コピーする軸と反転設定を調整します。例えば「Y軸回転の動きをミラーさせる」なら、Copy RotationでY軸をコピーし、必要に応じて他の2軸(X,Z)をインバート(反転)すると左右対称の回転が実現できます​blenderartists.org。コンストレイントの「Target」は左目ボーンの属するアーマチュアとボーン名を指定し、空間(Space)は通常「Pose Space(ポーズ空間)」同士にします​packtpub.com。以下は設定手順の例です:
    1. 右目ボーンを選択し、ボーンコンストレイントタブで「コピー回転」(Copy Rotation) を追加​packtpub.com
    2. ターゲットに自分のアーマチュアを指定し、ボーン名に**左目ボーン (Eye_L)**を指定します。スペースは「Pose Space ➔ Pose Space」とします​packtpub.com
    3. 影響させる軸は、目の傾きに使う軸(例: Y軸)のチェックを入れ、他の軸は不要なら外します。左右で鏡映しの動きにするには、必要な軸に**Invert(反転)**を入れます(鏡対称にする場合は2つの軸を反転させるのがポイントです​blenderartists.org。例えばローカルY回転を対称にコピーしたい場合、X軸とZ軸をInvertすると良い)。
    4. 設定後、左目ボーンを回転させてみて、右目ボーンが対称に追随するか確認します。正しく設定できていれば、左を動かすだけで右も同じ「たれ目・つり目」の動きをするようになります。
    補足: この方法のメリットは設定が比較的簡単で、ボーン名に依存せず任意のボーン同士でリンク可能な点です。またコンストレイントの**Influence(影響度)**を0〜1で調整すればリンクの度合いを変えたりオフにすることもできます。デメリットは、左右非対称の動きを付けたいときに毎回コンストレイントを無効化(影響度0)する手間がある点です。
  • ドライバーを使う: ドライバーとは、あるオブジェクト/ボーンのプロパティを別の値で制御する仕組みです​cgbox.jp。左目ボーンの回転を右目ボーンにドライバーで参照させれば、左を動かすと右も自動で動きます。設定手順としては次のとおりです:
    1. 左右の目ボーンの回転モードをXYZオイラー角に変更します(デフォルトのクォータニオンでは個別軸のドライバー指定ができないため)​qiita.com
    2. 右目ボーンの該当回転成分(例えばローカルY回転)の値を右クリックし、「ドライバーを追加」を選択します​qiita.com
    3. Graph Editorをドライバーモードに切り替え、追加されたドライバーの変数(var)を設定します。変数のターゲットとして左目ボーンのローカルY回転を指定します(オブジェクト=アーマチュア、ボーン=Eye_L、変換タイプ=Y回転、空間=ローカル空間)​qiita.com
    4. ドライバーのを設定します。左右同じ向きに回転させたいならvar、鏡対称にさせたいなら-varと入力します。これにより右目ボーンの回転値に左目ボーンの値(符号反転付き)が使われます​blenderartists.org
    5. 設定後、左目ボーンを回転させて右目が追随するか確認します。例えば左目ボーンのローカルY軸を正方向に10°回転すると、右目ボーンがローカルY軸を-10°回転し、両目の外側が同時に下がる「たれ目」になる、という具合です。
    補足: ドライバー方式のメリットは非常に柔軟で細かな制御ができる点です。式次第で影響度や反転、複雑な条件付きの動きも作れます​blender.stackexchange.com。複数の入力変数を組み合わせることも可能です。一方デメリットは、設定に多少手間がかかることと、ドライバーが意図しないタイミングで再計算されず同期ズレする可能性がある点です(設定を正しく行えば問題ありません​qiita.com)。基本的には一度セットアップすれば左ボーンさえ動かせば右も追随し、安定して機能します。
  • カスタムプロパティを使う: ボーン(または専用のコントローラー用ボーン)にカスタムプロパティを追加し、その値で左右のボーンを駆動する方法です。例えば頭部中央に「BothEyes」等のボーンを用意し、そこにスライダーとなるプロパティ(例:「Eye_Tilt」など)を作成します​note.com。このプロパティ値を両目ボーンの回転にドライバーで割り当て、プロパティ一つで左右を制御できるようにします。設定手順の一例は次のとおりです:
    1. コントローラーにしたいボーン(例: BothEyesコントローラ)を選択し、ポーズモードでボーンタブのカスタムプロパティから「新規」でプロパティを追加します​note.com。プロパティ名や初期値を設定してください。
    2. (必要に応じて)追加したプロパティがボーンのプロパティパネルに表示されるように設定します。ボーンを選択した際にそのプロパティがスライダーとして見えると便利です​note.com
    3. 作成したプロパティをドライバーで両目ボーンの回転に接続します。プロパティを右クリックして「新規ドライバーとしてコピー」し、それを左目ボーンと右目ボーンの対応する回転チャンネルに「ドライバーを貼り付け」します(Graph Editorで直接設定してもOKです)​note.com。右目側のドライバー式には必要に応じて-varを入れ、左目と反対向きに動くようにします。
    4. 設定後、プロパティのスライダーを動かすと左右の目ボーンが同時に回転するようになります。アニメーション時はこのプロパティにキーを打つことで左右の目の表情を統一管理できます。
    補足: この方法のメリットはアニメーター視点でUI上に使いやすいスライダーが提供される点です。ボーンを選択してボーンプロパティ欄から数値を動かすことで、シェイプキー等をいじるように目の傾きを調整できます​note.com。プロパティにはわかりやすい名前を付けられるので、「たれ目度」など表情コントロールとして管理しやすくなります。ただしこの方法でも裏ではドライバーを使っているため、左右非対称にする場合はドライバーをオフにするか別途工夫が必要です。またプロパティ経由で両目を動かす場合、個々の目ボーンを直接動かすのとは別の操作系統になる点には注意が必要です。

左右非対称な動きへの対応(応用リグ)

左右の目を常に同期させていると、ウインクや片目だけ細める・見開くといった非対称の表情をつけにくくなります。そこで、以下のような応用的リグ構造で対称・非対称を両立させることができます。

  • 左右共通の親ボーン(マスターコントローラー)を利用: 左右の目ボーンそれぞれを、共通の親ボーンにペアレントします。例えば「BothEyes」など新しいボーンをヘッドボーンと同じ位置・向きで作成し(ヘッドボーンを複製しても良い)、それを左右目ボーンの親に設定します​note.com。この親ボーンを回転させると両方の目ボーンが一緒に動くため、一つの操作で左右対称の動きを付けられます​note.com。一方で、片側の微調整が必要な場合は子ボーン(各目ボーン)を個別に操作すれば、親の動きに上書き加算する形で非対称のニュアンスを表現できます。この二段構えにすることで、「大まかな左右対称動作は親ボーンで一括制御し、細部の差異は子の各目ボーンで調整」という柔軟なリグが実現します。メリットとして、対称操作と非対称操作の両方を自然に使い分けられるため、表情の幅が広がります。
  • コンストレイントやドライバーのスイッチ: もう一つの方法は、対称リンク用のコンストレイント/ドライバーにオン・オフの切替スイッチを設けることです。例えば前述のCopy RotationコンストレイントのInfluenceにカスタムプロパティからドライバーをつけ、スライダーを0にすればリンク解除、1でフル同期といった具合に影響度を操作できます。ドライバーの場合も、条件式(例: var if prop==1 else 0 のようにプロパティによって値を無効化)を用いてオン/オフ切替を実現できます。このようにリグに対称・非対称のスイッチを組み込めば、アニメーション中に途中から左右非対称な動きに移行することも容易になります。
  • 反転ドライバーの工夫: 左右のボーンの初期向きによっては、単に同じ回転値をコピーするだけでは左右対称にならない場合があります。その際に用いる「反転ドライバー」とは、ドライバー式で値に-1を掛ける(符号反転する)だけでなく、必要な軸のみ反転するというテクニックです。例えば「右目ボーンの回転Zは左目ボーンの回転Zと同じ符号、XとYは逆符号にする」といった具合に、軸ごとに反転の有無を調整します​blenderartists.org。ドライバーでは単一チャンネルにつき一つの式を設定できますが、複雑な場合はXYZ各軸に個別のドライバーを仕込むことも可能です。また、Transformationコンストレイントを使えば一つのコンストレイントで軸変換や値の反転・スケールも設定できるため、ドライバーを使わずに左右反転の動きを作る手段として応用できます。

対称コントロールのメリット・デメリット

最後に、左右の目を対称リンクさせることの利点と欠点を整理します。

  • メリット:
    • 対称表情の作成が容易: 一方の操作で両目が同じ動きをするため、キャラクターの左右対称な表情(驚いて両目を見開く、笑顔で目尻が下がる等)が素早く設定できます​tantena.com。微妙なズレなく完全にシンクロした動きを得られるのも利点です。
    • アニメーション工数の削減: 片側のキーを打つだけで済み、左右別々にキーを調整する手間が省けます。対称性の維持も自動で行われるため、作業ミスも減ります。
    • 統一されたコントロール: カスタムプロパティや共通親ボーンを使った場合、UI上でまとまったコントローラーから両目を操作でき、リグ操作が直感的になります​note.com
  • デメリット:
    • 非対称表情の制約: 常にリンクしている場合、片目ウインクや左右で異なる表情を付けたいときに制約となります。非対称にするにはリンク用の設定を都度無効化したり、別コントロールに切り替える必要があります。
    • リグの複雑化: ドライバーや追加ボーン、スイッチなどを組み込むため、リグ全体が多少複雑になります。他のボーンとの依存関係が増え、設定やデバッグの難易度も上がります。
    • 過度な対称による不自然さ: キャラクターの表情は完全な左右対称よりも、わずかな非対称があった方が自然に見える場合があります。常に同期させてアニメーションさせると、機械的で硬い印象になる恐れもあるため、必要に応じてリンクを外す運用が望まれます。

以上を踏まえ、Blenderで左右の目ボーンを同期させるには、目的に応じて適切な方法を選択することが重要です。手早く左右対称に動かすだけならX軸ミラー機能​tantena.comが簡単ですが、実際のリグではコンストレイントやドライバーを用いて必要に応じ非対称にもできる仕組みを組むのがベストです。特に、共通の親ボーンによる制御​note.comは対称/非対称の両方をシンプルに両立できるため実践的です。ぜひこれらの方法を組み合わせて、表情豊かな目のリグを構築してみてください。

Sources:


編集履歴

2025/04/19 Mrはりきり