「Vtuberの雑学メモ帳」

ゲーム・VTuber・UE5・Blenderを楽しむオタクの雑記ブログ。趣味100%で更新中!

【Blender初心者】猫目アニメ顔キャラの体作成②(細部や手のモデリング)

直近2週間は、マベライのシーズン5とスタレゾをがっつり楽しんでしまい、モデリング作業が全く進められなかった…!

あと、ここ数日とある作文コンテストへ出す文章を作成していたこともあって、だいぶ更新間隔があいてしまったけど、久々に美少女3Dモデルの制作記をまとめてみた。
(コンテスト用の文章は、落選したらブログに掲載する予定w)

▼記事本文は「続きを読む」からどうぞ!
24枚ほど大きい画像を載せているため、wifi環境での接続がオススメ。

◆手のモデリング

20251126の1 20251126の2
▲手の平と手の甲は、①Ψマーク・②Aマーク・③Aマークの先端から水かきに繋がるラインを意識しながら作成した。

20251126の3
20251126の4
20251126の5
20251126の6
▲【>ゼロブレさんのBlender本】を読みながら、さらに作り進めた状態。

ゼロブレ本は、爪&手の甲&手の平&水かきの作成工程が見づらくて、どんなトポロジーなのか分からず大苦戦した。

特に爪の部分指⇔手の甲を繋ぐ部分は作り方がいまいち想像できず、かなりぐちゃぐちゃなトポロジーになってしまった

ただ、指の作り方だけは分かりやすかった!

一応人間の手らしくなったものの、三角面が多すぎるし、サブディビジョンを適応したら汚くなりそうでちょっと不安。
関節も、これで上手く曲がってくれるのかどうか…w

◆肘・膝のモデリング

20251126の7
▲ゼロブレ本に頼りつつ、どのラインがどこへ繋がっているのかよく分からないまま肘を作っていった
何回も画像を見ながら作ってみたけど、これで良いのかな?
自信が無さすぎる。

20251126の8
▲膝はかなり良いかんじ。

20251126の9
膝下(ふくらはぎ)の曲線かつてないほど綺麗に整えられたと思う。
前から見えるお尻ふともも~お尻の曲線も、気合を入れて調整した。

どのくらい脚を太くするかでまだ悩んでいるものの、全体的な脚のライン脚フェチでも満足できるレベルの仕上がりになってきたので嬉しい。

  • ちょっと真似した印象だと、ゼロブレ本のモデリングパートAmazonにあるレビュー通り中上級者向けの難しい内容かも。
  • モデリングパートがあまりにもダイジェストすぎる内容だから、1体も作ったことがない初心者だとたぶん全然ついていけないタイプの本だと感じた。
    (完成経験があっても、画像の見づらさと説明不足で詰まるところが多々ある)

◆ヘソのモデリング

20251126の10
▲ヘソは「>なのです本」と似たような作り方だったため、スムーズに作成できた

  • ちなみに、超定番のBlender教本「なのです本」は、なんとAmazonにて2025年11月31日まで電子書籍版だけ半額還元セール中(≒実質50%引きセール中)らしい。
  • 興味がある人は忘れずに買っておこう!
    ※ア〇ィ目的じゃないんだけど、あまりにもお得すぎるから一応宣伝しておくw

◆足の指のモデリング

20251126の11
20251126の12
足の指は、足先の土台を軽く分割した後、適当に押し出して作った

ただ、足の指まで作ってしまうと、土台に合わせて作っておいた靴可愛らしいシルエットが崩れるのでどうしようか悩んでいる。

ソックスを履いた状態の足先(なのです本のように指を作らず土台だけで済ませるタイプ)にしておく方がデカ足にならないし、靴を履いた時のシルエットが可愛くなると感じた。

とりあえず指ありの足先にしておいて、靴からはみ出る指部分だけシェイプキーで縮小してフィットさせるべきか考え中。

  • まさかモデリング中に古代中国で纏足が流行った理由を体感するとは思わなかった…!
  • 足の小ささを美とする文化は正直理解できなかったけど、いざ自分でモデリングしてみると足先は小さい方が断然可愛く見えることに気付く。
  • ちょっとだけ視野(というか性癖?)が広がったかもしれない。

◆リギング直前の最終的な雰囲気

20251126の13
20251126の14
20251126の15
20251126の16
リギング前の全体像(足の指を作らなかった初期バージョン)。

お尻部分は、ゼロブレ本のやり方がダイジェストすぎてついていけなかったので、Saba先生のやり方を思い出しながら作った

書くほどでもない微調整をたくさんやった分、確実に前回よりリアルさが上がっているはず!

◆ボーン入れの失敗談と方針転換

