Beispiel #1
0
 // Handling developer defined gesture match callback - This is invoked when the Mode is set to Mode.DeveloperDefined and a gesture is recorded.
 // gestureId - a serial number
 // gesture - gesture matched or null if no match. Only guesture in SetDeveloperDefinedTarget range will be verified against
 // score - the confidence level of this identification. Above 1 is generally considered a match
 void HandleOnDeveloperDefinedMatch(long gestureId, string gesture, float score)
 {
     if (AirSigManager.Mode.DeveloperDefined == availableMode[currentModeIndex])
     {
         textToUpdate = string.Format("<color=cyan>Gesture Match: {0} Score: {1}</color>", gesture.Trim(), score);
     }
     else if (AirSigManager.Mode.SmartTrainDeveloperDefined == availableMode[currentModeIndex])
     {
         // Handle SmartTrain's progress result here
         if (currentSmartTrainDeveloperDefinedStep == gesture)
         {
             smartTrainCount++;
             string extraText = "Continue to add more samples";
             if (smartTrainCount >= MAX_TRAIN_COUNT)
             {
                 smartTrainCount = 0;
                 if ("HEART" == currentSmartTrainDeveloperDefinedStep)
                 {
                     currentSmartTrainDeveloperDefinedStep = "C";
                     airsigManager.SetDeveloperDefinedTarget(new List <string> {
                         "C"
                     });
                     nextUiAction = () => {
                         textResult.text = defaultResultText = "Please write 'C' gesture 5 times\nPress trigger to start\nRelease trigger when finish";
                     };
                 }
                 else if ("C" == currentSmartTrainDeveloperDefinedStep)
                 {
                     currentSmartTrainDeveloperDefinedStep = "DOWN";
                     airsigManager.SetDeveloperDefinedTarget(new List <string> {
                         "DOWN"
                     });
                     nextUiAction = () => {
                         textResult.text = defaultResultText = "Please write 'DOWN' gesture 5 times\nPress trigger to start\nRelease trigger when finish";
                     };
                 }
                 else
                 {
                     nextUiAction = () => NextMode();
                 }
             }
             textToUpdate = string.Format(
                 "<color=cyan>Smart Train passed criteria ({0}/{1})\n" +
                 "{2}</color>", smartTrainCount, MAX_TRAIN_COUNT, extraText);
         }
         else
         {
             textToUpdate = string.Format(
                 "<color=red>Smart Train failed criteria\n" +
                 "Continue to add more samples</color>");
         }
     }
 }
Beispiel #2
0
    // Use this for initialization
    void Start()
    {
        airsigManager = GameObject.Find("AirSigManager").GetComponent <AirSigManager> ();
        Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);

        // Configure AirSig by specifying target
        airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined);
        airsigManager.SetClassifier("AtDefThrow", "");
        airsigManager.SetDeveloperDefinedTarget(new List <string> {
            "C", "AttackPunchSimple", "DefenseShieldCross"
        });                                                                                                                   // Just in case the order here matters, list them in the order they were added to the pack on the AirSig website.
        developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch);
        airsigManager.onDeveloperDefinedMatch += developerDefined;
        checkDbExist();

        // Set each controller as an AirSig gesture trigger, and which button activates the recording
        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.RIGHT_HAND,
            SteamVR_Controller.ButtonMask.Trigger,
            AirSigManager.PressOrTouch.PRESS);

        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.LEFT_HAND,
            SteamVR_Controller.ButtonMask.Trigger,              // NOTE: Potential gesture bar fix by putting this line in with case 2 below vvvvvv
            AirSigManager.PressOrTouch.PRESS);                  // NOTE: May also break AirSig, who knows?

        if (SceneManager.GetActiveScene().name == "VRPUNScene")
        {
            UnlockNext(0);
        }
    }
