Announcement

Collapse
No announcement yet.

VR Expansion Plugin

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • replied
    Originally posted by Magneto View Post

    Yeah this is the thing thats a little bit of a let down with this great vr expansion it doesn't have a plug and play mode or simple switching on and off features. Id really like to now see a half life alyx fps ready type template we can all easily use to get going without the complexity or needing to go though many guides which there are few of with this one anyway.
    I think you should hire a programer if you find it too difficult to code. The plugin itself is very good, it offers a lot of tools to help developers. You should stop complaining and focus on learning, because game development is really hard work. What's more amazing when you have a free plugin, the plugin creator is always ready to answer questions and support, and you can go to the source code to read, to learn whenever you want.

    Leave a comment:


  • replied
    Originally posted by Magneto View Post

    Yeah this is the thing thats a little bit of a let down with this great vr expansion it doesn't have a plug and play mode or simple switching on and off features. Id really like to now see a half life alyx fps ready type template we can all easily use to get going without the complexity or needing to go though many guides which there are few of with this one anyway.
    You have been complaining about the same things with every single template in this engine for YEARS now. Maybe its time for you to buckle down and either really learn the engine, or start modding Alyx with their mod tools. Expecting everything to be plug and play fully complete, with brand new game features matching AAA and without any learning curve is moderately ridiculous, and rather entirely against the entire point of why I (and others with their tools) choose to make flexible systems where a lot of interactions are possible, instead of focusing on blindly recreating the FOTM game.

    My goal isn't to make your games for you, it is to provide you with as many tools as I can so that making them is easier. I stay away from specific game play systems as much as possible as its limiting my work to the specific few that need them, and locking down innovation. Plug and play game systems are generally terrible, either too feature rich to handle any case (slow) or handling only one or two specific cases that the creator felt was needed (inflexible and limited).
    Originally posted by Antonyvw View Post
    I'm guessing that using the VR Expansion plugin is not really for beginners. I have looked at some of the videos, and quite frankly I'm confused. I managed to follow the first one, (after a lot of head scratching with why my copy of Visual Studio wouldn't work), but then video 2 onwards were clearly meant for someone with a working knowledge of the system. For example in video 2. "4.24 Input changes", I was lost as soon as he said he migrated things from his original project to the demo. I tried to copy that, it copied the folders over but not the contents, even if I selected the contents separately. (I have migrated things before but this foxed me). For me, as a beginner, I would have put locomotion before gripping, simply so I could walk up to the objects first. I haven't watched all the videos yet but I have seen nothing that explains to me how to prevent my character walking through walls, collision. A lot of info needed for a beginner was skipped over, this I presume is because, as I said its not really for a beginner.
    Don't get me wrong, I'm not knocking what the plugin can do. I can see from the demo what it can achieve but trying to understand how to add those functions to my own scene/character is another matter. All I would like to achieve at the present time is to enable my character to move around, interact with things (like pick up a lamp), and NOT walk through walls. I had the plugin recommended to me because it could achieve those things, but as I said, I'm a beginner, and this really is way over my head.
    Lol. I guess I still need my hand holding while I learn. Eventually this will all make sense to me and I will look back and say, "why was this a problem?", but until then, I guess Im not going to to solve how to not walk through walls or climb stairs. Sorry for my ramblings. I'm just frustrated I cant achieve what I thought should be an easy task
    I take care to mention this decently often, no its not a beginners plugin, it taps into a hundred base engine classes and most parts of the engine at this point. Its to help people with advanced interactions, either as an implementation example, or as a set of tools to use. That being said, its not beginner hostile, just has a bit of a curb to step up to.

    The tutorial videos were made by a community member as he himself was learning the plugin, he documented his learning process by example. The text tutorial for basic gripping on the website, using the VRCharacter as your base pawn, and adding movement input like a normal character, would be enough to get off the ground with what features you described above.



    Leave a comment:


  • replied
    Originally posted by CokeKuma View Post



    hi. mordentral.

    Climbing function through hand succeeded in producing results above the intended level. But the problem is that the object, not the hand, is physics handling. The hand and object have different criteria to trigger on, and in the case of an object, the direction in which climbings should be allowed varies depending on the shape it occurs. Therefore, a very diverse number of cases must be considered. So I try to find a simpler solution other than this one, but I don't have a good idea. What do you think?

    And how do I apply gravity in climbing mode? I tried to modify the code, but only the result of zero gravity came out.
    You can manually lock the hand to the surface if you want and track the controller vs it, or use physical arms, or any other methods that you like.

    As for gravity during climbing, just apply a offset with the custom movement addition as well to equal gravity. Though you have to be careful with that as it will offset your hand more and cause more of a correction the next tick, depending on how you handle the compensation logic.

    Leave a comment:


  • replied
    Originally posted by Fele View Post
    I am using the set tracking origin -> Stage (Centered Around Play Area)" which works perfectly to align a my ground plane to a real world play area with the exact dimensions - with oculus quest.

    This function gets called when entering the game and the players VR position matches the exact location in real world.

    However, with the VR expansion character I noticed an offset after stepping out of the play area and re-entering it an so far the only way is to restart the game. (The boundary itself still matches perfectly but the level kind of drifted...)

    This did not happen with the UE standard pawn and I was wondering if this might be related to the way of how the VR pawn actually moves while the standard pawn only moves it's components?

    Is there a way to prevent this offset from happening?
    Looks like the VR pawn keeps moving for a short distance before stopping / "leaving the game" and on re-entering the position kind of continues but with an offset...

    Don't have the character movement component in "physwalking" or any mode that allows push back. The way it handles movement with CMC is it rewinds the HMD movements and plays them back during the actual walking cycle, leaving tracking entirely can offset the character since it will register the loss of tracking as invalid movement inputs and freeze the pawn for that duration.

    Having the character in movement mode "none" will keep it locked 1:1 with the real world. Though at that point there isn't much point to using the VRCharacter itself and a basic pawn with the grip controllers would do just as well.

    Leave a comment:


  • replied
    Originally posted by thelazylion View Post

    Thanks for confirming that..

    Also not sure if this is a bug on my end or in the plugin, but on the new 4.25, for some reason connecting clients cannot use any form of mouse input.
    This only happens after "on possess" is called .. If the client joins as their own pawn it works fine..

    But if they spawn clean, as just a controller, and spawn an actor to posses, then mouse input is permanently broken. At some point with enough fiddling, I managed to get a crash that pointed to this line, which seems relevant (120) VRBaseCharacter.cpp

    Code:
    Only after on Possess is called on the controller, then mouse is broken.
    I'm gonna keep tinkering for now..
    Thanks again, and anything that comes to mind is appreciated.
    Shouldn't have anything to do with the plugin unless I missed a super call somewhere, and then you would never have mouse input at all.

    That line in VRBaseCharacter is unrelated as it is just casting the character type for future reference, though I would like a copy of that crash report if you get it again, cast shouldn't crash there.

    Leave a comment:


  • replied
    Originally posted by Emidee_FC View Post
    Hello mordentral,

    we started to use your plugin to develop a multiplayer VR game and even if we are still early in the development, I would like to thank you for the amazing work you put in the plugin.

    I have one question though:

    I created a character class which inherits from AVRCharacter and I updated your code to allow me to create a skeletal mesh, because we'd like to have a 3d rendering of the other players.
    I attached that skeletal mesh to the VRRootReference component, and added a negative vertical offset to it so that the feet are at the bottom of the capsule.

    The issue I face right now (using an oculus touch) is when I see in game another character, the capsule is correctly grounded, but the skeletal mesh is floating in the air.

    Would you have any idea of what could be going on there?

    Thanks in advance
    The VRCharacter has its zero point at the floor, unlike normal characters which have their feet at waist height. This is done because it makes more sense to handle roomscale that way, and because it makes more sense in general with VR. Just offset your mesh, also typically your mesh should be attached to the ParentRelativeComponent with it set to floor mode instead of the root capsule directly.

    Leave a comment:


  • replied
    Originally posted by Antonyvw View Post
    I'm guessing that using the VR Expansion plugin is not really for beginners. I have looked at some of the videos, and quite frankly I'm confused. I managed to follow the first one, (after a lot of head scratching with why my copy of Visual Studio wouldn't work), but then video 2 onwards were clearly meant for someone with a working knowledge of the system. For example in video 2. "4.24 Input changes", I was lost as soon as he said he migrated things from his original project to the demo. I tried to copy that, it copied the folders over but not the contents, even if I selected the contents separately. (I have migrated things before but this foxed me). For me, as a beginner, I would have put locomotion before gripping, simply so I could walk up to the objects first. I haven't watched all the videos yet but I have seen nothing that explains to me how to prevent my character walking through walls, collision. A lot of info needed for a beginner was skipped over, this I presume is because, as I said its not really for a beginner.
    Don't get me wrong, I'm not knocking what the plugin can do. I can see from the demo what it can achieve but trying to understand how to add those functions to my own scene/character is another matter. All I would like to achieve at the present time is to enable my character to move around, interact with things (like pick up a lamp), and NOT walk through walls. I had the plugin recommended to me because it could achieve those things, but as I said, I'm a beginner, and this really is way over my head.
    Lol. I guess I still need my hand holding while I learn. Eventually this will all make sense to me and I will look back and say, "why was this a problem?", but until then, I guess Im not going to to solve how to not walk through walls or climb stairs. Sorry for my ramblings. I'm just frustrated I cant achieve what I thought should be an easy task
    Yeah this is the thing thats a little bit of a let down with this great vr expansion it doesn't have a plug and play mode or simple switching on and off features. Id really like to now see a half life alyx fps ready type template we can all easily use to get going without the complexity or needing to go though many guides which there are few of with this one anyway.

    Leave a comment:


  • replied
    Originally posted by Fele View Post
    I am using the set tracking origin -> Stage (Centered Around Play Area)" which works perfectly to align a my ground plane to a real world play area with the exact dimensions - with oculus quest.

    This function gets called when entering the game and the players VR position matches the exact location in real world.

    However, with the VR expansion character I noticed an offset after stepping out of the play area and re-entering it an so far the only way is to restart the game. (The boundary itself still matches perfectly but the level kind of drifted...)

    This did not happen with the UE standard pawn and I was wondering if this might be related to the way of how the VR pawn actually moves while the standard pawn only moves it's components?

    Is there a way to prevent this offset from happening?
    Looks like the VR pawn keeps moving for a short distance before stopping / "leaving the game" and on re-entering the position kind of continues but with an offset...

    ok I think I found the issue but I am not sure why this happens.

    In 3d, my play area is about 20cm elevated and I set up a plane to prevent the player actor from falling down. I am not 100% sure but it looks like the VR expansion character gets stuck for a moment while returning to the play area and this small "hang" generates the offset to previously matched play area. I removed the elevation and after the problem disappeared...

    Leave a comment:


  • replied
    I'm guessing that using the VR Expansion plugin is not really for beginners. I have looked at some of the videos, and quite frankly I'm confused. I managed to follow the first one, (after a lot of head scratching with why my copy of Visual Studio wouldn't work), but then video 2 onwards were clearly meant for someone with a working knowledge of the system. For example in video 2. "4.24 Input changes", I was lost as soon as he said he migrated things from his original project to the demo. I tried to copy that, it copied the folders over but not the contents, even if I selected the contents separately. (I have migrated things before but this foxed me). For me, as a beginner, I would have put locomotion before gripping, simply so I could walk up to the objects first. I haven't watched all the videos yet but I have seen nothing that explains to me how to prevent my character walking through walls, collision. A lot of info needed for a beginner was skipped over, this I presume is because, as I said its not really for a beginner.
    Don't get me wrong, I'm not knocking what the plugin can do. I can see from the demo what it can achieve but trying to understand how to add those functions to my own scene/character is another matter. All I would like to achieve at the present time is to enable my character to move around, interact with things (like pick up a lamp), and NOT walk through walls. I had the plugin recommended to me because it could achieve those things, but as I said, I'm a beginner, and this really is way over my head.
    Lol. I guess I still need my hand holding while I learn. Eventually this will all make sense to me and I will look back and say, "why was this a problem?", but until then, I guess Im not going to to solve how to not walk through walls or climb stairs. Sorry for my ramblings. I'm just frustrated I cant achieve what I thought should be an easy task

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    In tests those guys were hiding invisible colliding bodies that are constrained to the controllers, then offsetting the pawn based on how far away the body is from its target location on collision, that is probably the easiest method to conceptualize how to go about doing it, then you can move to more stable iterations.

    Its not a difficult concept to achieve if you think about it. Can do it with locking on to surfaces and reading positional differences as well (their hands lock on to the top of the surface when starting to climb, then they read the positional difference in that video and offset the player, the arms are not physics driven), or running fully simulated arms and reading wrist to controller differences, or for that matter, from held objects being stuck on things and reading where the hand is and where it should be.

    If you really wanted to get involved you could also make the player based on an actually simulating body that is forced upright and use constraints from the hands to move it around directly when against objects, somewhat like lone echo.

    Also the plugin doesn't support "physics body / gravity", its a character controller, all interactions are faked. Its not actually simulating on the physics scene, just being moved around in it as a kinematic actor.
    Originally posted by CokeKuma View Post


    The answer was very helpful. Some of the features shown in the video were reproduced.
    But one more feature seems to be needed. Can gravity simply be added to the climbing mode provided by the plugin?
    hi. mordentral.

    Climbing function through hand succeeded in producing results above the intended level. But the problem is that the object, not the hand, is physics handling. The hand and object have different criteria to trigger on, and in the case of an object, the direction in which climbings should be allowed varies depending on the shape it occurs. Therefore, a very diverse number of cases must be considered. So I try to find a simpler solution other than this one, but I don't have a good idea. What do you think?

    And how do I apply gravity in climbing mode? I tried to modify the code, but only the result of zero gravity came out.
    Last edited by CokeKuma; 07-02-2020, 10:05 PM.

    Leave a comment:


  • replied
    I am using the set tracking origin -> Stage (Centered Around Play Area)" which works perfectly to align a my ground plane to a real world play area with the exact dimensions - with oculus quest.

    This function gets called when entering the game and the players VR position matches the exact location in real world.

    However, with the VR expansion character I noticed an offset after stepping out of the play area and re-entering it an so far the only way is to restart the game. (The boundary itself still matches perfectly but the level kind of drifted...)

    This did not happen with the UE standard pawn and I was wondering if this might be related to the way of how the VR pawn actually moves while the standard pawn only moves it's components?

    Is there a way to prevent this offset from happening?
    Looks like the VR pawn keeps moving for a short distance before stopping / "leaving the game" and on re-entering the position kind of continues but with an offset...

    Leave a comment:


  • replied
    Originally posted by mordentral View Post

    Its a side effect of how BP handles overriding default base classes, its why I made a seperate VRRootReference variable when I overrode the capsule component to use as a direct reference. Casting to a grippable mesh and storing the pointer will work just fine, its just the BP graph not understanding class substitution fully.
    Thanks for confirming that..

    Also not sure if this is a bug on my end or in the plugin, but on the new 4.25, for some reason connecting clients cannot use any form of mouse input.
    This only happens after "on possess" is called .. If the client joins as their own pawn it works fine..

    But if they spawn clean, as just a controller, and spawn an actor to posses, then mouse input is permanently broken. At some point with enough fiddling, I managed to get a crash that pointed to this line, which seems relevant (120) VRBaseCharacter.cpp

    Code:
    Only after on Possess is called on the controller, then mouse is broken.
    I'm gonna keep tinkering for now..
    Thanks again, and anything that comes to mind is appreciated.
    Last edited by thelazylion; 07-02-2020, 06:35 PM.

    Leave a comment:


  • replied
    Hello mordentral,

    we started to use your plugin to develop a multiplayer VR game and even if we are still early in the development, I would like to thank you for the amazing work you put in the plugin.

    I have one question though:

    I created a character class which inherits from AVRCharacter and I updated your code to allow me to create a skeletal mesh, because we'd like to have a 3d rendering of the other players.
    I attached that skeletal mesh to the VRRootReference component, and added a negative vertical offset to it so that the feet are at the bottom of the capsule.

    The issue I face right now (using an oculus touch) is when I see in game another character, the capsule is correctly grounded, but the skeletal mesh is floating in the air.

    Would you have any idea of what could be going on there?

    Thanks in advance

    Leave a comment:


  • replied
    It's been a couple years since i looked at this and it looks like it's progressed a lot so nice work. However i never did end up using it as it seemed a bit bulky and confusing when all i wanted was a solid fps ready template. I was wondering if the guides could now be updated to be more clear and the plugin get more simple plug and play options for turning on and off features?

    Am i supposed to compile the plugin and go through all this visual basic setup and stuff or can it just run as a off the templete demo?

    To be honest i miss some of the old templates we had as they were simple blueprints. The basic unreal vr template doesn't do standard teleport (stick turning is weird) and comfort snapping otherwise id use it for basic projects. Though really id love it if now vr is more mature someone could create a solid template with most of the standard options, weapons and hand physics of half life alyx.

    Leave a comment:


  • replied
    Originally posted by thelazylion View Post
    So a little feedback on the inherited mesh in the vr character... Montage seems to work fine.

    Though, for some reason, replacing the inherited mesh with ugrippableskeletalmeshcomponent, for some reason only exposes Vr grip/mesh settings..
    : Super(ObjectInitializer.SetDefaultSubobjectClass<UGrippableSkeletalMeshComponent>(ACharacter::MeshComponentName))

    Used this to replace the inherited mesh with the grippable one.. However it no longer provides the "isheld" function or any other functions or events either. Placing a grippable skeletal mesh right next to it, has all the vr related functions working correctly though..

    This also occurs in the "grippable character" class... Cant pull any grip functions off the mesh..

    Is this by design or am i missing something on how to fix this?

    Current workaround is just to pass the inherited mesh into a variable reference, and call the functions from there, a bit of a hassle to go back and change references but not that big of a deal for now.
    Its a side effect of how BP handles overriding default base classes, its why I made a seperate VRRootReference variable when I overrode the capsule component to use as a direct reference. Casting to a grippable mesh and storing the pointer will work just fine, its just the BP graph not understanding class substitution fully.

    Leave a comment:

Working...
X