HEXA BLOG

CG

HEXA BLOGCG2019.3.1

あの谷を越えて行け

皆さんこんにちは。
最近Ryzen Threadripper 2970でPCを新たに組んだ、金欠の貧乏人。
大阪アーティスト・清水です。

Ryzen Threadripper 2970は1CPUで24コア48スレッドもあるバケモンCPUです。
以前まで使っていたcorei7が4コア8スレッドだったのでコア数(スレッド数)が6倍
シャアもびっくりのスピードアップです。

Cinebenchマルチコアのスコアで4200~4600程を叩き出します。(シングル性能はさほど高くないです)

vraybenchでは
corei7 4771 で3分が → Ryzen Threadripper 2970で30秒
順調に6分の1のレンダリング時間です。

さらに上位版の2990は32コア64スレッドもあるので4コアCPUの8倍のスピードに達すると思われます。
メニーコアバンザーイ!!!AMDバンザーイ!!!

さて、今回のブログですがCPUの話題ではありません(笑)
CGの世界(だけではないですが)には、それはそれは恐ろしい谷が存在します。
これまでに幾千万、百戦錬磨の猛者達が足を踏み入れ、そして死んでいった(アカンがな)
選ばれし者のみ、超える事を許された谷・・・

それが「不気味の谷」です。
一度足を踏み入れると簡単には抜け出せない。
返事が無い屍がゴロンゴロンと転がる、マリアナ海溝よりも深き谷。

今回はこの不気味の谷についてです

不気味の谷とは、要約すると「写実的な人間の像(CG含む)を作成した時の違和感からくる気持ち悪さ」で、
その感情的な反応をグラフ化した際に
ある地点で急激に「不快」さを感じてグラフの線が崖の様に落ち込むところから来ているようですね。
詳しくは調べてみてください。

ではCGで写実的(いわゆるリアル系)キャラクターを作成する時に感じる違和感にはどんな物があるでしょう?

・肌等の質感がリアルでない
・顔が左右対称
・いやいや、そもそもモデルの出来が悪い
等々。

色々あると思いますが個人的には「表情を付けた時の違和感」が一番不気味の谷にハマる時な気がします。
そのあたりを少し見ていきたいと思います。
はたして私は谷から這い上がれるのであろうか・・・・・・

私、現在個人制作で某名女優、(まぁオードリーヘップバーンなんですけどもね)をCGで作っているのですが・・・・・・・・
まず、第一段階。


・・・・・・・・・うーむ・・・微妙・・・
なかなかに苦戦しているのですが、まずあんまり似てないですね。
質感も肌の色がちょっと黄色すぎでしょうか。ファンデーションを意識してテクスチャを描いていたのがちょっとやり過ぎかな。

そして、今回のテーマである表情ですが。
う~~~ん・・・・・・目が怖い・・・何か怖い・・・いや全部怖い
どうすれば怖くなくなるんでしょうか。

では表情の考察をしてみましょう。
表情を変えた時に出る違和感ですが、一つの理由として、
「動くべき所が動いていない不自然な動き」と言う点ではないでしょうか。

顔の表情は当然のことながら筋肉や脂肪、皮膚等の動きで作られます。
その顔の筋肉ですがどこか一つの筋肉だけが「単体で動く」と言う事はまず無いと言って良いかと思います。
つまり、「何処かが動けば連動して他の部分も動く」と言う事です。

ではどの様に動くのでしょうか
第一段階の作例から進んで色々といじった現状モデルです

まず無表情(ちょっと上目使いですが)
まだいまいち似てないかなぁ・・・・・

ここからブレンドシェイプ(モーフ)で表情を付けたのがこちら。

・・・・・・・・・・ん、まぁ先ほどの笑顔よりは格段には良くなっているきがします。
テクスチャを変更し、モデルも根本的に修正したり。
もはや別物ですが、この「笑顔」どこをどの方向に動かしているか見てみましょう。