今回は「VRM format」という無料アドオンでVRM1.0用ボーンを時短作成するつもりだった。
※上記アドオンの使い方は「>VRM formatのチュートリアル」を参照。

ただ、作成中、VRM1.0用のボーンを作ると古いVRM対応ソフトで使えない問題が発生することに気付いてしまった。

  • ふさこさんのYouTube講座でも言及があった通り、明確にVRM1.0で作らなければいけない理由がない場合、VRM0.0で作る方が無難かも。
  • 一旦F4から仮出力して頭身バランスを外部ソフトで確認しようとしたら、VRM Live Viewerや3teneで仮VRMをうまく読みこめない問題が発生して困った。

VRM1.0で作ると予想以上に非対応ソフトが増えてしまいそうなので、今回はやっぱりVRM1.0形式コンストレインを取り入れずに進めようと思う。
(どうせならねじれ対策のコンストレイントに挑戦してみたかったけど、VRM0.0だとゼロブレ本のやり方でコンストレイントを設定できるか分からないから止めることにした)

◆別々のアーマチュア間でトランスフォーム値をコピペする方法

【下準備】

20251126の17
▲VRM0.0用アーマチュアを作り直すにあたって、位置調整済みVRM1.0用アーマチュアのトランスフォーム値新しく追加したVRM0.0用ひな形アーマチュアへコピペしたら、ゼロから各ボーンの位置調整をせずに済んだ

※上図の位置ズレした状態をなおす方法(=別々のひな形アーマチュア同士でボーンの大きさや位置を全部コピペして揃える方法)は初めて知ったので、ChatGPTに教えてもらった内容を一応メモしてみる。

  • 念のためバックアップ用のBlenderファイルを作ってから作業にとりかかる。
  • 情報コピー元の旧1.0アーマチュア「ArmatureOld」情報コピー先の新0.0アーマチュア「ArmatureNew」という名前に設定しておく。
  • 上部タブ右端の[Scripting]タブを開く。
  • Scriptingタブ内上部のNewボタンを押してText Editorを開いた後、以下のコード①~③をそれぞれ貼り付けて、▶ボタンから1回ずつ別々に実行する。
    ※もしコードを消す時にText Eidtor欄が消えて3D Viwe Port欄に変わったら、窓左上のアイコンから[Text Editor]欄を選べば再表示できる。
    ※VRMformatだとVRM0.0⇔VRM1.0は、N窓[VRM]タブ>[VRM〇.〇]項で変更する。
    (タイプ指定後に[Create VRM Model]を押せば、ひな形ボーンが作成される)

【コード①(コンストレイントを各ボーンに作成)】

import bpy

# ここを必要に応じて変更
OLD = "ArmatureOld"   # 古いアーマチュア名
NEW = "ArmatureNew"   # 新しいアーマチュア名

old_arm = bpy.data.objects[OLD]
new_arm = bpy.data.objects[NEW]

for bone in new_arm.pose.bones:
    if bone.name in old_arm.pose.bones:
        ct = bone.constraints.new('COPY_TRANSFORMS')
        ct.target = old_arm
        ct.subtarget = bone.name
        print("Copy:", bone.name)

【コード②(旧アーマチュアと新アーマチュアの位置を揃える)】

import bpy

OLD = "ArmatureOld"   # ← 古いアーマチュア名
NEW = "ArmatureNew"   # ← 新しいアーマチュア名

old_obj = bpy.data.objects[OLD]
new_obj = bpy.data.objects[NEW]

# 1) collect edit-bone transform data from old armature
bpy.ops.object.mode_set(mode='OBJECT')
bpy.context.view_layer.objects.active = old_obj
bpy.ops.object.mode_set(mode='EDIT')
old_edit_bones = old_obj.data.edit_bones

data = {}
for eb in old_edit_bones:
    # copy vectors so we don't reference mutable data
    data[eb.name] = (eb.head.copy(), eb.tail.copy(), eb.roll)

# 2) apply to new armature (only for names that exist)
bpy.ops.object.mode_set(mode='OBJECT')
bpy.context.view_layer.objects.active = new_obj
bpy.ops.object.mode_set(mode='EDIT')
new_edit_bones = new_obj.data.edit_bones

for name, (head, tail, roll) in data.items():
    if name in new_edit_bones:
        eb = new_edit_bones[name]
        eb.head = head
        eb.tail = tail
        eb.roll = roll
        print("Applied edit-bone:", name)
    else:
        print("Not found on new armature:", name)

# return to object mode
bpy.ops.object.mode_set(mode='OBJECT')
print("Done: copied edit-bone transforms.")

【コード③(各ボーンのコンストレイントを削除)】

