![]() ![]() And it's free, and it's a great starting point. So we're going to use a plugin called NewtonVR, which makes it very easy to create sort of interactive behavior with physics objects. So we're not going to work with the built-in thing. Now, in this video, we're going to look at that, but we're going to use a plugin that makes it easy to do that. We actually want to pick up our ping pong ball and play ping pong. ![]() ![]() Please keep developing this, and thanks for making it available.We now know how to create physics objects that allow us to do the dynamic movements and interesting interactions, but we haven't been able to interact with them yet. ![]() That said, NewtonVR is clearly a starting point I will be using for any VR physical interactions I will do in the future. I had to tweak the magic value a bit to not be so noticable. Rotation in physical mode is also really slow. There's a bug with the target orientation in physical form when pointing "south" and the controller does a full 360. I didn't have time to do this, but it would make sense to have the grab trigger be a capsule that was a few cm off the entire upper half of the controller surface so things could be intuitively grabbed regardless of position. Some players still expected that they could grab things with the side, with the location where the side grip buttons are. The shape of the dk1 track hat is really ugly and doesn't really feel like it describes anything, so I hid it and switched it to a sphere to more indicate its purpose as a grab point. It became clear early on in testing that most people expect the controller to always be physical to hit things, so I switched to always in the physical state - except when grabbing stuff because that caused things to explode. I recently used NewtonVR in our GGJ16 entry "Good Morning".Īnd thought I'd offer some thoughts on my experience with NewtonVR. I've not used this mode much yet so maybe I'll have more detailed comments later. It seems to rotate around the puck, when the rotation I'm doing with my hand pivots around my wrist. It'd be nice if you exposed this value either per-item, or put it in NVRPlayer so that it can be adjusted from the camera prefab.įinally I've noticed the physical controller mode's rotation is waaaaayyyy off from what it should be. These were relatively simple additions and I'm happy for them to just inherit from yours, the one other change I did was to alter NVRInteractable.DropDistance to a smaller value. I made a spring pull version of NVRSlider that adds/removes a spring component based on hand interaction so it works like a bathroom cord light switch. I made another that added 'preferred angles' to NVRInteractableRotator so that I could specify that the dial had n sides and when released it should move to the nearest one Made a class that added a 'total turns' to NVRInteractableRotator so I not only know the current angle, but how far it's been turned in either direction. You ask for things we change/build on, so here's what I've done so far: MovePosition() made for very jerky interactions, if you picked up the bottom box in a stack with MovePosition(), the other boxes wouldn't move nicely but with the velocity method you could carry a stack. But when compared side by side to updating the velocity, interactions with other rigidbodies is a TON better when updating velocity. I modified your code to use Rigidbody.MovePosition() and initially it seems like a flawless solution. That's true, Rigidbody.position = blah doesn't but Rigidbody.MovePosition( blah ) does. Haptic issue: Fixed :) You'll still notice haptic feedback if a ghost controller is inside a held object, which is what we intend. I could imagine problems if acceleration due to gravity is applied by the engine AFTER we modify velocity but before the frame ends. Turning off gravity at the start of an interation, and turning it back on at the end, really doesn't do much. Second: By modifying velocity directly, we're already ignoring Rigidbody mass, and relatedly, gravity. I'd like to try out a scaling multiplier, so that velocity increases more exponentially with PositionDelta. I definitelty agree the lag is noticeable. Trying to throw an item moved with MovePosition/Rotation() causes the item dropping straight down. Thanks checking out system out and giving the feedback :)įirst: By setting Velocity and AngularVelocity instead of MovePosition() and MoveRotation(), we save ourselves the need to calculate the velocities later when interaction with an object has ended, and say, the player is throwing the item. ![]()
0 Comments
Leave a Reply. |