UnifiedFloat|Floatパラメーターの精度を自分視点/他人視点で統一する
- ダウンロード商品¥ 0
ModularAvatarに対応しており、Prefabをアバター内に入れてアップロードすればテストできます。また、こちらのカウンターシェーダーをインポートしておいて下さい。 https://github.com/noriben327/DisplayNumber Floatパラメーターの値は、他人の視点ではその精度が劣化します。これにより、精密な動作を要するギミックでは、ローカルとリモート間の深刻な同期ズレを引き起こします。 この問題を解決するべく、リモート視点における劣化したパラメーター状態を、ローカル視点で再現することによって精度を一致させる必要があります。そこで用いられるのが、ParameterDriverのCopyを利用した精度の統一ですが、これは値が更新されるたびにステートを遷移させる必要があり、物によっては継続的にステートのループを行うため、負荷的な意味であまり推奨されません。 本ギミックでは、BlendTreeとFloatパラメーターの下限値を利用した手法により、ParameterDriverやループを用いることなく1ステートのみで精度を統一します。 具体的には、-1~+1までのFloatパラメーターを、0~3.559298E-43までのパラメーターに変換し、端数を削っています(3.559298E-43という数値は下限値の254倍です)。 ただし、この方法によって位置同期ギミックを設計した時、未知の原因によって通常以上にパラメーターが揺らぎ、ParameterDriver式とくらべて安定しない結果になりました…。同じ挑戦をして成功された方はご教示いただけると嬉しいです。
ModularAvatarに対応しており、Prefabをアバター内に入れてアップロードすればテストできます。また、こちらのカウンターシェーダーをインポートしておいて下さい。
https://github.com/noriben327/DisplayNumber
Floatパラメーターの値は、他人の視点ではその精度が劣化します。これにより、精密な動作を要するギミックでは、ローカルとリモート間の深刻な同期ズレを引き起こします。
この問題を解決するべく、リモート視点における劣化したパラメーター状態を、ローカル視点で再現することによって精度を一致させる必要があります。そこで用いられるのが、ParameterDriverのCopyを利用した精度の統一ですが、これは値が更新されるたびにステートを遷移させる必要があり、物によっては継続的にステートのループを行うため、負荷的な意味であまり推奨されません。
本ギミックでは、BlendTreeとFloatパラメーターの下限値を利用した手法により、ParameterDriverやループを用いることなく1ステートのみで精度を統一します。
具体的には、-1~+1までのFloatパラメーターを、0~3.559298E-43までのパラメーターに変換し、端数を削っています(3.559298E-43という数値は下限値の254倍です)。
ただし、この方法によって位置同期ギミックを設計した時、未知の原因によって通常以上にパラメーターが揺らぎ、ParameterDriver式とくらべて安定しない結果になりました…。同じ挑戦をして成功された方はご教示いただけると嬉しいです。