・唇は上下左右、口角は横方向(斜め後ろ)に一番大きく動いています。
・口元の動きにともないほうれい線の辺りに強い皺が発生しています。
それにつられて頬も少し外側と上に動きます。
・チークのあたりも上方向に動き、目元に少し影響を与えています。
・鼻は「人中」の辺りが少し上に動き、小鼻が横と上方向に引っ張られます
・顎のあたりは下と前に少し動く感じでしょうか。
・この表情では目も少し半目な感じなので上下瞼共に少し閉じています。
眉毛も少し上に動いています。

まだ試行錯誤中なので直したい部分はありますが、概ねこんな感じで動いていると思います。
口を中心に、ほぼ顔全体に渡り放射状に、外側あるいは前後へ動く感じかと思います。
口だけが動くと言う訳では無いと言う事ですね。
このように「つられて動く」部分も意識して表情を作る必要があるわけですね。
Zbrush上ではこんな感じ。

顔の細かいキメや皺、表情などはzbrushのレイヤーで分けて作ります。
こんな顔したマネキンが出てくるドラマがあったよなぁ・・・・

次に質感の話も少し

まず顔のテクスチャですが「TEXTURING xyz」と言うサイトで販売されているアルベドに加工された写真を使用しています。

最近見るハイクオリティ作品でよく使われています。
このサイトの「Multi-channel Faces」シリーズの画像を使い
下記のページのチュートリアルにあるZWRAP(zbrushのプラグイン)を使用したやり方で作成してみました。

https://texturing.xyz/pages/killer-workflow-using-xyz-and-zwrap

詳細はチュートリアルを見ていただきたいのですがもの凄く簡単です。

顔画像を貼った板ポリを、zbruahでZWRAPを使って顔のモデルにラッピングします。

すると板ポリが上の画像の様に顔の形に変形するのでこれをobj等で書き出します。
その顔の形をした板ポリから顔モデルに対してテクスチャを転写(トランスファー)します。
転写(トランスファー)はmari、mudbox、xnomal 等で可能です。
この作例ではUDIM(マルチタイルUV)を使用している関係上MARIで転写しています。(mudboxでも可能です)

MARI上で転写したものがこちら。

その後MARIでいらない部分を消したり付け加えたりメイク等を描きこんだり修正します。

大体こんな感じでカラーテクスチャを作成します。

それから今回の様な表情の場合には欠かせない「歯」について。

「歯」は個人的に顔のパーツの中でもかなりクソメンドク・・・いや厄介な部分かと思います。
無表情の時には見えないのでどうしても端折りがちになって・・・
ですが今回はやはり外せない部分ですのでちょっと真面目に作ってみました。
とは言えまだ試行錯誤中ではあります。
実は上に挙げた現段階の画像はver3で、その前にver2があるのですが、それがこちら。

歯には単純にSSSのマテリアルを当てただけです。
んーやはりどうも不自然ですよね(歯だけではないですけれど)。
「歯」の質感はそこそこに厄介です。

まず歯の構造ですが、一番内側に神経や血管の通っている「歯髄」があり、その外側を象牙質が覆っています。
というか象牙質の中を神経や血管が通っていると言った方が良いでしょうか。
さらにその外側、をエナメル質が覆うと言う3層構造になっています。

黄色味のある象牙質の外側を半透明のエナメル質が覆っているので、内部の象牙質の色がうっすらと表面に出てきています。
この象牙質の色で、その人の歯の基本的な色が決まります。
個人差はあると思いますが、象牙質は少し黄色みがあるので、歯の色は真っ白では無いです。
(もちろん個人差やホワイトニング処理、ライト環境等で見え方は違います)

クリーチャーや動物等は、思い切って汚れや傷等の効果を付けたり、黄色い歯にしても問題ないでしょうが、
今回の様な女優さんの場合、黄色すぎると「汚い」印象になってしまいます。

