Blenderのフックとクロスシミュレーションで、カーテンを作る!
Blenderの「フック」モディファイアーとクロスシミュレーションを利用すれば、リアルなカーテンを簡単につくることができます。
フックとクロスシミュレーションを利用したカーテンの作り方
早速ですが、作っていきましょう。
オブジェクトの用意
まずはオブジェクトを用意します。
平面を用意
まずは平面がなくてはカーテンを作ることができません。
カーテンとなる平面を用意します。
Shift+Aで追加します。
頂点が奇数になるようにループカット入れる
カーテンがフックに引っかかるような構造を想定し、ループカット(Ctrl+R)を入れます。
このとき、頂点が奇数になるようにしてください。
なぜならばカーテンの両端にフックをひっかける必要があるためです。
縦方向に分割できたら、横方向にも同じ数になるようにループカットしてください。
フックの設定
次にフックの設定をします。
頂点を選択し、Ctrl+H
先ほど奇数になるように調整をした頂点。これを一つずつ選択し、各頂点に対して行います。
頂点を選択しCtrl+H、「新規オブジェクトにフック」をクリックします。
![]() |
![]() |
見づらいでしょうが、この操作により①カーテンに「フック」モディファイアーが追加されました。
それと同時に②フック用のエンプティも追加されました。
さらに自動で③エンプティがフックの対象オブジェクトとして設定されました。
まとめると、
Ctrl+Hで、
①カーテンに「フック」モディファイアーが追加
②フック用のエンプティが追加
③エンプティがフックの対象オブジェクトとして設定
④頂点がフックの中心として認識される(後述
この操作を一度に行うことができます。
基本的にフックモディファイアーを使う場合は、このようにCtrl+Hで設定することをオススメします。
謎の黒い点
先述しましたが、フックを設定するとオブジェクトモードであるにも関わらず、④謎の黒い点が出現します。
これはフックの中心。
ここが引っ張られて動くわけです。
この黒い点が自分の意図した位置に来ているかを、ちゃんと確認しておきましょう。
※黒い点の位置を任意にずらす方法もありますが、今回は割愛します。
手動で動かしてみる
【オブジェクトモード】の状態で、今ほど設定されたエンプティを動かしてみましょう。
この段階でカーテンがエンプティに追随するようであればOK。
変な動きをしたり、まったく動かないとかであれば、もしかしたら最初からやり直してみた方が早いかもしれません。
クロスシミュレーションとアニメーションを設定し、完了
エンプティでカーテンを追随させることができれば、続いてはしっかりと布状にします。
カーテンの面を細分化する
その前に、このままの面の数だと、上手くカーテンとして動かすことができません。
一度【編集モード】でAを押して全選択、右クリックから「細分化」をさせます。
面を増やしすぎると訳が分からなくなるので、ここでは控えめに。
とりあえずこの工程を一度だけ施し、面の数を4倍にします。
クロスシミュレーションの設定
クロスシミュレーションを設定して、布状にしましょう。
ただ、このままクロスを有効にするだけでは、重力に従って布はただ落ちていくだけです。
フックが引っかかるところに頂点グループを設けます。
ウェイト値は1.0でいいです。
(フックが引っかからないところのウェイト値は0にします。)
その後「物理演算」プロパティの「シェイプ」タブ内にある「固定グループ」に、今ほど設定した頂点グループ(作例では単に『グループ』)を指定しておきます。
これでただただ重力に従って落ちていくことはなくなるはずです。
![]() |
![]() |
固定なし | 固定あり |
エンプティにキーフレームを打ち込む
ここまで出来たら、もうひと踏ん張り。
エンプティにアニメーション設定を施します。
具体的にはエンプティを任意の位置に動かして、「位置」キーフレームを打ち込むだけです。
ちなみにキーフレームはIで設定できます。
Space でアニメーションがスタートし、キーフレームに応じて物理演算が開始されます。
こんな感じで。
よりリアルにする2つの方法
ここまでで、とりあえずカーテンを作ることはできました。
このままでもそれっぽいですが、もうちょっと作り込んでみたいと思います。
1.解像度を上げる
解像度を上げることで、よりリアルになります。
更に細分化する
更に細分化をすれば面の数が増えるため、その分リアリティが増します。
【編集モード】にしてAで全選択し、右クリックから「細分化」を選択します。
![]() |
![]() |
細分化前 | 細分化後 |
この時に頂点グループももう一度見直してください。
ウェイト値がピンポイントになっていないと、リアルな動きは演出させられません。
サブディビジョンを上げる
同様の理屈で、サブディビジョンを上げることでもリアリティが増します。
サブディビジョンの場合は、上げたり下げたりの調整ができます。
2.小物を作る
細部を作る、特に小物を用意することは、カーテンに問わずリアリティを向上させます。
「帯」のような動きを付ける
今回はせっかくフックを使った機構を作ったので、それつながりでもう一つ作ってみます。
帯で留めるような動きです。
実際のカーテンの開け閉めも、おそらくはこの辺りの高さを動かすと思います。このような動きを取り入れた方が、よりリアルになるでしょう。
ちなみに上部よりも手元の方を右に寄せるように動かした方がいいです。
(クロスシミュレーションの値をこだわれば、もっとマシな質感になるはずです。)
ディスカッション
コメント一覧
手順通りに行いキーフレームを打ち込んだのですが、エンプティとフックの部分しか動いてくれません。原因は何でしょうか・・・
こんにちは。
エンプティとフックが動いているときにオブジェクトは重力で垂れ下がっていなければ、クロスを設定してください。
また、途中でオブジェクトの位置を移動させてしまうと、原点の位置が狂ってしまってうまく動かすことができなくなってしまいます。
とりあえずざっと思いついたのはこの当たりです。