public void SetControllerTransform(Transform controller)
 {
     controllerTransform            = new StoreTransform();
     controllerTransform.position   = controller.position;
     controllerTransform.localScale = controller.localScale;
     controllerTransform.rotation   = controller.rotation;
 }
 public TrackerPositionData SetOffsetAuto(Transform offsetObject)
 {
     if (offsetObject.parent.parent.parent != null)
     {
         ChildOffsetTransform = new StoreTransform(offsetObject);
         offsetObject         = offsetObject.parent;
     }
     OffsetTransform  = new StoreTransform(offsetObject);
     TrackerTransform = new StoreTransform(offsetObject.parent);
     ParentTransform  = new StoreTransform(offsetObject.parent.parent);
     return(this);
 }
Exemplo n.º 3
0
    protected virtual void Start()
    {
        var infoArgs = new ZMPlayerInfoEventArgs(_playerInfo);

        // Set original facing direction so the player faces the center of the stage.
        SetMovementDirection(transform.position.x > 0 ? MovementDirectionState.FACING_LEFT : MovementDirectionState.FACING_RIGHT);

        _baseColor = _light.color;
        _goreEmitter.GetComponent <Renderer>().material.color = _baseColor;
        _goreEmitter.startColor = _baseColor;

        _material.color = Color.black;

        _initialTransform = new StoreTransform(transform);
        Notifier.SendEventNotification(OnPlayerCreate, infoArgs);
    }
Exemplo n.º 4
0
 private void Calibrate()
 {
     var settings = new VRIKCalibrator.Settings { };
     Transform headTracker = handler.HMDObject.transform;// AddCalibrateTransform(handler.HMDObject.transform, TrackerNums.Zero);
     var controllerTransforms = (new Transform[] { handler.LeftControllerObject.transform, handler.RightControllerObject.transform }).Select((d, i) => new { index = i, pos = headTracker.InverseTransformDirection(d.transform.position - headTracker.position), transform = d.transform }).OrderBy(d => d.pos.x).Select(d => d.transform);
     leftHandTracker = controllerTransforms.ElementAtOrDefault(0);// AddCalibrateTransform(handler.LeftControllerObject.transform, TrackerNums.Zero);
     rightHandTracker = controllerTransforms.ElementAtOrDefault(1);// AddCalibrateTransform(handler.RightControllerObject.transform, TrackerNums.Zero);
     var trackerTransforms = handler.Trackers.Select((d, i) => new { index = i, pos = headTracker.InverseTransformDirection(d.transform.position - headTracker.position), transform = d.transform }).ToList();
     if (handler.Trackers.Count >= 3)
     {
         //トラッカー3つ以上あれば腰も設定
         bodyTracker = trackerTransforms.OrderByDescending(d => d.pos.y).Select(d => d.transform).First();// handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero);
         leftFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderBy(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[2].transform;// AddCalibrateTransform(handler.Trackers[2].transform, TrackerNums.Zero);
         rightFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderByDescending(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[1].transform;// AddCalibrateTransform(handler.Trackers[1].transform, TrackerNums.Zero);
     }
     else if (handler.Trackers.Count >= 2)
     {
         //トラッカーが2つだけなら両足
         leftFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderBy(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[1].transform;// AddCalibrateTransform(handler.Trackers[1].transform, TrackerNums.Zero);
         rightFootTracker = trackerTransforms.OrderBy(d => d.pos.y).Take(2).OrderByDescending(d => d.pos.x).Select(d => d.transform).First();// handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero);
     }
     else if (handler.Trackers.Count >= 1)
     {
         //トラッカーが1つだけなら腰だけ
         bodyTracker = handler.Trackers[0].transform;// AddCalibrateTransform(handler.Trackers[0].transform, TrackerNums.Zero);
     }
     //DoCalibrate(vrik, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
     //DoCalibrate2(vrik, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
     vrik.solver.IKPositionWeight = 1.0f;
     VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
     VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
     VRIKCalibrator.Calibrate(vrik, new VRIKCalibrator.Settings() { headOffset = new Vector3(0f, -0.15f, -0.15f), handOffset = new Vector3(0f, -0.03f, -0.07f) }, headTracker, bodyTracker, leftHandTracker, rightHandTracker, leftFootTracker, rightFootTracker);
     if (handler.Trackers.Count == 1)
     {
         vrik.solver.plantFeet = true;
         vrik.solver.locomotion.weight = 1.0f;
         var rootController = vrik.references.root.GetComponent<VRIKRootController>();
         if (rootController != null) GameObject.Destroy(rootController);
     }
     CurrentSettings.headTracker = StoreTransform.Create(headTracker);
     CurrentSettings.bodyTracker = StoreTransform.Create(bodyTracker);
     CurrentSettings.leftHandTracker = StoreTransform.Create(leftHandTracker);
     CurrentSettings.rightHandTracker = StoreTransform.Create(rightHandTracker);
     CurrentSettings.leftFootTracker = StoreTransform.Create(leftFootTracker);
     CurrentSettings.rightFootTracker = StoreTransform.Create(rightFootTracker);
 }
        /// <summary>
        /// Parse the trigger json definition
        /// </summary>
        private void Parse(Dictionary<string,object> screen)
        {
            // Log.Debug("PARSE Screen: "+screen["id"].ToString());

            //TODO we might want to create the game object here?
            //set parameters
            gameObject.name = screen["id"].ToString();
            nextDefaultScreenName = screen["next"].ToString();
            backScreenName = screen["back"].ToString();
            string layers = screen["layers"].ToString();

            string[] listOfLayers = layers.Split(',');
            foreach(string layer in listOfLayers)
            {
                this.layerMask |= 1 << LayerMask.NameToLayer(layer);
            }

            //parse list of objects
            if(screen.ContainsKey("objects"))
            {
                uiManager = UIManager.Instance;

                screenObjects = uiManager.LoadResources(screen, gameObject);
                huds = uiManager.GetHudNames(screen);
                popups = uiManager.GetPopupNames(screen);

                hudDefaultTransforms = new List<StoreTransform>();
                foreach (string hud in huds)
                {
                    GameObject obj = uiManager.GetHud(hud);

                    StoreTransform transform = new StoreTransform(obj.transform.position, obj.transform.rotation, obj.transform.localScale);
                    hudDefaultTransforms.Add(transform);
                }
            }
        }