[1.0draft][impliment]make Blendshape files from them belongs to BlendshapeGroup.
iCyP opened this issue · comments
iCyP commented
from vrm-c/vrm-specification#40
1.0実装時において、文字・その長さによるエラー回避のため、
Blendshapeのファイル名をextra.targets由来でなく、所属するBlendeShapeGroup名から機械的に置換して作成する実装を提案します。
#ref vrm-c/vrm-specification#40 (comment)
BlendshapeGroupに含まれるblendshapeの名前をそれぞれ全部属性+indexに置換してしまうという案です。
例えば 、
{
"name": "A",
"presetName": "a",
"binds": [
{
"mesh": "0",
"index": "2",
"weight": 1.0
}, {
"mesh": "0",
"index": "9",
"weight": 1.0
}
],
"materialValues": [],
"isBinary": false
},
のような場合、 mesh : 0 のindex : 2のもののモーフターゲットの名前を(>primitives.extras.target_namesを無視して)JOY_0、9のものをJOY_1として(blendshapegroupの配列のインデックス順に命名して)unity ediorでファイル名として扱うということです。
もしくはgroup内ののモーフターゲットをすべて合成したモーフターゲットをエクスポート時に生成して、それを使うのはどうか、ということです。
ただし、一つのモーフターゲットを複数のblendshapegroupに使われたとき(例えば、”a”,"i","u","e","o"がすべて口を開いているだけの一つのモーフターゲットを指している場合等)どうするかは考えないといけない、また、再編集したい人には困るという問題があります。