vrm-c / UniVRM_1_0

DEPRECATED

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

[1.0draft][impliment]make Blendshape files from them belongs to BlendshapeGroup.

iCyP opened this issue · comments

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"がすべて口を開いているだけの一つのモーフターゲットを指している場合等)どうするかは考えないといけない、また、再編集したい人には困るという問題があります。