日: 2026年4月12日

  • Blender – 従属関係,顔と目を別々に作り配置した-顔が上に向けば目も追随することは当然のこと.でも,それをblenerで実現させるには少々理解が難しい.正解を解説する.

    Blender – 従属関係,顔と目を別々に作り配置した-顔が上に向けば目も追随することは当然のこと.でも,それをblenerで実現させるには少々理解が難しい.正解を解説する.

    はじめに

    キャラクターをつくるには,ArmaturemeshObjectを使用する.人体objectと目objectをつくり,人体objectに適合したbones(armature)をデザインして張り付ける.これによりboneを動かしてポーズをとることが出来るようになる.

    人体objectに別の独立した目objectを追随させる必要がある.人体を移動させたときに目objecがもとの位置に取り残されているとにならないようにするために.

    人体objectに目objectは追随性が高くなければならない.

    そのためには,人体objectに適当なweight paintにて張り付けたarmatureまたはその構成メンバーboneに対して,個別のオブジェクトである目objectを関連付けをしてやる.

    関連付けは,modifiersconstraintsを導入して適当な設定で行う.

    objectである2つのmesh とboneの関連付け

    人体と目のそれぞれのmesh objectと複数のbone object (armature)の間で関連付けして,そのboneを動かしポーズを作れるようにする.そのためには,以下の内容は必須の知識となる.

    1) object modeおよびedit modeでの追随性.

    1. armature modifierでは,armatureのみ指定できる.まずは,これに従属させる.
    2. child of constraintsでは,armatureとメンバーboneも指定できる.
    3. 半追随移動とは,本体と比較して単位当たりの移動量が少ないが移動する.
    4. Xとは,移動しない.

    各 Modeでの追随性

    追随性確認の手順は,以下の2ステップで実施した.

    [objectのデザインと配置]

    1. デザインした人体objectには顔がある.
    2. の別objectとして目objectをつくり,顔の適当な位置に配置した.末尾に詳しい設定方法わ解説した.

    [boneの貼り付け]

    1. 人体objectの各関節に適合する人体armature (bones)をデザインした.
    2. 人体objectと人体armatureを位置調整し適切なweight paintを施した.

    [目objectへのmodifiersとconstraintsの設定]

    1. 目objectにarmature modifierとchild of constraintを以下の図1と図2のように設定する.この設定が正解である.
    2. object modeにて目objectのarmatureとchild ofのon/offの組合せの設定にする.
    3. object modeでなにも無い空間をLMBでクリックしていずれのobjectも選択されていな状態にする.
    4. armature (bones)をLMBクリックで選択する.
    5. mode を選択する(edit, objectまたはpose).
    6. boneを動かすには,G keyとマウスのドラッグで行う.edit modeとpose modeでは,目objectに設定したconstraintで指定したboneを動かす.ojbect modeでは個別boneを指定できないのでそのままでbonesを動かす.
    7. 目objectの動きを観察する.
    Image

    図. Armatureの設定
    Bone Envelopesは未チェク

    Image

    図.Child Ofの設定

    結果

    armature modifierとchild off constraintのon/offの組合せでのboneの移動による目objectの追随の観察結果を表3に示した.

    その結果,以下のようにまとめることが出来た.

      表3. pose modeでの追随性 : boneを動かした時の結果

      modifiersにはArmature, constraintsにはchild ofを設定し,そのon/offの組合においてboneを動かしたときのobjectの追随性について各modeで確認した.その結果を以下の表にまとめた.

      結果の概要

      • edit modeでは,当然にboneのみが動きobjectは追随しない.
      • object modeでは,半追随は可能.
      • pose modeでは,armatureのon/offに関係なくchild ofがonであれば,完全追随する.
      modifiersconstraintsedit modeobject modepose mode
      armaturechild ofboneのみ動く半追随完全追随
      armaturenoneboneのみ動くboneのみ動くboneのみ動く
      nonechild ofboneのみ動く半追随完全追随
      nonenoneboneのみ動くboneのみ動くboneのみ動く

      edit modeでの追随性の結果

      1. edit modeでは,その目的としている機能に適する挙動を示した.
      2. edit modeでboneを動かす作業目的は,目的のmesh objectに対するboneの位置をデザインすることであることから,boneは何の制限もうけずに動かすことができた.

      object modeでの追随性の結果

      1. object modeでは,boneの移動によるmesh位置とのずれが生じた.
      2. object modeの作業目的は,mesh objectのデザインを目的にしていることから,boneを動かすことは禁忌であると考える.
      3. ただし,全部のbone(追加でboneも含め)を他の空間に移動させることは可能でり,キャラクター全体の配置の移動はできる.

      pose modeでの追随性の結果

      1. pose modeでboneを動かしたときのmesh objectの追随性は,当該modeがそれを作業目的としていことから高いことは当然である.
      2. ただし,その前提としての設定値は,図1と図2に示した通りである.

      child of constraintでoriginがズレる?

      以上の結果は,以下の設定で検討した.

      1. 既に人体objectは人体armatureで設定されているものとする.
      2. 顔の目に当たる部分に目objectを配置している.
      3. 目objectにarmature modifiersを設定している.
      4. Ctrl A > All Transformsを実行しorigin(座標)を0に整えられている.
      5. 図1のように設定する.
      6. 目objectにchild of constraintsを設定している.
      7. 図2のように設定する.
      8. 以上が設定の成果となる.

      注意点

      1. object modeで,対象のmesh objectに対してchild of constraintのon/offをした時,位置がズレる場合は,上記の設定を確認する.
      2. 更に,以下のコマンドも必要になることもある.
        • set origin: object modeでLMBクリックで表示されるメニューの中にある.
        • Ctrl A > All Transforms: origin(座標)を0に整える.
        • set inverse : Child of設定においてobjectの位置がズレる場合は,set inverseで位置を戻せる.

      結論

      複数のobjectを組み合わせて人体(なんでも構わない)を構成させる場合,人体が動いた時,構成objectは一体的になって動く必要がある.

      顔についている目は顔に対して一体的に追随して,顔が動けばそれに従って追随なければポーズデザインなどできない.

      今回は,追随設定を確認した.

      履歴

      2026/04/12, KenJin