У объекта Unity есть объект SkinnedMeshRenderer
, представляющий собой модель сетчатой сетки, управляемую poseBlendValues
и shapeBlendValues
.Теперь у меня есть программа, которая может генерировать последовательные poseBlendValues
и shapeBlendValues
.Я строю модель с Unity5 и пишу скрипт для модели.В сценарии я установил объект SkinnedMeshRenderer
через SetBlendShapeWeight
с моими вычисленными значениями.Тем не менее, модель не деформируется, как ожидалось.Может кто-нибудь сказать мне, что не так?
Это часть моего кода, который является функцией Start, скрипт получит параметры от сервера через fetchAllParms
, а затем установит параметры для модели с помощью SetBlendShapeValues
.И resetShapeParms()
и resetPoseParms()
просто очищают массивы _shapeParms
и _poseParms
от нуля.setShapeBlendValues()
и setPoseBlendValues()
просто заполните _shapeParms
и _poseParms
выбранными значениями.Когда я нажимаю Play
, я вижу, что параметры BlendShape изменяются в Инспекторе, но модель деформируется точечно, как и ожидалось.
void Start()
{
client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_shapeParms = new float[_numShapeParms];
_camParms = new float[_numCamParms];
_poseParms = new float[_numPoseParms];
resetShapeParms();
resetPoseParms();
fetchAllParms();
setShapeBlendValues();
setPoseBlendValues();
}