PMXの頂点ウェイトの種類(BDEF1・BDEF2・BDEF4・SDEF・QDEF)と実物での使われ方

モデルを曲げたときの肉の付き方は、頂点ごとのウェイトで決まります。PMXでは方式が5通りあり、モデルによって使い方がかなり違いました。

最終更新: 2026-10-07 · 実PMX 3体とステージ1つの頂点を自前の走査と three.js 同梱のパーサで読んで数え、MMDLoader(r171)のソースで扱いを確認

5つの方式

種別名前持つものthree.jsのMMDLoader
0BDEF1ボーン1本(100%付く)そのまま
1BDEF2ボーン2本と1本目の比率そのまま
2BDEF4ボーン4本と4つの比率そのまま
3SDEFBDEF2と同じ + C・R0・R1の3点(Float32×3を3つ、36バイト)BDEF2として扱う(C・R0・R1は読み捨て)
4QDEF(PMX 2.1)BDEF4と同じ並び例外で止まる(このサイトはBDEF4として読ませる)

実物での頂点数

モデル頂点BDEF1BDEF2BDEF4SDEF
人物A(ad_ik2)39,54018,99716,6491,4842,410
人物A(ad_org8)40,68819,20016,8131,5433,132
アリシア22,3118,85810,1213,3320
ステージ4,6694,669000

人物とアリシアでは頂点の4〜5割が、ボーン1本に100%付いているだけでした。ステージは全頂点がBDEF1で、動く部分はボーンごとに丸ごと動きます。アリシアはSDEFを使わず、BDEF4が15%と多めです。QDEFはどのモデルにもありませんでした(4体とも2.0)。

SDEFはどこに使われているか

SDEFの頂点を、付いている2本のボーンの組で数えました。

ボーンの組人物A(ad_ik2)人物A(ad_org8)
ツインテールの髪の節どうし(左髪3+左髪4 など)2,1142,806
下半身 + 左右の足D216216
頭 + 左右の髪180110

人物AのSDEFの9割近くは、ツインテールの髪の節でした。 肩やひじには使われていません。SDEFは関節を曲げたときの潰れ方を変える方式なので、「肩やひじのためのもの」と決めつけず、どこに使われているかをモデルごとに見る必要があります。

three.jsはSDEFをBDEF2として扱うので、このサイトの再生でも、ツインテールが大きく曲がったときの節の太さは本家MMDと一致しない可能性があります。読み込めなくなることはありません。