『Blender でアニメ絵キャラクターを作ろう! 後編 トゥーンレンダリングの巻』を読みながらトゥーンレンダリングを学習しております。この本、620 ページもあって分厚いんですけど、それは丁寧に解説されていることの証左であり、むしろ初心者に優しい一冊だと思います。それでもなおよくわからない点はあるわけで、そういうところを自分で調べてセルフ解説しよう、という記事になります。
使用している Blender のバージョンは 4.5.4 LTS です。
[p.184] 前髪の 6 つの面を選択できない?
書籍のほうには「ウェイトペイントモードにして、面のマスクを有効にして、前髪の 6 つの面を選択せよ」ということが書かれていますが、Blender のバージョンが違うせいか?そのままでは面を選択できません。私の場合は一旦編集モードに戻る必要がありました。手順は次のとおりです。
※ ウェイトペイントモードの状態から:
- ビューポート左上の [ペイントマスク] を有効にする。
- Tab キーで Hair の編集モードに切り替える。
- Hair の編集モードで面選択モード (3 キー) にして、前髪の 6 つの面を選択する。
- 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 キー) で見て Hair の右半分のうち、シームを入れる予定の辺を辺選択モードですべて選択する (p.241 右下の写真、あるいは図 4 参照)。
- [メッシュ] > [対称にスナップ] を実行する。
- オペレーターパネルを次のように設定する。
- {方向}: -x → +x または +x → -x (X 軸方向ならどっちでもいい)
- {しきい値}: 0.05 m (必要に応じて変更する。あまり大きな値にすると無関係な頂点を巻き込んでしまうと思われる)
- {係数}: 0 または 1
けっきょく左右どちらの頂点に合わせるかというだけの話であり、基本的に横髪、後ろ髪は左右対称に作ったはずなので、今回の場合、オペレーターパネルの設定をいろいろ変えても結果はそれほど変わらないものと思われます。
