『Blender でアニメ絵キャラクターを作ろう! 後編 トゥーンレンダリングの巻』に Blender 4.5.4 LTS で挑もう!

『Blender でアニメ絵キャラクターを作ろう! 後編 トゥーンレンダリングの巻』を読みながらトゥーンレンダリングを学習しております。この本、620 ページもあって分厚いんですけど、それは丁寧に解説されていることの証左であり、むしろ初心者に優しい一冊だと思います。それでもなおよくわからない点はあるわけで、そういうところを自分で調べてセルフ解説しよう、という記事になります。

使用している Blender のバージョンは 4.5.4 LTS です。

[p.184] 前髪の 6 つの面を選択できない?

書籍のほうには「ウェイトペイントモードにして、面のマスクを有効にして、前髪の 6 つの面を選択せよ」ということが書かれていますが、Blender のバージョンが違うせいか?そのままでは面を選択できません。私の場合は一旦編集モードに戻る必要がありました。手順は次のとおりです。

※ ウェイトペイントモードの状態から:

  1. ビューポート左上の [ペイントマスク] を有効にする。
  2. Tab キーで Hair の編集モードに切り替える。
  3. Hair の編集モードで面選択モード (3 キー) にして、前髪の 6 つの面を選択する。
  4. Tab キーでウェイトペイントモードに戻る。

[p.188] 自動正規化は有効?無効?

Step 03 のスカートのウェイト設定では、「自動正規化の有効・無効は各自の判断で」と書かれています。自動正規化を有効にすると、Skirt* ボーンの周辺のウェイトを 0.5 などで塗っても赤く表示される (ウェイト 1.0) 場合があるので、混乱するかもしれません。ですので、ここは無効のほうがいいかなと思いました。

[p.195] ウェイトペイントのグラデーションツールのショートカット

Blender 3.6 までは Alt + 左ドラッグだったみたいですが、バージョン 4 からは「Shift + A を 1 回押して、放してから左ドラッグ」に変更されました。ウェイトペイント時に「Shift + A」を押すとマウスカーソルの十字がちょっと太くなるので、その状態で左ドラッグすればグラデーションをかけられます。キャンセルは右クリックです。

[p.204] ウェイトペイントのチェック用スクリプト

ウェイトペイントの章 (第 2 章) の最後で、赤い太字で「ボーンに追従してこない頂点がないか、必ず確認してください」と念を押されます。そこで、ウェイトが設定されていない頂点がないかを調べるための Python スクリプトを作ってみました (そのようなアドオンはすでにあると思いますが…あとバグがあったらすみません)。

https://gist.github.com/mijinco0/887ddd446bbc46d195f477166381d99e

このスクリプトを適当なファイル名で保存し、メインメニュー > [スクリプト作成] でスクリプト作成パネルを開き、[開く] ボタンでこのファイルを開いて実行します。

すべてのコレクションのすべてのオブジェクトのすべての頂点についてウェイトを CSV ファイルにダンプし、どのボーンのウェイトも乗っていない頂点があったら「_WeightZero_」と出力します。

[p.241] シームはまだ入れない

p.241 の Step 05 はちょっと混乱してしまいました。ここのページではまだシームは入れずに、写真やサンプルデータを参考にしながら辺を選択する作業に専念します (Step 05 の最初にそのように書かれてはいるのですが、中段、下段のパラグラフに「シームを入れる」と書かれているので、実際にシームを入れながら読み進めてしまいました…)。

[p.242] 「対称にスナップ」は何をやっている?

Step 06 の「対称にスナップ」が何をやっているのかよくわからなかったので、調べてみました。

図 1 のように X-Y 平面上に元は 2 平米の正方形だった四角形があって、右上の点だけ X、Y それぞれ +1 メートルだけずれた位置にあるとします。説明のために元の点を p、ずらした点を p’、p と Y 軸で対象な点を q とすると、pp’ 間の距離はルート 2 で 1.41 メートルくらいになります。

てな状況で点 p’ を選択し、ビューポートのメニューから [メッシュ] > [対称にスナップ] を実行してみると、何も変わりません (図 2(a))。これはしきい値が 0.05 m に設定されていて pp’ 間の距離よりも小さいからです。

そこで、オペレーターパネルの [しきい値] を 1.5 m に変更すると、今度は図 2(b) のようになりました。係数が 0.5 に設定されているので、点 p’、q がそれぞれ妥協して

  • 点 p’ は pp’ の中間の点
  • 点 q は p’ の移動先と Y 軸で対称な点

