Shave and a Haircut
for CINEMA 4D ミニチュートリアル

 Shave and a Haircut for CINEMA 4D(以下Shave)は、ご承知のように髪の毛やひげなどを生成するツールで、C4Dのプラグインと別アプリケーションのヘアスタイル編集ツールから成ります。単に髪の毛を生やすだけなら簡単ですが、編集操作の異なる別アプリでのスタイリングや、ヘアマテリアルの設定など、慣れが必要な部分もあります。また、鏡に映らないなどの欠点もあり、それをどうカバーするかという話も含めて、一連の毛髪生成の手順を説明します。

生やすだけなら簡単

 髪の毛を生やすだけならまったく簡単で、オブジェクトを選択して、Grow Hair(あるいはBeard、Eyebrow、Eyelash)のコマンドかアイコンですみます。しかもプレイボタンを押すと、その瞬間からダイナミクスが働き、オブジェクトを動かすと、重力や弾性に応じて髪の毛が動きます。
 しかし、人間の髪の毛など、部分的にしか生えていないときには、さらに手順が必要で、スタイリングにはShaveのアプリケーションを起動します。以下、それらの手順を具体的な例で説明していきます。

ポリゴン選択

 まず髪の毛を生やす部分を指定しますが、これにはポリゴン選択を使います。したがって、ただ生やすにはオブジェクトはなんでもよかったのですが、ここではポリゴンオブジェクトを使うことになります(または、HyperNURBSのケージとしてのポリゴンオブジェクト)。

 右図のように、まず髪の毛を生やす部分のポリゴンを選択します。つぎに、Set Selection[選択範囲の設定]コマンドでポリゴン選択タグを作ります。

 ここで、たとえばhairとか、タグに名前をつけておきます。選択されたポリゴン自体はもう使いませんので、選択を解除しても大丈夫です。
 そして、そのあとポリゴン選択タグを選択したまま、Grow Hairコマンドあるいはアイコンをクリックします。すると、デフォルトの長さの髪の毛が発生します。

 

もぐり込み防止のダミー球

 つぎに、衝突検知のためのダミー球を、頭の中に埋め込みます。この手順は省略可能ですが、あとでダイナミクスを使うときには必要になります。

 左図のように、球オブジェクトを頭の中に埋め込みます。衝突検知には余裕がありますので、すき間があいていても大丈夫です。プリミティブで大きさを調節したら、ポリゴン化して、本体の子オブジェクトにします。さらにGel Tagをつけて、衝突をオンにしておきます。

 このあと、Shaveのアプリケーションを起動して、ヘアスタイルを設定することになります。
 ちなみに、左図で見えているたくさんの曲線は、ヘアガイドで、ヘアスタイルはこのヘアガイドを編集することで設定します。

 