import bpy
NEW = "ArmatureNew"
obj = bpy.data.objects[NEW]
for pb in obj.pose.bones:
    while pb.constraints:
        pb.constraints.remove(pb.constraints[0])
print("All constraints removed from", NEW)

【後処理】

  • コード①~③をそれぞれ実行し終わったら、ポーズモードで全選択して[Alt+R]・[Alt+G]・[ALt+S]から全ての位置情報をリセットしておく。
  • あとは、動かしたいパーツに付けているArmatureモディファイアの[Object]項に、作り直したコピー先アーマチュア[ArmatureNew]を指定すればOK。

【補足メモ】

VRM用人型新規ひな形ボーンに位置調整済みVRM用人型ボーンの情報をコピペしたい時は、上記のやり方でコピペできると思う。
(本来は手作業で各ボーンを指定してコピペしないといけないから、アーマチュアの情報をコピペするならスクリプトで一括処理する方が楽らしい。
今後使う機会は無いだろうだけど記録しないと絶対忘れるので自分用に整理してみた)

一通りやってもVRMLiveViewerへ読みこんだ時に「The given key was not present in the dictionary」と出て失敗する時は、一旦ボーン作成前のBlenderファイルを開いて0.0用ひな形ボーンを新規作成➡そのまま何もせずにボーンとパーツをF4➡VRMVRM出力してVRMLiveViewerにVRMモデルとして読みこめるかチェックしてみる。
VRMが無事に読みこめたら、位置調整しておいた旧1.0アーマチュアをアペンド機能で読みこんで、その後に上のコピペ作業や自動ウェイトを実行すれば大丈夫なはず。

自分はいじりすぎていたのか一旦コピペ作業が失敗したものの、アペンド機能を使ってリトライしたらなぜか上手くいった
訳が分からないけど、とりあえず0.0対応アーマチュアへのコピペはできたみたい。

  • アーマチュアの各種情報をコピペすること自体はさほど面倒な作業じゃなかった反面、「最初から無難にVRM0.0で作っておけば良かったなぁ」と後悔した。
  • VRM1.0系は、作業に慣れていない初心者が触ると危険なので要注意。

◆自動ウェイト実行直後の画像(手動修正前)

20251126の20
20251126の21
20251126の22
20251126の23
20251126の24
ボーン各パーツを選んでオブジェクトモードからCtrl+P>Automatic Weightsを実行しただけの状態だとこんなかんじ。

少し動かすくらいなら破綻はしていないけど、①腕全体のバランス②肉厚すぎるなで肩っぽさ(≒肩の主張の薄さ)③肋骨の存在感の無さ(≒上半身のペラペラ感)④かかとの丸みの無さが微妙。

あと、⑤へそ横の高さまで伸びるふともも付け根の筋肉もあっさりしすぎている。

立ちポーズなら良さげに見えても、座らせてみたら太もも前面上部や腰付近の痩せぶりがかなり目立っていた
肘も、中途半端な曲げ方だと痩せているのがバレる

それから、VRMのひな形ボーン胸揺れ用のボーンが抜けていることに気付かず、うっかりそのまま自動ウェイトを実行してしまった。
後で胸ボーンを追加しておかないと…!

肩甲骨も、サブディビジョン適応後にやる気があれば作る予定
(リアル系のモデルじゃないし、テクスチャとして描いても良いかも)

  • ポーズモードで軽くテストした結果、脚の形自体は理想像に近い出来栄えだと感じられたのでテンションが上がったw
  • 形を壊さずにウェイトやトポロジーだけ整えていけたらもっと良くなるはず!!

◆外部ソフトでの比率チェック

20251126の19
VRM Live Viewer内で仮VRMを踊らせてみると、やっぱり腰付近&ふとももの付け根&脇の下&肘の内側などは、自動ウェイトだけだと原型が残らないくらい痩せてしまう
また、お腹付近にも変な段差ができている

このへんは、面倒くさがらずに毎回手動でウェイトや形状を調整しないとダメそう

20251126の18
▲3tene内だと全体の比率がとても良いかんじだった。
VRM Live Viewer内ではふとももの太さが過剰だと感じたけど、3tene内だったらものすごくちょうど良い脚に見える

棒っぽい脚の3Dモデルが好きじゃないから、どのソフトで見てもこういう起伏強めの柔らかそうなムッチリ美脚に見えるよう調整していきたい。

  • 今週~来週はたぶん引き続きマベライのシーズン5を満喫しているため、しばらく更新ペースが落ちちゃうかも?
  • マベライでもうすぐ実装される18vs18モードが楽しみすぎて、ついソワソワしまくってる今日この頃!w

Blender初心者のモデリング挑戦記まとめ。