にスナップしたということだと思います。

そこで今度は係数を 0 にしてみます。結果は図 3(a) のようになりました。これは「[方向] が「-x → +x」に設定されており、スナップの基準が -x 側の点 q にあり、その重みが 0 なので、点 q が譲歩して点 p’ に合わせた」という解釈になるかと思います。

逆に係数を 1 にしてみると、結果は予想通り、図 3(b) のようになりました。今度は点 p’ が譲歩して点 q に合わせたので、元の正方形に戻りました。

[方向] を逆 (+x → -x) にしてみた場合の結果もこれまた予想通りです。

  • 係数 1 なら (見た目のうえでは) 図 3(a) に一致 (図 3(c))
  • 係数 0 なら (見た目のうえでは) 図 3(b) に一致 (図 3(d))

[p.241,242] Step 05,06 まとめ

というわけで p.241 からの Step 05 と 06 でやることをまとめると、次のようになるかと思います。

  1. 正面視点 (1 キー) で見て Hair の右半分のうち、シームを入れる予定の辺を辺選択モードですべて選択する (p.241 右下の写真、あるいは図 4 参照)。
  2. [メッシュ] > [対称にスナップ] を実行する。
  3. オペレーターパネルを次のように設定する。
    • {方向}: -x → +x または +x → -x (X 軸方向ならどっちでもいい)
    • {しきい値}: 0.05 m (必要に応じて変更する。あまり大きな値にすると無関係な頂点を巻き込んでしまうと思われる)
    • {係数}: 0 または 1

けっきょく左右どちらの頂点に合わせるかというだけの話であり、基本的に横髪、後ろ髪は左右対称に作ったはずなので、今回の場合、オペレーターパネルの設定をいろいろ変えても結果はそれほど変わらないものと思われます。

[p.244] UV 展開してみたら、謎の切れ端が発生

本書の前編『モデリングの巻』を見ながら同じようにモデルを作ったつもりだったんですけど、実際に UV 展開してみると、辺と辺がおかしなところでつながっていたり、面を張るのを忘れていたりと、ポカが次々と露呈するので呆れております。な中で特に手を焼いたところを書き残しておきます。

UV 展開された絵を眺めていたら、ごく小さなメッシュの欠片を見つけてしまいました (図 5)。アパートの自室で G を見かけてしまって、それを認めたくないような、嫌な気分…。でもまあ現実に見てしまったものは仕方がないので、「UV の選択を同期」をオンにして場所を特定したら、左側頭部の髪の房の付け根あたりの、チリ共和国みたいに細長い三角形でした。

不思議なことに右側頭部側の対称な三角形はちゃんと Hair 本体の一部として展開されていました。いったい何がちがうんだ?と頂点が二重になっていないかとか、頂点の座標が左右対称じゃないのかとか、シームを入れ忘れたのかとか、それこそ穴のあくほど眺めていろいろ調べたけれど、怪しい点は発見できず。

で、解決できずに 2 日間ほど悶々と過ごしたのち、ようやくわかったのは「となりの面を張り忘れてた」ってことでした。このへんは Hair の内側なので目視しづらいんですよね…それまでは Alt + Z で半透明にして確認してましたが、それだと面が張られているかどうかはわかりづらいです。

図 6(左) のように Hair の表面の一部を選択して H キーで隠した状態で中を覗いたら、一目瞭然でした (図 6(中))。そりゃあとなり合う面がなかったらはぐれるしかないよなあ、ってことで図 6(右) のように面を張って、隠してた部分を Alt + H で元に戻して (これをやると p.240 Step 03 で非表示にした部分まで表示されてしまうので、そこはもう一回 Step 03 をやりました)、再度 UV 展開を実行したら、ようやくいい感じになりました (図 7)。

[p.258] パーカー袖の内側の UV 島が左右で一致しない?

パーカーを UV 展開し、袖の内側の島を重ね合わせてみたら、左右で一致しませんでした (図 8)。他の島、たとえばパーカーの紐なんかはきれいに一致するので不思議です (図 9)。ただまあ、書籍のサンプルデータの Chapter03F.blend を確認すると、そちらも (私ほどではないけど) 微妙にずれているので、そういうものっぽいです。

多少ずれていても、テクスチャを貼ったときに左右で仕上がりがちょっと異なるってだけの話だと思うので、モヤモヤするけどこのまま進めようと思います。

[p.263] 「アクティブ四角形面に追従」してもなにも起こらない!

