Forum Discussion
theRevolution
12 years agoHonored Guest
What game currently has the best player experience?
I currently do not own a rift, but as a developer, I've been looking for examples of semi-flawless player head-tracking/body movements to study for a small game I'm making. I want to be able to create a realistic fantasy character that'll give the player the actual feeling of being inside of the body, maybe aside from arm/hand movements.
Has any game pulled this off? If not, can any rift users refer my to the best body experience they've had so far (possibly open-source)?
Thanks in advance!
Has any game pulled this off? If not, can any rift users refer my to the best body experience they've had so far (possibly open-source)?
Thanks in advance!
14 Replies
- genetransferExplorerI can't currently share what I'm working on but I used Anthropometry for the player character scale derived from the config utility of player height and gender. It was the only way I felt comfortable with a body in vr so far and combined with the razor hydra and a nice physx based ik rig, it felt really natural even hitting walls didn't feel uncomfortable. I didn't feel right with limbs longer than my own or skinnier but that may just be me. not sure if any of that will help as I too get alot of ideas from hands on to see what I like and don't. When i can release my project will let you know (may not be the holy grail or anything though but I found it the most comfortable for me so far).
- theRevolutionHonored Guest
"genetransfer" wrote:
I can't currently share what I'm working on but I used Anthropometry for the player character scale derived from the config utility of player height and gender. It was the only way I felt comfortable with a body in vr so far and combined with the razor hydra and a nice physx based ik rig, it felt really natural even hitting walls didn't feel uncomfortable. I didn't feel right with limbs longer than my own or skinnier but that may just be me. not sure if any of that will help as I too get alot of ideas from hands on to see what I like and don't. When i can release my project will let you know (may not be the holy grail or anything though but I found it the most comfortable for me so far).
Ah, so you used your actual body height in the config utility, then created and rigged a character with all your actual body portions? What about how the body feels when looking down at it?
All in all, thanks a lot for the input, it'll help a lot. - genetransferExplorer
ah, so you used your actual body height in the config utility, then created and rigged a character with all your actual body portions?
sort of, what I do is first build the character mesh with the anthropometry scale of a 1m human (basic image below). you then grab the user height, eyes height, gender etc... for the oculus config utility. and you multiply the scale of the 1m human rig mesh by the height. this keep the proportions etc of joints etc... no matter how tall ar short the player is.
you also build your physx rig, if you have one, data wise at one meter scale proportional to the (unscaled up/down) player and multiply by the creation params by the height so you create your physx bodies joints etc...the same way. if your only interested in the mesh side of things and using a sphere for physx movement it is much simpler I described above a very complex player character.What about how the body feels when looking down at it?
I feel snug as a bug :), it doesn't feel like I'm penetrating an object which is the main thing (my body still has this wierd feeling when I penetrate objects) and I don't feel claustrophobic. However I don't know what it would feel like with a fantasy character as I at the moment am just using regular clothes. I think the key is to get the position and scale of joints/limbs as close as posible at least when it comes to motion controllers.
while I plan to do this for the default set up I also want to provide higher detail settings for advanced users who are more invested so they can adjust waist/chest etc... This does provide a deviation from tradition game design though as your character will be proportionate to you instead of you pretending to be in someone else s skin. and that fits well for what I'm interested in making but may not be what suits for say a title is seeing the world through the eyes of the main character.
anyway here is a basic chart for a 1m human...(you may find better references data/images in a book book specifically about this type of thing though).
- theRevolutionHonored Guest
"genetransfer" wrote:
ah, so you used your actual body height in the config utility, then created and rigged a character with all your actual body portions?
sort of, what I do is first build the character mesh with the anthropometry scale of a 1m human (basic image below). you then grab the user height, eyes height, gender etc... for the oculus config utility. and you multiply the scale of the 1m human rig mesh by the height. this keep the proportions etc of joints etc... no matter how tall ar short the player is.
you also build your physx rig, if you have one, data wise at one meter scale proportional to the (unscaled up/down) player and multiply by the creation params by the height so you create your physx bodies joints etc...the same way. if your only interested in the mesh side of things and using a sphere for physx movement it is much simpler I described above a very complex player character.What about how the body feels when looking down at it?
I feel snug as a bug :), it doesn't feel like I'm penetrating an object which is the main thing (my body still has this wierd feeling when I penetrate objects) and I don't feel claustrophobic. However I don't know what it would feel like with a fantasy character as I at the moment am just using regular clothes. I think the key is to get the position and scale of joints/limbs as close as posible at least when it comes to motion controllers.
while I plan to do this for the default set up I also want to provide higher detail settings for advanced users who are more invested so they can adjust waist/chest etc... This does provide a deviation from tradition game design though as your character will be proportionate to you instead of you pretending to be in someone else s skin. and that fits well for what I'm interested in making but may not be what suits for say a title is seeing the world through the eyes of the main character.
anyway here is a basic chart for a 1m human...(you may find better references data/images in a book book specifically about this type of thing though).
Wow, thanks for all that information! I follow completely and the only thing I'd change would be to use a solution like FinalIK instead of creating your own Physx rig (as FinalIK can adjust the rig automatically when scaling any part of the body up or down). You taught me everything I needed to know, +10000. :) - genetransferExplorerno problem, hope it is useful.I don't use unity my self but if you have an ik solution that will save you heaps of time. One thing though I found to help with collision detection/control for the limb was to use physx charactor controllers as the control points for the wrist's/hands and let the ik follow them and also provide stable twisting of the arms. I did this other than for stability was so that as my real physical motion extends beyond a boundry(say my real arm outstreched would put the virtual arm going through a wall) the virtual arm would make contact with the wall correctly, while still feel very comfortable, almost like you can detect that you have hit something even though your arm has extended beyond the boundry.it's hard to describe the rig setup i use without visuals but that is the general idea. So a prefab solution may not yield perfect results for collision interaction as I spent over a week tuning my own it to get it right. anyway good luck!
- theRevolutionHonored Guest
"genetransfer" wrote:
no problem, hope it is useful.I don't use unity my self but if you have an ik solution that will save you heaps of time. One thing though I found to help with collision detection/control for the limb was to use physx charactor controllers as the control points for the wrist's/hands and let the ik follow them and also provide stable twisting of the arms. I did this other than for stability was so that as my real physical motion extends beyond a boundry(say my real arm outstreched would put the virtual arm going through a wall) the virtual arm would make contact with the wall correctly, while still feel very comfortable, almost like you can detect that you have hit something even though your arm has extended beyond the boundry.it's hard to describe the rig setup i use without visuals but that is the general idea. So a prefab solution may not yield perfect results for collision interaction as I spent over a week tuning my own it to get it right. anyway good luck!
Thanks! I threw together a quick scaling solution using FinalIK with those same ideas in mind (granted the collision detection part), and I hope it'll help other developers reading this.
It's pretty messy, I made it in about 10-15 minutes. Attach it to an object, add a mesh renderer & mesh filter (add the base mesh to the filter), drop the player mesh in the inspector, run and enter a height as a decimal (IE 6'1 being 6.1 or 5'11 being 5.11) and it should scale the mesh to the according height. I tested it by using a random makeHuman model and exporting in meters. Enjoy.using UnityEngine;
using System.Collections;
using RootMotion;
using RootMotion.FinalIK;
public class ikfuckingworkalready : MonoBehaviour {
//DONE // // Ask player for actual height in feet, store in variable.
// DONE // Convert feet in to meters, multiply and store.
//DONE// // Take both heights, run equation to the appropriate height.
//DONE// // Scale player mesh to proper height.
//DONE//// Apply FullBodyIK via script.
// TOO LAZY ///Scale arms to proper length. (delete playerMesh hands and attach razorHydra sdk hands instead).
// Finished.
public bool GUICheck = true;
public string enterHeight = "";
public float pMeshHeight, pActualHeight, pFinalHeight;
public GameObject pMeshPlayer;
public BipedReferences references;
private FullBodyBipedIK ik;
void scaleMesh(bool sh){
float ORGheight = pMeshPlayer.GetComponent<MeshRenderer> ().bounds.size.y; //WORKS! Exporting in Meters from MakeHuman! 100cm = 1 meter! Need to add MeshFilter though.
// converting character mesh into one meter.
if (sh == true) {
if (ORGheight != 1.0000f) {
float targetSize = 1.0000f;
Vector3 scale = pMeshPlayer.transform.localScale;
scale.y = targetSize * scale.y / ORGheight;
pMeshPlayer.transform.localScale = scale;
pMeshHeight = pMeshPlayer.GetComponent<MeshRenderer> ().bounds.size.y;
Debug.Log("what height " + pMeshHeight);
} //Works, converts any character mesh to 1 metre. pMeshHeight hold mesh character height.
}
}
void rescaleMesh(float actualH, float meshH){
// x is actualHeight = whatever, y is meshHeight = 1 meter.
Vector3 newScale = pMeshPlayer.transform.localScale;
newScale.y = actualH * newScale.y / meshH;
pMeshPlayer.transform.localScale = newScale;
pFinalHeight = pMeshPlayer.GetComponent<MeshRenderer> ().bounds.size.y;
Debug.Log ("Feet converted to meters. New height: " + pFinalHeight);
//done! Just gotta add that IK and we're in action!
BipedReferences.AutoDetectReferences(ref references, pMeshPlayer.transform, BipedReferences.AutoDetectParams.Default);
ik = pMeshPlayer.AddComponent<FullBodyBipedIK> ();
ik.SetReferences (references, null);
// Okay, done.
// End.
}
void OnGUI(){
if (pMeshPlayer != null) {
GUI.Label(new Rect (300, 189, 200, 25), "Enter your actual height as a decimal (EX: 5'11 = 5.11, 6'3 = 6.3, 5'9 = 5.9, etc.)");
enterHeight = GUI.TextField ( new Rect (250, 125, 250, 25), enterHeight, 4);
if (GUI.Button (new Rect (300, 250, 100, 30), "OK")) {
float foundHeight = float.Parse(enterHeight);
if (foundHeight > 2.45037679266816f) { // 8.3 ft
pActualHeight = foundHeight * 0.3048f;
scaleMesh (true);
} else {
Debug.Log("Too tall!");
}
if ( foundHeight < 1.4445974664) { // 4.9 ft
Debug.Log("Too short!");
}
rescaleMesh(pActualHeight, pMeshHeight); // Where the magic happens.
enterHeight = "Wait"; // Stopping the user from inputting.
}
}
}
} - genetransferExplorergood stuff tR, just thought worth mentioning aswell that the same method can be applied for certain world objects that may need adjusting for interactivity. if a player is 1.23m for example and in your scene you have a desk (I have a reception desk in my initial scene that is 1.2m high) and the the player is going to have to interact with things on it you will want to apply a similar method to adjust desk height as an example.
- HalopendExplorerIt's from the perspective of a baby so maybe I'm just forgiving but "among the sleep" is probably the best I've experienced. I especially like just how baby like the animations feel.
From what I've pieced together in terms of "player presence" from other games though make sure the "body" has a shadow don't know why it's so powerfull but having a good shadow for your character really helps to sell the illusion. - Artist3dMemberI am quite amazed that something like "Radial G" and "VanguardV" seem most smooth and 'ready for prime time' from the perspective of speedy and unique action in an Oculus Rift. Being more of an experiential world builder and user, I enjoy things like the excellent "The Chair" or "Eden River" for their original and ambient trip quotient. I find myself looking for original concepts, even "Story Teller" in its simplicity is quite good about inviting that sense of presence and providing a unique ebook reader concept. The educational "From Ashes" has a smooth nicely unfolding storyboard with some excellent perspectives with redirects that utilize the panoramic quality of the Rift. Titans of Space is also an innovative approach to advancing educational story boarding that holds attention with a little interaction and a unique Oculus eye based interface. Finally "World of Diving" seems most 'ready' for the Oculus simply because of the symbiotic nature of the Rift and a diving mask it just feels totally natural with an excellent range of options. Oh yes... while War Thunder is a little quirky on my system, I am impressed with the level of detail and sense of being in a cockpit, again the symbiosis of the Rift and face goggles makes it work particularly well.
From what I have tested so far, you asked for which game is best? I'd say "World of Diving" for the above reasons and for its online 'diving with others' option. IMHO ;-) - GomotoHonored GuestBest VR games yet are driving simulators, because they have integrated arm tracking hardware (aka wheel). ;)
They really provide the best experience if you do not use other methods to track the limbs of the chimps.
Quick Links
- Horizon Developer Support
- Quest User Forums
- Troubleshooting Forum for problems with a game or app
- Quest Support for problems with your device
Other Meta Support
Related Content
- 3 years ago
- 9 months ago
- 4 months ago