ネコガネ:メモ帳

Adobe Flash & AIR、Action Script 関連とゲーム制作に関するメモ。

Blender&Photoshopで少しだけ楽にゲーム・アニメ系キャラクターモデルの肌テクスチャを作成する方法

Blender Advent Calendar 2014 12月5日の記事です。

Blenderは10月頃から触り始めて2ヶ月ちょいですが、自分なりにこう作ると楽かも?という方法ができてきたのでまとめてみようと思いAdvent Calendarに表明しました。

今回紹介するのは、ゲームやアニメ系キャラクターで表現されるような、グラデーションの肌テクスチャを作成する方法です。

テクスチャ作成方法の説明に入るその前に、初めてBlenderを使用して作った作品についても紹介させていただきます。


これは、ニコニ立体の3DCGコンテストのローポリ部門に応募したものです。

以前描いたイラストをベースに、3DCGのキャラクターとしてリメイクしました。

モデルにはRigifyのアドオンを使ってアーマチュアを作成し、ボーンやウェイトを設定してあるので自由にポーズを取らせることができます。

手の指まで稼働するように分割も多めに作っているので、あまりローポリとは言えない出来栄えです(^^;

と、色々書いてると話が脱線しそうなので、さっそく本題に入ろうと思います。

目次

  • Blenderでテクスチャに陰影をベイク(焼付け)する
  • Photoshopのグラデーションマップを使って色をつける
  • Blenderでオブジェクトにテクスチャを反映する
  • まとめ

Blenderでテクスチャに陰影をベイク(焼付け)する

初作品を作った時に、体や髪の毛のテクスチャをすべて3Dビュー上のテクスチャペイントでチマチマと陰影を描き込んでいたのですが、非常に時間がかかりました。 でも、テクスチャにレンダリング結果を焼きこむことができる「ベイク」という機能を使えば、簡単に3Dモデルの陰影を2Dテクスチャとして展開することがきます。 初めに、テクスチャにグレースケールの陰影をベイクする方法を紹介します。

陰影をベイクするための画像を作成する

  1. このようなUVマップを展開済みのモデルを用意します。 テクスチャを作成したいオブジェクトの編集モードに入り、キーボードの[A]キーを押して全てのメッシュを選択します。ここでは肌の陰影を作成するので、[Body]オブジェクトのメッシュを選択しています。

    f:id:necogane:20141205185434p:plain

  2. ベイクを行うための画像を用意します。 UV/画像・エディターで、[新規]ボタンを押して新規画像を作成します。 名前はベイク用の画像だとわかるように[bake_body]とか、幅と高さはお好みのサイズで、背景はとりあえず[黒(#000000)]に設定します。

    f:id:necogane:20141205185445p:plain

ライトを追加する

テクスチャに陰影をベイクするためには、陰影を表現するためのライトが必要です。 一般的?に陰影をテクスチャにベイクする時にはAO(アンビエントオクルージョン)を使用して影を落とすようなのですが、ここでは簡単に「ヘミライト」を使います。 表現したい絵作りによってライティング方法は変わってくると思いますので、各自色々試してみてください。

  1. 3Dビューのシェーディングをライトが反映される設定([テクスチャ]や[マテリアル])に設定します。

  2. [ヘミライト]を作成します。

    f:id:necogane:20141205185333p:plain

  3. このようにライトの位置を調整し、真上から光が当たって、脇の下などが暗くなるように配置します。

    f:id:necogane:20141205185245p:plain

ベイクする

  1. アウトライナー・エディターでベイクの元とするオブジェクトを選択します。ここでは肌の陰影を作成するので、[Body]オブジェクトを選択しています。

    f:id:necogane:20141205185548p:plain

  2. プロパティ・エディターのヘッダーにある[レンダー]ボタンをクリックしてオンにします。

  3. 下の方にスクロールして[ベイク]パネルを表示します。

  4. 下記のように設定をして、[ベイク]ボタンをクリックします。

    f:id:necogane:20141205185918p:plain

    • ベイクモード: [フルレンダー]
    • [クリア]にチェックを入れると、画像を消去してから描き込まれます。追加で書き込みを行う場合はチェックを外す。
    • [余白]は8~16pxぐらい。UVの同士の間隔に合わせて調整する。
    • [選択→アクティブ]のチェックを外す。
  5. 先ほど作成した画像に、陰影がベイクされました。

    f:id:necogane:20141205185828p:plain

  6. 画像を保存します。

    f:id:necogane:20141205185853p:plain

注意:ベイクするオブジェクトのマテリアルについて

ベイクモードの[フルレンダー]は、すべてのレンダリング結果を反映するものなので、選択したオブジェクトにマテリアルやテクスチャが設定してあると、その結果(色や模様)も含めて反映されます。 今回の作例では、グレースケールの陰影のみを使いたいので、マテリアルは何も設定せずデフォルトのママにしてあります。 もし、マテリアルを設定している場合は、一時的にマテリアルを外したり、グレースケールの陰影が表現できるマテリアルに切り替えてからベイクしてください。

Photoshopでグラデーションマップを使って色をつける

「グラデーションマップ」という機能を使って、肌色のテクスチャを作成します。

グラデーションマップってどんな機能?

画像の明暗の値を元に、指定したグラデーションの色に置き換える機能です。

f:id:necogane:20141205190249p:plain

f:id:necogane:20141205190257p:plain

もっと詳しく知りたい方は、以下の記事が参考になると思います。

グラデーションマップを作成する

  1. 保存した画像をPhotoshopで開きます。カラーモードが[RGB カラー]になっていることを確認します。

    f:id:necogane:20141205190334p:plain

  2. [レイヤー]パネルの下部にある[調整レイヤーを新規作成]ボタンをクリックし、表示されたリストから[グラデーションマップ]を選択します。

    f:id:necogane:20141205190354p:plain

  3. [レイヤー]パネルに調整レイヤーの[グラデーションマップ 1]が追加されました。

    f:id:necogane:20141205190407p:plain

グラデーションエディターを使って肌色を作成する

  1. [属性]パネルの[グラデーション]をクリックして、[グラデーションエディター]を表示します。

    f:id:necogane:20141205190435p:plain

  2. グラデーションは左端(位置0%)から右端(位置100%)に向かって、画像の暗いところから明るいところと置き換えます。現在は、左端に[黒(RGB:0,0,0)]右端に[白(RGB:255,255,255)]の2色が設定されています。

    f:id:necogane:20141205190446p:plain

  3. 位置を追加してこのような肌色のグラデーションを作成します。

    f:id:necogane:20141205190502p:plain

    • 左端(位置0%):RGB(214,192,85)
    • 左端(位置33%):RGB(245,169,96)
    • 左端(位置67%):RGB(255,255,200)
    • 左端(位置100%):RGB(245,248,229)
  4. [OK]ボタンを押して確定します。

  5. グラデーションマップが設定され、肌色のテクスチャが作成できました。

    f:id:necogane:20141205190536p:plain

  6. PNG形式などBlenderが読み込める形式で保存します。肌のテクスチャも後で色を調整できるようにPSD形式のファイルとして保存しておきます。

ポイント:グラデーションの色を選ぶときに

肌色で暗くなっている部分の色を選択する際、暗いからといって彩度の低い色を選んでしまうと肌の色がくすんでしまい、見栄えが悪くなってしまいます。黒を混ぜたような影色にならないよう、色の彩度に注意して選択するとよいでしょう。

Blenderでオブジェクトに肌のテクスチャを反映する

オブジェクトにマテリアルを設定して、肌のテクスチャを反映しましょう。

  1. アウトライナー・エディターでベイクの元とするオブジェクトを選択します。ここでは肌のマテリアルを作成するので、[Body]オブジェクトを選択しています。

    f:id:necogane:20141205185548p:plain

  2. プロパティ・エディターのヘッダーにある[マテリアル]ボタンをクリックしてオンにします。

  3. [新規]ボタンを押して、マテリアルを作成します。

    f:id:necogane:20141205191020p:plain

  4. マテリアルに「Skin.Body」という名前をつけました。

    f:id:necogane:20141205191033p:plain

  5. 今回は確認のため、ライトの影響を受け無いように[シェーディング]パネルの[陰影なし]にチェックを入れます。

  6. プロパティ・エディターのヘッダーにある[テクスチャ]ボタンをクリックしてオンにします。

    f:id:necogane:20141205191051p:plain

  7. [新規]ボタンを押して、テクスチャを作成します。

    f:id:necogane:20141205191101p:plain

  8. テクスチャに「Texture_Body」という名前をつけました。

  9. [画像]パネルの[開く]ボタンから、先ほど作成したテクスチャを読み込みます。

  10. 下の方にスクロールして[マッピング]パネルを表示します。

  11. 下記のように設定して、マッピングにUVマップが反映されるようにします。

    f:id:necogane:20141205191116p:plain

    • 座標:[UV]
    • マップ:[UVMap]※オブジェクトに関連づけられているUVマップの名称を選択してください。
  12. オブジェクトに肌のテクスチャが反映されました。

    f:id:necogane:20141205191142p:plain

f:id:necogane:20141205191147p:plain

まとめ

ここまで読んでくださった方の中には、「わざわざPhotoshopでグラデーションマップなんか使わなくても、ディフューズにカラーランプを使用してやればマテリアルだけで同じことできるじゃん」と思われるかもしれません。

より良いテクスチャに仕上げるにはここからが大事なところで、首の部分にはもっと濃い影を描き込んだり、膝や肘などには赤みを足してあげたり、胸などもっと立体感を強調したいところにはテクスチャにもライティング処理を加える必要があります。

応用編として、グラデーションマップの利点やテクスチャの書き込み方法についてもう少し掘り下げた話なども考えてたのですが、記事が長くなってしまったので、今後別記事として投稿しようと思います。

最後までお読みいただきありがとうございました。

明日のBlender Advent Calendar 2014は、kozmofさん「なんかテクニカルなこと(未定)を書きます」です。

よろしくどうぞー!