結論からいいますと、バージョン 4 では本書の説明どおりにはいかないみたいです。サンプルデータの Chapter03E.blend を用いて確認したところ、4.5.4 LTS は×、3.6.23 LTS は〇でした。ChatGPT がいうには、バージョン 4 あたりから「アクティブ四角形面に追従」が可能になる条件が厳しくなったみたいです。

で、代替手段を考えなければならないのですが、これには下記のページが大変大変大変参考になりました。

【Blender4.0】標準機能だけでUVを短冊状に開く方法
https://signyamo.blog/b4-0_uv-rectangle/

手順は次のとおりです。

  1. p.262 Step 06 でスカートのみを選択して編集モードに入るところまでやる。
  2. 比較的水平 (かつ垂直) で矩形に近い形をしている四角形を選ぶ (ここでは図 10(左) のように左側 (ウエスト側) の真ん中へんにある四角形を選択)。
  3. UV 編集画面で頂点選択モードに切り替えて、選んだ四角形の四辺が水平・垂直になるように位置を調整する (図 10(中))。
    • 選択した頂点の座標は N キーで確認可能。
    • S → X → 0 や S → Y → 0 も活用する。
  4. 面選択モードに切り替えて、この四角形を面選択する。
  5. そのまま L キーでスカートの UV マップ全体をリンク選択する。
  6. U キー → [アクティブ四角形面に追従] を実行する (図 10(左))。

なんか p.263 の写真と比べるといびつなのが不安ですけど、一応テクスチャが貼れそうな形状になりました。

にしても UV 展開に入ったあたりから問題続出で (まあ自分のポカもあるけど)、先行きが不安です。バージョン 3 にダウングレードしたほうがいいのかな?

2026年4月24日 追記: 次のようにすれば、一応本書に近い手順で短冊状にすることができました。

  1. p.262 Step 06 は本書のとおりにやる。
  2. Step 07 の「ライトマップパック」も本書のとおりにやる。
  3. ライトマップパックの展開結果の中から、正方形よりは長方形に近いマスをひとつ選択する (やらなくてもいいかも。でもやったほうが本書の写真に近い仕上がりになりました)。
  4. 手順 3 のマスを選択した状態で A キーで全体を選択する。
  5. U キー → [アクティブ四角形面に追従] を実行する。

とりあえず見た目だけはお手本のとおりになったけど……実は内部的なデータとかにちがいがあって、この先の作業に支障があったりするかもしれません。そのときはそのときで考えたいと思います。

2026年5月20日 追記: 書籍のサポートページのダウンロードデータに、この問題の対処法が収録されていました。Chapter03_Troubleshooting.mp4 という動画の 2:33 ~ です。

[p.324] 不要な画像テクスチャを削除する

画像テクスチャを新規作成するときに、操作や設定をミスってやり直すと、Eye Texture.001、Eye Texture.002 … のように連番で新しい画像テクスチャがどんどん作成されてしまいます (図 11(a))。これらを削除する方法をメモしておきます。

  1. シェーダーエディター上で不要な画像テクスチャノードを削除する。
  2. [エディタータイプ] > [画像エディター] で画像エディターを開く (図 11(b))。
  3. [リンクする画像を閲覧] ボタンをクリックし、削除したい画像を選択する (〃)。
  4. [フェイクユーザー] を OFF にする (〃)。
  5. 手順 3、4 を繰り返して削除したい画像の [フェイクユーザー] をすべて OFF にする。図 11(c) のようにテクスチャ名の左側の「F」が消えていれば OK。
  6. メインメニュー > [ファイル] > [クリーンアップ] > [未使用データをパージ] を実行する (図 11(d))。

[p.370] 後ろ髪に元からある影のせいでテクスチャペイントしづらい

後ろ髪の影をテクスチャペイントで描こうとしたら、図 12(左) のようにすでに全体的に影がかかっていて、これじゃペイントしても出来映えがわからないよ、と思いました。p.370 上段の写真はそうなってないんですよね。で、なんとかしたいと思っていろいろ試したところ、シェーダーエディタで「Toon」ノードの出力を一時的に切断することで、この影を非表示にできました (図 12(右))。

手順:

  1. Hair オブジェクトを選択する。
  2. メインメニューから [シェーディング] を選択する。
  3. シェーダーエディタで Toon ノード (p.280 で作成し p.348 で「Toon」にリネームしたノード) から乗算ノードへの接続を切断する。
  4. ペイントを終えたら元どおりに接続しなおす。