From 02677f53b95e3c55bcc4c651eab0f54c14c1072d Mon Sep 17 00:00:00 2001 From: 0b5vr <0b5vr@0b5vr.com> Date: Fri, 6 Sep 2024 17:49:46 +0900 Subject: [PATCH] wip feat: expressions, clarify the behavior when isBinary and override interacts each other - The original discussion: https://github.com/pixiv/three-vrm/issues/1484 - The implementation example on three-vrm: https://github.com/pixiv/three-vrm/pull/1489 TODO: english translation --- specification/VRMC_vrm-1.0/expressions.ja.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/specification/VRMC_vrm-1.0/expressions.ja.md b/specification/VRMC_vrm-1.0/expressions.ja.md index 1e40ab90..3aca4771 100644 --- a/specification/VRMC_vrm-1.0/expressions.ja.md +++ b/specification/VRMC_vrm-1.0/expressions.ja.md @@ -184,6 +184,18 @@ var factor = 1.0 - saturate(value); SetBlinkWeight(blinkWeight * factor); ``` +### オーバーライドとisBinaryの相互作用について + +オーバーライドの影響を与える表情にisBinaryが指定されている場合、その表情の出力値である「0.5以上なら1、0.5未満なら0」を評価し、その値で影響を与えなければいけません(MUST)。 + +> これは、オーバーライドの影響を与える表情がキャラクター上に見た目として発現していないにも関わらず、他の表情がオーバーライドによって抑制されることを防ぐための仕様です。 +> 例えば、表情 `happy` の `isBinary` が `true` で、かつ `overrideBlink` に `block` もしくは `blend` が指定されている場合、 `happy` の値が 0.5 以上のとき、 `blink` は完全に抑制されます。逆に、 `happy` の値が 0.5 未満のとき、 `blink` は `happy` の値に関係なく評価されます。 + +オーバーライドの影響を受ける表情にisBinaryが指定されている場合、受けている影響が0.0より大きければその表情は完全に抑制されなければいけません(MUST)。 + +> これは、オーバーライドの影響を受ける表情が0もしくは1以外の値で発現することを防ぐための仕様です。 +> 例えば、表情 `happy` の `overrideBlink` が `block` もしくは `blend` で、表情 `blink` が `isBinary` の場合、 `happy` が少しでもオーバーライドの影響を与えているならば、 `blink` は完全に抑制されます。 + ### MorphTargetBind `extensions.VRMC_vrm.expressions[*].morphTargetBinds[*]`