Beispiel #3
0
 void OnEnable()
 {
     if (!rightGrab)
     {
         rightGrab = GameObject.Find("Controller (right)").GetComponent <ViveController>();
     }
     //if (!airsigManager)
     // {
     airsigManager = GameObject.Find("AirSigManager").GetComponent <AirSigManager>();
     // }
     airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined);
     //airsigManager.SetDeveloperDefinedTarget(List<string> "Pickaxe");
     airsigManager.SetClassifier(
         "Pickaxe", "");
     airsigManager.SetTriggerStartKeys(
         AirSigManager.Controller.RIGHT_HAND,
         SteamVR_Controller.ButtonMask.Trigger,
         AirSigManager.PressOrTouch.PRESS);
     airsigManager.SetDeveloperDefinedTarget(
         new List <string> {
         "Pickaxe",
         "DOWN"
     }
         );
     developerGesture =
         new AirSigManager.OnDeveloperDefinedMatch(
             HandleOnDeveloperDefinedMatch);
     airsigManager.onDeveloperDefinedMatch +=
         developerGesture;
 }
    void Awake()
    {
        // Get PAD Manager
        padManager = GetComponent <PADManager>();

        // 1. Use SetMode to configure AirSig function
        airsigManager.SetMode(
            AirSigManager.Mode.DeveloperDefined);

        // 2. Set classifier and sub classifier
        airsigManager.SetClassifier(
            "Project_Gestures", "");

        // 3. Use SetDeveloperDefinedTarget to configure
        // targets for identification function
        airsigManager.SetDeveloperDefinedTarget(
            new List <string> {
            "WAVE",
            "Thrust",
            "Shake",
            "Spooky"
        }
            );
        // 4. Register callback for identification
        // result
        developerGesture =
            new AirSigManager.OnDeveloperDefinedMatch(
                HandleOnDeveloperDefinedMatch);
        airsigManager.onDeveloperDefinedMatch +=
            developerGesture;
    }
    // Use this for initialization
    void Awake()
    {
        Application.SetStackTraceLogType(LogType.Log, StackTraceLogType.None);

        spellEngine       = gameObject.GetComponent <SpellEngine>();
        airsigManager     = gameObject.GetComponent <AirSigManager>();
        masterGameManager = GameObject.FindWithTag("GameController").GetComponent <MasterGameManager>();
        // Update the display text
        //textMode.text = string.Format("Mode: {0}", AirSigManager.Mode.DeveloperDefined.ToString());
        //textResult.text = defaultResultText = "Pressing trigger and write symbol in the air\nReleasing trigger when finish";
        //textResult.alignment = TextAnchor.UpperCenter;
        //instruction.SetActive(false);
        //ToggleGestureImage("All");

        // Configure AirSig by specifying target
        developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch);
        airsigManager.onDeveloperDefinedMatch += developerDefined;
        airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined);
        List <string> temp = new List <string>();

        temp.Add("Dot");
        temp.Add("Line");
        temp.Add("Circle");
        //temp.Add("Square");
        temp.Add("Triangle");

        airsigManager.SetDeveloperDefinedTarget(temp);
        airsigManager.SetClassifier("FinalGestureProfile", "");

        //airsigManager.SetDeveloperDefinedTarget(spellEngine.getCompleteSpellPartsNameList());
        //airsigManager.SetClassifier("GestureProfile1", "");
        //airsigManager.SetClassifier("SpellCoresV1", "");

        /*developerDefinedCore = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatchCore);
         * airsigManager.onDeveloperDefinedMatch += developerDefinedCore;
         * airsigManager.SetMode(AirSigManager.Mode.DeveloperDefined);
         * airsigManager.SetDeveloperDefinedTarget(spellEngine.getCompleteSpellPartsNameList());
         * airsigManager.SetClassifier("GestureProfile1", "");*/



        //checkDbExist();

        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.RIGHT_HAND,
            SteamVR_Controller.ButtonMask.Trigger,
            AirSigManager.PressOrTouch.PRESS);


        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.LEFT_HAND,
            SteamVR_Controller.ButtonMask.Touchpad,
            AirSigManager.PressOrTouch.PRESS);
    }
Beispiel #6
0
    private void OnEnable()
    {
        controllerManager = rightHandControl.GetComponent <ControllerManager>();

        developerDefined = new AirSigManager.OnDeveloperDefinedMatch(HandleOnDeveloperDefinedMatch);
        airsigManager.onDeveloperDefinedMatch += developerDefined;
        airsigManager.SetDeveloperDefinedTarget(new List <string> {
            "BOTRN", "DOWN"
        });
        airsigManager.SetClassifier("FrostGestureProfile", "");

        airsigManager.SetTriggerStartKeys(
            AirSigManager.Controller.RIGHT_HAND,
            SteamVR_Controller.ButtonMask.Trigger,
            AirSigManager.PressOrTouch.PRESS);

        trackedObj = GetComponent <SteamVR_TrackedObject>();
    }