Example #1
0
        public override void ControllerStart()
        {
            base.ControllerStart();

            if (model.autoRigMappingOnStart)
            {
                AutomaticRigMapping();
            }

            // Set default configuration if needed
            if (model.configuration == null)
            {
                model.configuration = BasicHelpers.FindScriptableObject <InputConfiguration>(HPTK.core.defaultConfAssets);
            }

            if (model.configuration == null)
            {
                Debug.LogError("Any InputConfiguration found in InputModel or HPTK.core.defaultConfAssets. The module cannot continue");
                gameObject.SetActive(false);
                return;
            }

            // Input data for finger tips can be ignored as it will depend on the master hand model
            // This array MUST match model.inputDataProvider.bones[]
            model.bonesToUpdate = new BoneModel[19]
            {
                model.rigMap.wrist,
                model.rigMap.forearm,
                model.rigMap.thumb0,
                model.rigMap.thumb1,
                model.rigMap.thumb2,
                model.rigMap.thumb3,
                model.rigMap.index1,
                model.rigMap.index2,
                model.rigMap.index3,
                model.rigMap.middle1,
                model.rigMap.middle2,
                model.rigMap.middle3,
                model.rigMap.ring1,
                model.rigMap.ring2,
                model.rigMap.ring3,
                model.rigMap.pinky0,
                model.rigMap.pinky1,
                model.rigMap.pinky2,
                model.rigMap.pinky3
            };

            if (!model.inputDataProvider)
            {
                model.inputDataProvider = HPTK.core.GetDefaultIdp(model.hand.side);
            }

            if (model.inputDataProvider) // Force/Trigger set function from property
            {
                model.view.inputDataProvider = model.inputDataProvider;
            }
            else
            {
                Debug.LogWarning("InputModel.InputDataProvider is not assigned on Start");
            }

            // Get weights for noise reduction (WMA)
            model.wmaWeights = InputHelpers.GetLinearWeights(model.configuration.windowSize);

            // Conf shortcut
            conf = model.configuration;
        }