logo-roadto3dcg
ヘッダー画像

Road to 3DCG

Blender | チューブや紐状のオブジェクトを曲げる・B-ボーン編

2016-08-13

(追記:この記事はBlender 2.77a時点のものです。Blender 2.78からはBボーンの設定が変わってBendy Bonesという呼称になり、柔軟な動きや揺れなどを作りやすくなっています)

(関連)Blender | カールコードの作り方 - Road to 3DCG (関連)Blender | チューブや紐状のオブジェクトを曲げる・Curveモディファイア編 - Road to 3DCG

カールコードなど細長いオブジェクトを曲げる方法その2、B-ボーンを使う。B-ボーンはボーンの表示タイプのひとつで、一本のボーンを背骨のように擬似的に分割して見せる。曲がり方がわかりやすくてコントロールしやすい。


カーソルをカールコードの原点と同じ位置に合わせ、Shift+A→Armature→Single Boneで新規ボーンを追加。

ボーンをコードと同じ高さに拡大する。この時点では巨大なボーン表示になるけど気にしない。

プロパティエディタ→オブジェクトデータ(人型アイコン)→DisplayでB-Boneを選択。X-Rayにチェックしておく。

ボーンの表示が太すぎて見にくい場合は、EditモードまたはPoseモードでボーン全体を選択し、Ctrl+Alt+S+ドラッグすると太さが変わる。

カールコードの本体はカーブでできているためウェイトペイントモードが使えなかったので、頂点グループのかわりにボーンの周辺範囲へ影響を与えて変形させる「エンベロープ」を利用してみた。カールコード→ボーンの順にShiftクリックで選択し、Ctrl+P→With Envelope Weightsを実行。

カールコードを選択してみるとArmatureモディファイアが作成されているので、Bone Envelopesにチェックを入れる。Subsurfなどのモディファイアを使っている場合はArmatureモディファイアのほうを上にする。

カメラや目玉ボタンが並んでいる一番右側のボタンをONにすると、大きく曲げたときにコードがゆがむのを防げる。画像は、後の手順で曲げたときのイメージ。

エディットモードに切り替えてAでボーンを全選択し、W→Subdivideを何回か実行して分割する。分割数を多くしたほうが細かく曲げられるけど、とりあえず2分割だけでやってみる。

ポーズモードで全てのボーンを選択。プロパティエディタのBoneで、Deformをチェックして有効にする。Segments欄にボーンを擬似分割したい数を入れる。ここでは分割数を10にした。選択中のボーン全てに同じ設定を一括適用するには、Altを押しながらSegments欄をクリックして数字入力する。

ポーズモードで上半分のB-ボーン(親子関係で子になっている方のボーン)を動かすと、カールコードがしなるように曲がる。ボーンの表示タイプを変えてもコードの曲がり方自体は変わらないけど、B-ボーンでは下半分の親ボーン部分も曲がって見えるのでボーン操作の影響がわかりやすいと思う。

より滑らかな曲がり方にするために、Deformのパラメータを変えてみたりとかなんとか。もっと細かく曲げたいときはエディットモードでボーンを選択してW→Subdivideで細分化する。

  • EnvelopeのDistanceを変えてみる(例:0.01とか小さめにしてボーンの影響範囲を狭くした)
  • 各ボーンのEase In 0、Ease Outを変えてみる(例:親ボーンをEase In: 0、Ease Out: 2、子ボーンをEase In: 2、Ease Out: 0にした)

使用ソフトのバージョン: Blender 2.77a