かといって白すぎると作り物の歯の様な印象を与えてしまいます。
実際にはホワイトニング処理されて不自然な程白い歯の芸能人もたくさんいるので、それでも良い場合もありますが、今回は自然な歯を作りたかったので色味のさじ加減が難しい・・・・
テクスチャを張り付けてマテリアルも調整し歯と歯茎だけレンダリングしたものがこちら。

この印象では少しSSSがきついかなと言う気もしますがどうでしょう、ver2の歯と比べ随分と「歯」になっていませんでしょうか。

まずzbrushのポリペイントでこんな感じのテクスチャを作成します。
根本の方を少し強めに黄色を入れ、全体は薄いベージュでペイントします。
歯茎は根本側を濃い赤にし、歯に近くなるにつれて薄いピンクになる様にペイントします。

そして前歯の先、透明度が高く見える部分を作成します。
個人差もありますが、前歯は良く見ると先端の少し内側が他の部分より透けて見える事があります。
こういう表現を入れてあげる事でぐっとそれっぽく見えますよね。
で、この部分ですがOpacity(不透明度)用のマスクを描いて制御します。

こんな感じで透けてほしい部分を黒くペイントします。
MUDBOXはこういったマスクをサクッと作成するのにはとても便利です。(maya/3dsmaxのsend機能を使用)

先端の少し内側を黒く、そして上下方向に対して筋ができるようにペイントします。
濃さはレンダリングしながら必要に応じて調整しましょう。
このマスクをOpacityに張り付けてやります。
ただOpacityの項目が無いSSSのマテリアルもあるかと思います・・・
その場合はどんな方法が良いか模索しないといけないですが、今回使用しているマテリアルはV-rayのalsurfaceを使用しています。このマテリアルにはOpacityの項目があるのでここに貼ります。

説明は端折っていますがzbrushでスカルプトしてnomalマップ及びdisplacementマップを作成してモデルに適用しています。
マテリアルの設定はだいたいこんな感じです。

ARNOLDの場合はver5以降fastskinの様なSSS特化のマテリアルは無くなった様ですがARNOLD標準マテリアルならOpacityの項目はあるのではないでしょうか。

こんな感じでSSSの、半透明とは別に不透明度(透明度)の設定をしてやります。

そしてさらにV-rayのブレンドマテリアルを使います。
Base materialの項目に先ほどの歯のマテリアルを繋ぎ、coat materialの項目にガラスや水のような透明で反射率の高いマテリアルを繋ぎblend amountでブレンド量をコントロールします。

つまり歯の上にクリアコーティングするイメージですね。

これにより歯とは別の、唾液の反射等も表現できるので質感がより複雑になります。

後、全体のクオリティを上げる為に産毛を生やしたり涙の表現等を入れたりするとよりリアルになっていくのではないでしょうか。

さて・・・・・
今回は「不気味の谷」についてでしたが、表情も1つで、さらに静止画でしたのでまだマシだと思うのですが、
アニメーションで違和感が出ない様にするのは相当難しいのかと思います。
そして、はたして私は「不気味の谷」は越えられたんでしょうかね・・・・・・

う~~~~~む・・・
なんか微妙に怖い気もする・・・
まだCG臭さも残ってる・・・
・・・・・・・・・・・・・・

ちなみにですが作業環境は

MAYA2018.5
V-ray NEXT for MAYA
Ornatrix for MAYA (Hair&Fur)
MARI 4.x
Zbrush2018
Mudbox2018
Substance painter2018.3

使用素材
テクスチャ用画像・スカルプトに使用するディスプレイスメントマップ用画像

TEXTURING xyz
https://texturing.xyz/

HDRI mega pack 1.0 collection
TEN24
ストア
https://www.3dscanstore.com/index.php?route=product/product&product_id=957

今回はかなり長くなりましたが、是非皆さんも谷越えを目指してみてはどうでしょう
それではまた~

RECRUIT

大阪・東京共にスタッフを募集しています。
特にキャリア採用のプログラマー・アーティストに興味がある方は下のボタンをクリックしてください

RECRUIT SITE