クロスとフックを使ったカーテンの制作がとてつもなく難しかったので覚書として記す。
画像をクリックすると楽天に飛びます。
カーテンの作成
カーテンの作成の流れは以下のようになる。
①平面を細分化やサブディビジョンサーフェイスで頂点数を増やす。
②フックモディファイアを実際のカーテンのフックがかかるように設定する。
③頂点グループの作成。
④平面にクロスモディファイアをかける。
⑤エンプティの移動
⑥物理演算を行う。
①平面の頂点数を増やす。
平面を細分化してサブディビジョンサーフェイスを付けている。上からの画像でわかる通りカーテンのように折り目を付けている。
サブディビジョンサーフェイスをかけずに細分化しても良いが後から調整ができなくなる。
②フックモディファイアの追加
左端の谷の部分の一番上の頂点を一つ選択しCTRL+Hでフックモディファイアを適用する。同じく隣の山の一番上の頂点1つを選択しCTRL+Hでフックモディファイアを適用する。これを右端まで山と谷について行っていく。
CTRL+Hでフックモディファイアを適用するとエンプティが生成されエンプティを動かすと関連付けられた頂点が追従して移動する。ここで注意点としてはこのフックモディファイアの影響を受けている頂点は他の物理演算の影響を受けるという点にある。
③頂点グループの作成。
頂点グループを作成していく。山と谷の一番上の頂点だけを選択し、オブジェクトデータプロパティの頂点グループの+ボタンを選択し頂点グループを作成し割り当てボタンを押して選択された頂点を頂点グループに割り当てる。
④平面にクロスモディファイアをかける。
平面にクロスモディファイアを設定する。物理演算プロパティのクロスの設定のシェイプの項目の中にあるPinGroupsに先ほどの頂点グループを設定する。
この頂点グループに設定した頂点はクロスモディファイアの物理演算の影響を受けない。しかしこれらの頂点にはフックモディファイアが追加されているのでエンプティの影響は受ける。つまりここに設定された頂点はエンプティとの相対距離だけで動くことになる。
フックに複数の頂点を選択していたり、PinGroupとフックの関係が一致していない場合などは、頂点にはクロスとフックの影響を受けるグループ、クロスだけの影響を受けるグループ、フックだけの影響を受けるグループの3つのグループが存在することになる。これらを的確に把握していないとうまくカーテンが動いてくれない。
またモディファイアの順番も重要で上からフック、サブディビジョンサーフェイス、クロスの順にしないとうまく動かない。
PinGroupは物理演算の影響を受けないのできちんとした位置に置きたい頂点を選択する。
クロス自体の設定はデニムのような固い生地を選択しないとティッシュペーパーが溶けたような変形になってしまうので注意が必要。
⑤エンプティの移動
タイムラインの0フレームに全エンプティの位置をIキーでキーフレームを打つ。次にタイムラインを適当なフレームに移動させた後にエンプティを移動させキーフレームを登録する。
この時、エンプティの影響だけを受ける頂点の位置に注意すること。今回のケースでいうと左の谷を右の山の頂点が超えてはいけない。今回はエンプティ一つに対して同じライン上の1頂点なので分かりやすいが、位置がずれている頂点や複数の頂点を設定している場合は注意すること。
⑥物理演算を行う。
まとめ
たぶん解説サイトで一番のつまずくポイントはモディファイアの順番とデニムのような厚い生地に変更するという2点だと思った。クロスモディファイアは重い上に奥が深くて面倒くさい。