ヘアスタイルの設定

 本体のHairstyle Tagを選択したまま、Edit Hairコマンドあるいはアイコンをクリックすると、Shaveのアプリケーションが起動します。ここでは、独特の編集ツールに慣れる必要があります。左ボタンのマウスドラッグで、ビューが回転します。そして、まず選択・非選択の方法に慣れれば、このアプリを半分以上使いこなせていることになるでしょう。

 シフトキーを押したまま、ボタンを押さずにマウスを移動させると、右図のビームのような円ができ、シフトキーを放すと、その円にかかったヘアガイドが選択されます。
 コントロールキーを押したまま、ボタンを押さずにマウスを移動させると、同じようにビームのような円ができ、コントロールキーを放すと、その円にかかったヘアガイドが選択を解除されます。
 このとき、マウス移動をすこし戻して、円を小さくしようとしても、前の大きな円が残っていますが、選択・非選択は最終のマウス位置での円によって決まります。
 また、反対側のヘアガイドも選択・非選択されますので、選択・非選択したくないときは、あらかじめその部分だけ選択したあと、 SELECT > Hide Selectしておいてください。

 まず、髪全体を短くします。カットもできますが、髪全体の長さを変えるには、TOOL > Scale を使います。コマンドを選択し(これはモードとして、ステータスバーに表示されます)、マウスを左右に”右ボタンドラッグ”すると、髪全体の長さが変化します。

 つぎに、いよいよスタイリングに入るわけですが、大きく分けて二つの方法があるように思われます。
 一つは、TESTボタンにより、ダイナミクスを実行し、重力により自然な形にして、そこからさらに細部を修正していく方法。
 もう一つは、COMBメニューでくしをかけ、大まかな形を決めておいて、そこからさらに細部を修正していく方法。

 

 ここでは、自然な形に近いスタイルにしたいので、重力をかけることにします。TESTボタンを押し、ヘアガイドが自然に落ちてくるのを待ちます。ダイナミクスはいつでも、Escキーで終了します。
 いくつか、曲がってしまって落ちてこないヘアガイドもあるかもしれません。そのときは、左のように、一部だけ選択して、またTESTボタンでダイナミクスをかけてみます。またTOOL > Scaleで短くしたりします。

 部分的に修正を加えていき、イメージしたスタイルに近づけていきます。
 ヘアガイドを強制的に移動させるには、TOOL > Translate、ボリュームを持たせるには、TOOL > Puff Rootを使います。

 SELECTメニューでは、ヘアガイドの先端、途中の頂点、全体を選択するモードが切り替わります。
 EDITメニューでは、ヘアガイドの長さがゼロになったときの対処や、ヘアカット(頂点で切る)、ヘアを分ける、アンドゥなどができます。

 スタイルの設定がよければ、EXIT > Return to CINEMA 4Dを選択し、C4DダイアログのOKボタンを押します。

 

 さて、C4Dに戻って、ヘア・マテリアルの設定をします。カラーはもちろん、Frizz(ちぢれ)、Kink(ねじれ)を調節し、Hair Count(毛髪の数)を決めます。ここでは、ちぢれ、ねじれは少なめ、毛髪数は8000(少なめ)としました。
 マテリアル・ダイアログにプレビューがあるので見当はつきますが、よくわからないときは、プリセットのいくつかを試してみてください。
 ヘアを照らすライトには、Light Tagをつけます。ほかのものを照らすライトと分けることもできます。
 ではレンダリングしてみます。最初にヘアのレンダリングがあり、ポストエフェクトとして、最終的なレンダリングに加わります。

 このように、ポストエフェクト的に処理されるので、Shaveによる髪の毛には欠点があります。(屈折率1以外の)透明物から見えない、鏡に映らない、というようなことです。
 その対処として、ポリゴンやスプラインの髪の毛に変換する方法が用意されていますが、毛髪数が1万を超えるような通常の髪の毛では、変換するのはあまり実用的ではありません(仮想メモリさえパンクする可能性があります)。
 しかしながら、このような欠点に対処する方法は他にもあります。

鏡に映るShaveの髪の毛

 さっそく例を見ていただきます。左図の髪の毛は、Shaveで作成されたものですが、鏡に映っています。静止画だけでなく、アニメーションも可能です。
  もちろん、映るはずがないので、フェイクを使っているわけですが、以下でその種明かしをしています。想像がついた方もいるかもしれませんが、簡単な方法です。

 Shaveの髪の毛がなければ、対称オブジェクトを使って鏡面対称のキャラクターを置くことができます。さすがにポストエフェクトの髪の毛は、対称になりませんが、参照として使うことはできます。
 フェイクの方法は簡単で、イメージを張りつけるのですが、そのイメージを作るのには、ひと工夫が要ります。

 右図のように、鏡のある面について、鏡面対称な位置にあるカメラで、イメージをレンダリングします。このイメージは、鏡に映ったものを再現しています。鏡に反射しないと仮定して、届くイメージをこのカメラは捕らえているからです。ただし、イメージの左右は逆転します。

 この鏡面対称のカメラは、COFFEEエクスプレッションで、必ず本体カメラから見て鏡面対称な位置にあるようにコントロールされています。


鏡がワールド原点として、エクスプレッションの中身は以下のようです。

main(doc,op)
{
  var cam = doc->FindObject("Camera");
  if(!cam) return;
  var pos = cam->GetPosition();
  var rot = cam->GetRotation();
  pos = vector(pos.x, pos.y, -pos.z);
  rot = vector(-rot.x+PI, rot.y, rot.z);
  op->SetPosition(pos);
  op->SetRotation(rot);
}

 プログラミングはちょっと、というトラウマのある方は、最近ベータ版がフリーで公開されているbhodiNUTのブラント・トラウマがお奨めです。下のようになります。

 ここで、カメラのノードはオブジェクト・マネージャからドラッグ&ドロップで持ってきます。関数は右クリック(Command+クリック)で出てくるメニューから持ってきます。

 フェイクの手順は、まず鏡面対称カメラでレンダリングします。このとき、鏡は非表示にして、壁に大きな穴を開けておきます。その画像を鏡の面(Plane)に張りつけます。ただし、左右は逆に。また、レンダリング・タグをつけて、合成背景にチェックを入れるのを忘れずに。そして、鏡と壁をもとに戻し、本体カメラでレンダリングします。

 キャラクターを対称オブジェクトに入れておけば、左のように、鏡面対称の位置に、鏡面対称なポーズで現われます。
 ですから、この対称オブジェクトを参照して、張りつけたイメージにずれがないか確認することができます。


Shave and a Haircutは、Joseph Alter Inc.の商標です。
By H. Ikeda