#virtual-reality
1 messages ยท Page 68 of 1
and you can just grab an Oculus Rift with Touch
if you want the better headset NOW
(unless you have a huge VR room)
probably wont be too significant. Im betting it will be a different form factor and different controllers. you will probably be able to buy the controllers seperately and use with old headset.
rumor says new controllers + bettter lighthouse + WIRELESS + 4k
wich is perfectly possible
better lighthouse and controllers are a given
yeah wireless is possible, im doubting the 4k though
two 4k screens? I dunno, maybe...
4k is also good probability, even if games dont end up rendering at 4k
yeah true, good point.
becouse 4k means higher pixel density, less screendor, and simpler games CAN render at 4k
i think 4k is less likely, but the other 3 are pretty much sure
but still 4k is possible if they want to completely blow the fuck out of oculus
yeah theres been a lot of talk about the wireless stuff. i'd be surprised if they got wireless+4k screens
ill try to ask for one to Valve once they have them
seems like a lot to send over wireless
well, the wireless works fine for the current resolution
wich is 1200p
it would go to 2000p more or less
its still around 3 times the pixels tho
doable if they improve the receiver and make it smarter
wich is quite possible if they have it integrated into the headset
to do it the best, the headset would be the one to do the timewarp
that way you get no latency at all even on wireless
that would be crazy
you can ASIC it
I think if they do want to add all of it, probably would take longer than a year
or with a low power-ish ARM core
like maybe summer 2018
i mean, the timewarp operation is really not that CPU intensive
or end of 2017
wich is likely
for the next christmas
maybe maybe. when did the vive come out again?
time flies
oh wow
so, a year ago
What are the major differences between oculus and vive according to developing for it? I personally was more interessted in the vive, I have to admit, but I have no real experience yet
oh yeah pre, didnt have the pre
Oculus is better
better hand controllers by far, better image, much better ergonomics
BUT
Vive gets the upper hand in the tracking
yeah i personally like the oculus better right now. even though i fucking hate how the cameras work.
yeah its better technology
rift tracking is flawless on smaller spaces
but on a bigger space it has issues, you need to go 3-4 cameras
Lighthouse, on the other hand, can be installed in the corners of a room, and then it gets the whole room easily
also, cameras have to be plugged to the PC
and the cord isnt that long
Rift quality with Lighthouse would be so great..
yeah for real
in general, competition is great
what cords is vive using? easy to extend if you need to?
If Vive does come with wireless, Oculus is going to need to step up
and do a even better Oculus Rift 2
both Vive and Oculus use USB + HDMI
also, Oculus has really neat exclusives
becouse they have funded them
Vive doesnt
with Oculus you play the whole Vr library on PC
all of it
Vive only plays steamVR games
Hmm well, then oculus + lighthouse would be really great I guess ๐
yeah, but who knows what Gen 2 ends up having
Oculus is testing stuffs with All-In-One VR
inside out tracking on the HMD plus high end phone-like hardware on it, built in
grab from the box and put it on
and it works
Oculus is emulating Apple
just check the packaging
And what about developing for those? I don't want to ask which one is easier to develope with, but which one might be more "pleasant" to develope with?
they want the "just works(tm)" philosofy
plus a stylish product
Vive does not look like a 800$ piece of hardware
looks cheap as fuck
Oculus on the other hand looks a lot sleeker
more like a truly premium product
anyway, i recomend Oculus to everyone that is thinking of a headset
unless the user is going to truly use roomscale on a big room
@real needle I've read you can extend the Vive cord by buying the 3 in 1 cable. I have it but I haven't tried extending it yet. The existing cord is long enough IMO.
I'm not sure how you would extend the power portion of it though, I suspect just using an extension cord to give more length for the power cable portion
I'm trying to extend the motioncontroller's distance from user's body and scale up the hand movements based on distance to user's body ... can any1 suggest a way to do that in blueprint ?
Rewrite the motion controller class, most likely. Or add a variable offset to the static mesh representing the motion controller.
Then base all your hit/interact boxes on your offset mesh.
no need
you can just grab the local position/rotation and add it to the other thing
Local position/rotation of the MC component will give you its position on "user transformation"
I have a skeletal mesh all rigged up for use as a left hand. I have a single Hand BP with all of the necessary functions. How can I use the left hand skeletal mesh for the right hand? I thought I could just apply a negative scaling on the right hand to flip the mesh (and retain everything else), but that does not appear to be working
i am assuming i will need to have two skeletal meshes, one for each hand. and will have to specify which of the two skeletal meshes to use for either hand when spawning the Hand BP
but if there is a way for me to "mirror" the mesh, i would love to know
Pretty sure you can, I believe the VR template mirrors the left hand to the right. taking a quick look.
okay i am stuck on 4.11 so i cant check the new template
Ahh gotcha
i am using a 1d blendspace, etc, for gripping. so there are animations, etc all setup for the left hand
the mesh it is simple to do the mirroring, but it seems to screw up the physicsasset
@empty sundial @wicked oak Thanks ! will try ..
@real needle This is how they do it in the template on 4.14
thanks! so it should be possible. i will experiment some more
Also, @real needle they use the same skeletal mesh, the "hand mesh" variable you see there is a "skeletal mesh" variable
fantastic, thank you for looking at that for me
np
hey everyone, curious what build most are using for VR ATM
I've been doing 4.13 with VRWorks for my main project, but am loving a lot of the new stuff in 4.14, wish I could have lens matched shading and all the goodies in 4.14 already, has anyone successfully done a proper merge? or will we wait on nvidia for everything to be put in and also possibly work with forward render path?
Merge?
I just load my stuff up in 4.14 and it worked fine. But it wasn't a complex thing.
@digital marlin right, I was able to upgrade another project to 4.14 with minimal issues, but am curious about the VRWorks branch from nvidia
it adds a lot of easy optimization, and works really well
NVIDIA has made it easier than ever for game developers to add leading-edge Virtual Reality technology to their Unreal Engine 4 (UE4) games by providing custom UE4 branches for NVIDIA VRWorks technologies on GitHub. VRWorks is a comprehensive suite of APIs, libraries, and engines that enable application and headset developers to create amazing virtual reality experiences. Learn more about NVIDIA VRWorks.
Modo?
A blender add-on?
ah, it is another 3D software
If you have $1,350 it is all yours
I can use blender, but simple things like managing views is ridiculously obtuse.
MODO by The Foundry brings you the next generation of 3D modeling, texturing and rendering tools in a powerful integrated software package.
not free though!
there is an indie version on steam which is super sufficient for game dev
10 bux a month if you get it in 6 month increments.. not bad, but i don't think ill leave blender for it
Well I'm not a 3D modeller. I'm just whipping together some quick assets
cool
But I'll try Modo
Is there a way to prevent static meshes from passing through each other? I've tried a number of collision options but I can't manage to get it to work. I'm using the default skeleton hands with objects attached to the MC.
Blender is good, but a lot of non-cre features are half-assed, docs/training resources lack and not whole a lot of users use Blender for VFX which makes it incredibly hard to find help
I like it, but sometimes I just feel like good times might be over and I'd be forced to switch to Maya
(and I've heard Maya's modeling tools suck big time)
@digital marlin I still have some issues with it, but make sure "Use CCD" is enabled on your static mesh under collision. Also if you have access to the VR template from 4.14 just look at the BP setup for the cubes.
@umbral imp Thanks, I'll check it out. I'm using it as a base so it should help.
Hmm no that setup is the same.
I'
It's probably due to the hands
Though I think I can understand why you'd not want physics to be enabled with collision whilst holding something in each hand.
Yeah that is why they turn off simulate physics when it is in your hand
okay, guess I never noticed that
@digital marlin Blender's gui is great! it's just different.
@limber rose I use the vr works branch, the flex branch, and 4.14 and the master (4.15) branch for a project that can't run on 4.14
@digital marlin there's some issue with CCD, motion controllers and teleporting
@digital marlin also, if you're trying to stop things from moving through other things, you need them to be able to separate from the motion controllers because you won't be able to stop the physical motion controllers
Ah... does anyone have a clue as to why translucent UI materials would show up in editor but not when built?
hmMM
@silk lodge Yeah I figured. But thanks for letting me know, I wasn't sure if I was doing something wrong
it's a complicated process. you gotta have them use physics or somehting to move the hand to the hand pose
In my game, I want to hit one object with another object that I'm holding.
I don't think it's possible, which is fine. But if I put one object inside a mesh it'll FLY off.
I might just disable physics for only very specific actions or something, I dunno.
Hmm.
Yeah I just played around with Job Simulator. I think it's important to have the objects be blocked whilst holding them.
Otherwise it looks like crap.
Physics handle you say?
Physics Handle
So attaching an object via a socket / component isn't a good way to do things?
oooh Tesla.
๐
I mean you could do it that way but it's harder
Story of my Unreal 4 development life.
you could use the first way to grab the item (like an animation to drag it closer to the player) then attach it and give it collision.
That would probably look really nice.
kinda of like astroneers or minecraft where things just suck into your inventory.
Instead of deleting it and it going to your inventory it goes into your hand
The grabbing isn't really the issue TBH, it's more so how objects can pass through with each other despite the collision being active.
Though I'm doing it via having an actor just attached to a skeleton mesh.
are you welding when attaching?
Nope.
do it
Doesn't Weld just adopt the values of the parent though?
Like my hands can pass through walls and stuff - maybe that's the issue 8\
"When autoweld is on we take the geometry of the child body and add it to the root body so that it can be simulated as a single body. "
because you can't have 2 collision objects in one actor you add them together
...
Either that or do the physics handle thing
Hmm I'll try the weld thing first.
shots in the dark btw. Best I can give with the information. ๐
heh thanks
My inkling is that it's the Motion Controller collision that's setup wrong or just in a basic way.
It's the ones that come with the VR template.
check out the answers at https://answers.unrealengine.com/questions/441922/motion-controller-collision-problem.html first then
make sure you do those checkboxes
but that's more or less handles
not actual held objects
but it depends on the reaction you want to give when the collision happens
Thanks Brune. I'll let you know in a tick how I go.
ok, better. The object I'm holding is now interacting with other objects the way you'd expect.
My hands by themselves aren't though.
So, let's say I have a table and I don't wany my tool to go through the table as I'm holding it - do I have to set simulate physics on the table?
Interesting. Physics is being disabled when I start the game. Hrmm
The motion controllers are simply meshes attached to your motion controller input. They are being explicitly moved by your input. They won't collide with anything
Physics objects will react to them because they are solid but static collision will not.
Because the implicit instructions to the motion controllers and the meshes contained are 'stay attached to the controller input no mattrr what.'
To get a physical simulation of hands you need to rewrite how the meshes move with your controller. And understand that doing so can cause issues (like 'losing' a hand)
If i'm about to create openable drawers, i guess it would just work that the mesh is attached to motion controller and then movement is constrained with right vector and clamped with forward vector? Is anybody done it?I cannot test my theory right now ๐
and with doors, it could be that the door is rotated towards the motion controller, so it would naturally follow the arc
Check out Mitch's VR example. Iirc he has done drawers https://forums.unrealengine.com/showthread.php?111074-VR-Content-Examples
VR Content Examples
Hey people, Mitch here
I've been doing my tutorial series for a few months now and I have a cool project that I would like to share with everyone.
The idea behind this is a community project that shows how to accomplish cool things in VR for UE4. It is meant to be headset agnostic and I would like to also have specific levels for the quirks for all headsets.
Checkout the gitHub for more information on the functionality currently implemented
You might also be interested in checking out that project @digital marlin . Mitch has also done a nice way to grab objects and not have them clip into walls or each other. He's setting the location each frame with sweep. I'm mainly using that for my project. Physics handles are not really nice. Objects lag behind a lot.
Thanks, gonna check that out
Does anyone know what the VRNotifications Component actually does? https://docs.unrealengine.com/latest/INT/BlueprintAPI/AddComponent/HeadMountedDisplay/AddVRNotificationsComponent/index.html
Add VRNotifications Component
ah thanks, still looking for the best way to do logging to the screen in VR, only have it half working with my own code
so was digging through what they had to see if anything would help
@graceful junco I was checking Mitch's stufff out late last night.
I think I fundementally have a misunderstanding of colliders.
@umbral imp I read yesterday about creating a text render on your pawn / VR camera and routing all strings through to that.
That way it shows up on your pawn in the middle of the screen and not 10 cm above your head.
@digital marlin yes but what if you have multiple log entries that come right after eachother? They just overwrite the previous entry too fast for you to read them
append to an array?
Instead of printing to the screen once, you could create a function in a BFL which prints it 10-20 times so you can read it on the far left of the screen. Someone suggested to create a function to print a bunch of returns and spaces before you print the actual string to the center of the screen. That doesn't help though if you print several strings quickly after each other.
whoa, Mitch's interaction example is batshit insane.
Sometimes playing a sound for debugging is easier than printing a string to the screen.
@digital marlin you could also check out the plugin by modentral called VR Expansion Plugin
I know his has a drawer you could look at
Coolio. I'll check it out
Also I think I had a great idea.
is there anyway I could make a spectator pawn, attach a motion controller to that, attach a camera to that motion controller, and then have a that pawn act as a mixed reality camera like fantastic contraption or something?
Please @me so I can see it if you have an idea. This chat can get crazy sometimes
@graceful junco The biggest risk with sound for debugging is if you leave it and forget it can be difficult to find sometimes. I had a sound playing that I was stuck with for a while because I reuse the same debug sound and forgot to move it. Was days of this sound till I finally came across it again D:
I didn't know a good way to search for it either
Hmm, you could just search for the play sound node, but you'll find all of those nodes, not just the one playing that one particular sound. Or you could wrap playing the debug sound into a function so you can search for that function later.
That's a good idea, I like wrapping it in a function
Wouldn't a MoveTo Component Sweep be really expensive if performed on many objects?
Or am I just being overly cautious with performance?
Side question - is it worth the hassle of implementing the Unreal 4 VR editor?
"if performed on many objects" Well, for thousands of objects, probably. For one in each hand. nope.
And I guess most objects are going to have some form of collision enabled, right?
Even if it's just query.
Yes, but you need physics enabled, not just query if you want the objects to collide with each other/the world.
Hmm yeah good point.
I was trying to do a physics hand last night too.
It's toughhhhh
But... when it works, it's pretty awesome.
Or rather... the bits where it works, it's really promising and presence enhancing.
But also it'll spaz out a little too often.
@clever sky Like, your hand collides properly etc with objects?
properly is a bit of an overstatement.
heh
But yeah, got some hand collision going on with the world.
You using line tracing?
I mean, it's easy enough to do one way collision
But having the world push back is much harder and buggier
with the approach I'm doing
So maybe it's not the right approach - using physics constraints
o rly?
I haven't looked into that.
One way I'm checking out is by invoking a test on-overlap.
and then stopping movement if it's detected.
I'm trying to emulate a hammer hitting a piece of metal on an anvil. It's quite the mofo.
Though I'm learning some basic stuff about collision, so I guess that's good.
Oh, so your primary goal is to simulate physics on grabbed objects?
Yeah... the constraint approach probably won't work.
But... VRExpansionPlugin does have the goods there.
My whole game is based on grabbing physics objects and interacting with them. The VRExpansionPlugin grabbing styles are good, but not perfect. Basically what you want when grabbing is what Mitch did, setting the location each frame with sweep on. But then you also need to switch to a physics constraint if you hold one object and place another object on top of that. That's kind of what the VRExpansionPlugin does. Not sure how exactly it's done in code in the VRExpansionPlugin, but it wasn't smooth enough for me. I'm switching between sweeping each frame and physics constraint at run time, based on whether my object gets hit from above or not. Works really well for what I'm doing.
Grabbing kinda depends on your game though. Simply attaching, physics constraints, physics handles, sweeping, or a mixture of several of those, there are lots of options.
Yeah that's what I'm exploring
Whilst I'd use the VR expansion plugin, I'd rather know exactly how it works.
It'll be painful, but at least I'll come out with some better idea of how it's working.
With Mitch's demo though I couldn't get grabbing to work 8(
@graceful junco Which one of mitch's demo has the grabbing example? Or all of them?
I also found that mass is quite important. You probably want to set the mass of the grabbed object to a value, which enables you to push other objects in the world around, but not too high, or else you introduce jittering/other bugs when colliding.
And did you get a physics hand thing happening with push back on the hand?
pretty sure the grabbing is in the VR World Interaction example
Cools
Yeah I think he uses it for the whiteboard
all the logic is in the PickupSceneComponent
Good stuff.
What exactly do you mean by "push back on the hand"?
So if you try to put your hand through a wall, the wall will stop it.
Well my "hands" = vive controller meshes have no collision. It's weird trying to stop hands from going through walls. Your hands in real life would be somewhere else than in VR. But, if you grab an object and try to push that through a wall, it gets stopped. That's what sweep does.
I like this sweep thing you keep mentioning...
But also, not sure how to activate it?
hang on
When grabbing, you set the initial location and rotation
And then on tick, you try to sweep the picked up object to that location/rotation
Mitch's example only has the location, I added the rotation myself.
This is a newb question.
Nice work. Thanks a lot for that.
So if I move my hand forward - what sweep does is calculate the direction before it moves, yes?
Should make my own physics exploration easier when I get to it!
and gives me a trace that determines if any other collision bodies are in the area of the sweep/
?
Been working on hand/physics stuff, but I should really just get my locomotion demo out ๐
so if the trace sweep is like.. within 0.4 cm of my object, I could detect that and prevent movement of my actor to prevent my hand / object going through the thing?
I haven't had a look at the engine source to check how exactly sweep is done. The documentation says "Whether we sweep to the destination location, triggering overlaps along the way and stopping short of the target if blocked by something."
Sweep already stops the object when colliding with something, you don't need to add that logic yourself.
Hrmm
Sweeps it is!
Hrmm reading through Martin's stuff - there's a lot going on.
Multiplayer is 50% working right now
We can see each other but the client isn't "seeing" the actor being picked up.
We're using the VR Expansion Plugin by modentral.
Super cool tho, I can see my friend in virtual space ๐ฎ
Make sure the actor is set to replicate, and replicate movement. And make sure that the pickup is called on the server
Check the output log for error message
So Martin is able to maintain collision via simulate physics, but removing gravity, and upping angular and linear dampening
Would that work?
My actor replicates
All other values work too: movement, health etc
Oh man. Martin's stuff is excellent in a lot of ways.
And yessss. It has a white board!
I'll have fun modifying that stuff.
Genius bro dog
AFAIK.
Also looking through his code makes me feel inadequate about mine ๐
'Oh man??! You could do that??'
One thing I don't quite get is...
I just look at it and get sad.
how does the line trace determine the collision?
Sweep?
I want to say the linetrace returns results akin to a sweep based off the object you're hitting's collider settings.
But I'm just guessing / hedging bets.
The part that says 'Trace to see if there is anything in our way'
screen shot?
So it does a trace...
then it uses a force application to move the object
if it's been blocked?
But it's a line trace...
maybe it's due to the Trace Channel being camera?
Actually I have no fucking idea what's going on there
I'll have to experiment more with it by taking out parts
is the line trace between the hand mesh and the object he's holding?
Yeah it looks like it
So, if the something collides between the mesh and the object then push back?
Ah
that kinda makes sense - but wouldn't it go through something and bounce back REALLY quickly?
maybe too fast to notice?
that's what it does.
Without the code it'll just keep moving out
with the code it has a magnetic attraction back to your hand
even though its been stopped.
That's kinda clever.
Yeah.
...
Exactly what I need ๐
Hahaa.... been trying to do this stuff on and off for a while now.
I think we're working on similar ideas - at least components.
Good thing I'm not in a 'I'm seriously doing this hand physics stuff right now' phase ๐
Probably the only thing saving me from tearing my hair out!
Ah that's me at the moment. I want to try and get as much done before I start work.
Ok. So Mitch's stuff is a good starting point.
hmm - why does Martin apply gravity though?
But what I need is for objects to pivot
Why not just simply set the location
from the hand
Like the hand is the pivot point and then the tip gets moved against colliders
Ideally that's what you'd want.
Anyway. Gotta stop procrastinating and get back to my real stuff! ๐
is minecraft gear vr anywhere near as good as normal pc minecraft?
I would guess not since you cannot do mods.
Anyone else using the VRExpansionPlugin? I've got a question about proper settings to reduce lag.
When waving my gun around very fast the gun seems to lag from the hand. In strange directions too. For example if I move my hand really fast from left to right the gun gets ahead of the hand and separates. Is there some way to parent the gun to the hand so it will always be 1:1. I don't care about having the gun bend if you push it into a wall.
Sorry icecreammatt
No idea
Anyone have any idea on how to stop an actor moving once a line trace has been hit? Should I just use a bool variable to trigger it off and on?
@digital marlin You could get it's current world location at time of impact and then set the world location to that position. You could disable physics to freeze it.
That's a solid idea @storm vortex
the way I've done it is kinda like that - I'll post it in a tick.
I don't know the whole context of what you are doing, but you might want to enable physics again afterwards if you want it to move again
physics is for the devil
Can you attach a component twice to the same socket? Or does it just override it?
Like if I've got something attached to a socket, can I re-run AttachToComponent?
Ah ok
I handle my inventory similar to that. I have an area of the body that you can drop an item on and it attaches to the component.
I tried detacting and reattaching and that's not a good idea heh
I'm using multiple items to teh same component if you attach the same one twice im not sure what would happen
*detatching.
Also in case you were curious I fixed my issue with the lag
Instead of parenting the weapon to the controller which was really the controllers scene component, I needed to get the owner and parent to that. Lag is totally gone now. ๐
Previously I didn't do that cast to the owning motion controller, I just used the object directly on the attach to component
Controller == MC?
yeah
Odd that it would cause lag?
I think because it has to update the scene component with each tick, and since im updating the weapons location based on the scene controllers location it probably is one tick behind, the strange thing is it would get infront of the weapon not lag behind like i would expect
I'd make a video to show you, but anytime I enable the Nvidia shadow play or that tool it likes to knock out my wifi which is annoying.
I'm very close to being able to put together a quick demo video. Just a few more minor details to adjust.
oh but that's cool
Unreal has a 'Reset Transform' which has helped me out here in a big way.
I burned about 2 weeks refactoring to use that VR Extensions Plugin, but for what it gives it was totally worth it.
Mostly wanted it for keeping the camera in sync with collision mesh and a simple grabbable component, but refactoring all the items to make use of it took much longer than expected. Oh well cleaner code each time you rewrite. ๐
That's true
Any idea how I can prevent the bouncing you get when one mesh is clipping another?
I disable mesh collisions on things that I have that happen with
Hrmm
So if I freeze my object, then disable the collisions
it shouldn't keep trying to penertrate
penetrate*
You should also disable physics
I usually disable and enable collisions and physics in pairs in most cases depending on what im doing
Yeah they're disabled.
I think it's just the physics
gah
The collision
ohhh
Nope. It's my shitty way of doing things.
Gonna try and just freeze things until the component is swept away
I'm gonna try a VR locomotion setup where you strap 2 extra controllers to your legs and run in place
I'll call it something cleverโข
I hope at CES we get something like kneepads that have sensors on them for the Vive. Something for the Rift like that too would also be cool. We don't need more fragmentation than we already had before it finally got motion controllers.
ah they're half way there with the kinect.
I want to do the fancy fancy with my inventory.
Like have a sword scabbard.
That you have to slide the sword into.
Not sure the best way to approach that though.
Maybe just mimic some of the motion, not all of it.
Because trying to slide a full length not actually physically there sword into a full length not actually there scabbard is like... bad VR-ing.
@digital marlin I never thought about that, using the kinect to track leg movement. You could easily have a jog in place to move around. That would be pretty cool. I might have to dig out my old PC kinect ๐
@digital marlin Ah, I was just wondering what it was for. Figured it out when I was talking to you earlier ๐
@storm vortex Just putting together my vid to introduce my locomotion system. Involves walking in place. Footage is very convincing. Looks like go-pro footage of a person running.
Doesn't use any leg tracking, but just as good IMO.
I read you saying something about a new walking system the other day. I'm curious to see what you came up with. My main / favorite method of locomotion is the arm swinging that Art of Fight uses. That's what I'm trying to emulate with my game. With teleportation and slide movement as alternatives.
Ah yeah.
Art of Fighting/arm swinging locomotion is ok for reducing vection
But it's not great for immersiveness IMO.
Like... maybe a notch above slidey locomotion
But actually, I use a bit of arm swinging to help moderate the speed of motion.
So I guess in that sense, I have some arm swinging going on too! ๐
I'm going for something a bit inbetween immersiveness and ease of use
I feel like the Art of Fight is really easy to use, at least for me to quickly move around shoot stuff with lots of control and precision.
I have a difficult time aiming with the slide movement as it is too sudden. (Probably my poor settings for it)
Not to mention it makes more more dizzy
And then teleport is the ole standby
Yeah fair call. I'd do it that way too if I weren't all about the stuff I've done ๐
@digital marlin There's a setting in the project settings, which determines how fast physics objects are allowed to depenetrate, meaning get pushed apart when they overlap.
Hey peeps, discussion about the Window Mirror, it's Resolution and UI for it: https://forums.unrealengine.com/showthread.php?132554-Preview-Window-Independent-resolution-and-UI
Would be nice if you could look into it, share your knowledge and leave an up-vote
Hey peeps,
I want to discuss something with you today.
As some of you might know the Preview Window of the Vive (the window you have on your PC while playing a VR game on the Vive) shows a part of the left eye.
Currently "WindowMirrorMode 1" gives us a vertical image. Based on information from the forum I created a PullRequest to at least give us a horizontal resolution. But this is still not really optimal.
The Vive has a resolution of 2160x1200. Means one eye is 1080x1200. The
hope that HTC or valve has something similar
why do you care for Vive and Rift to have same features ?
I care for htc/steam being ahead of anything that facebook does
I hope HTC/Valve stay ahead of the Rift too. Mostly cause I don't like Facebook, but really I want them to have feature parody so games don't end up as exclusives for each platform.
Also Nolo looks pretty cool. I isn't the refresh rate on most phones locked to 60 though?
Has any1 tried this very underrated feature "Stereo Layer" ?! seems like theres no documentation for it
@dusky moon never heard of that, what is it?
@full junco It's a component which seems to be useful for VR HUD .. it renders your HUD in a separate pass
what kind of HUD? widget components?
I just saw the component called "Stereo Layer" in blueprints and don't know shit about it ๐
would be nice if any1 can explain!
it renders a texture with the HMD API
that makes that texture not render alongside the "world"
and it is outside timewarp shanenigans
it works
you can add a texture to the camera, parented, and that texture will allways be 100% centered and not jittering even if the world outside is lagging
my problem with it is that i wanted to use UMG for that. And i actually did get it working
but it would use a black background for that texture
so instead of being a screenspace healthbar, it was a healthbar, and a huge black rectangle
ah I just made it as a child of my VR Pawn's Camera and added a texture but doesnt show anything for me
right now, its absolute best use is to use it for a pointer
have you moved it forward?
yes
if its too close to the camera, it will get culled
is it a big enough size?
and set as "camera space"
@wicked oak doesn't even show the texture assigned inside editor.
doesnt do that for me either
hmmm and what did you mean by camera space ?
there is an option
if you want the "layer" to be on camera space, playspace space, or world space
if you are parenting the stereo component to the camera, it has to be on camera space
if you are parenting it to the Pawn, then playspace thing
or tracking space
dont remember the exact word
ah yeah it's Face Locked / Tracker Locked / World Locked
I'm on face locked but still ...
@wicked oak it can be in world space?
it renders a texture in world space outside of the world?
all devices support face locked
others im not sure
but yeah, its to render textures around
I would love to have widget components rendered like that
too bad my UMG rendered one was a black background ๐ฆ
tried to fliddle with a bunch of settings, but nothing
the major problem I have with TAA is that widget component text is unreadable
not really
MSAA does nothing on it, FXAA just blurs it
the thing with the layers is that they are not touched by the TAA or anything
they go through Oculus/SteamVR SDKs
and are pretty much completely out of the engine
yeah thats why I would love to have widget components rendered like that
yeah
TAA would not make it unreadable then
but nope, black background
you could supersample those
not sure exactly how, but it is possible on the sdks, at least natively
supersample what?
@wicked oak mine is still not working but read here :
https://answers.unrealengine.com/questions/475757/vive-layer-system.html
but its not textures, text in UMG is just text
have you tried to use separate translucency on the UMG material?
maybe you should change the compression of the image
they are textures
well ok no idea how text is stored
a UMG widget renders the UMG thing into a texture, then draws it on a quad
or not quad
yeah makes sense
you can go to the material for the UMG widget, and set it to use the separate translucency
separate translucency doesnt get TAA-d
btw, the layered thing doesnt show on preview
it ONLY shows on the headset
oh, seperate translucency doesnt?
YES 1 got it working
it gets rendered outside the "world" and then added
is also doesnt get post processed
I changed the compression of the texture to "User Interface 2D" and the mip group to UI
and it also works with transparency
youre talking about the stereo layer stuff now or about seperate translucency @wicked oak ?
separate translucency
i did got it working, but with black background....
i was using a render target texture, and rendering the widget to it
with FWidgetRenderer
I thought you talked about stereo layer when saying you got a black background?
it was a code snippet i found around the net
yes
black background was with the stereo layer
and you did get a black background with seperate translucency too?
for higher quality UMG text, you can set it to separate translucency on its material
no
ah your black background is because you wanted to use them with widgets ?! because it seems fine with textures
well that would better be a feature from unreal
but the nice thing is ... the text rendered through it is super sharp and readable
yeah
@wicked oak my widget material is already set to seperate translucency
and its still completely affected by TAA
the tooltip for seperate translucency says "not affected by DOF", but it doesnt mention anything else
so someone from epic in the forums says
Layerd Stereo Rendering lets you send a separate texture to the runtime for the VR headset, and have it reprojected on it's own. It's useful for things like UI, where you want to attach to the head and run through a separate pass than the rest of the game. Imagine a good use case as some UI that you want to display to the player as a quad right in front of them. You'd use stereo layers to do that. The advantage of doing it that way rather than attaching a component to a camera is that it gets composited on as a separate pass, which means it doesn't go through anti-aliasing / post, etc.
so it can be used for UI
well it seems to actually be possible the render a widget component to a stereo layer: https://answers.unrealengine.com/questions/523246/rendering-3d-widget-to-stereo-layer.html
true, TAA still affects it. I was wrong
btw @full junco what that answerhub does with the widget is similar to what i do
but i get black background
- with that approach I'm afraid it also costs alot to capture widget and re-render it again
well a black background isnt too bad, then just make the text on the widget white
i do
but its a face locked HUD, that shows the game stats...
so its huge
i keep it transparent most of the gameplay, until you finish a round and it gives you your score for a while
or things like "X killed Y"
being black means i cant see shit
hm well in my case its small and can be fully opaque
yeah I should try it
i use a snippet. Ima copypaste it
void UDWGameplayStatics::WidgetToTexture(UUserWidget * Widget, UTextureRenderTarget2D * Texture)
{
if (Widget && Texture)
{
FVector2D TextureSize(Texture->GetSurfaceWidth(), Texture->GetSurfaceHeight());
FWidgetRenderer * widgetRenderer = new FWidgetRenderer();
TSharedRef<SWidget> swidget = Widget->TakeWidget();
widgetRenderer->DrawWidget(Texture, swidget, TextureSize, 0);
delete widgetRenderer;
}
}
just that
renders a UUSerWidget into a texture
I'm actually thinking about using this technique for Vision tunneling ...
he also sets up the render layer
this just renders the widget into a texture
you need to create the texture asset and stuff with this node
ah, but dont you think that is why you see it being black?
he sets WidgetTarget->ClearColor = FLinearColor::Transparent;, maybe thats just still black for your texture?
uhm, that makes sense
but i think clear color is transparent black by default
gonna try with that clearcolor thing
ill be back with results
ok
hmm I updated the firmware on my lighthouses at home and now one of them blinks red and says "fault 02"
if i roll back 2 firmwares it doesnt do that and tracks just fine all by itself (in "A" mode)
I can see all the lasers/LEDs when i point an IR cam at it too
2 players using 1 lighthouse set ?
nope this is my home one
just me
looks like maybe their are new diagnostic features in the newest firmwares and my lighthouse things something is wrong (even though it appears to work fine)
maybe I'll RMA if under warrenty, but that sucks
I don't use it often at home on account of working with them all day at work
@spring pond Are they consumer or pre?
consumer
Hm
Day 1
Seems like an RMA to me :/
yeah, hopefully its still covered...
Or just wait for next firmware update. Have you checked steam hardware forums?
browsing those and my logs now
Since it works well with older firmware, it could actually be a bug you know
So if you don't see anyone else with the issue, write a post before you RMA
yea, especially since even standalone with the one base station everything works fine
all test fails
still black background
even with the clear stuff
even if not rendering, and setting the texture as clear only
still black
and chroma texture also doesnt work
you can try yourself, if you manage to get it working, tell me how
just create an FWidgetRenderer * widgetRenderer = new FWidgetRenderer(); somewhere?
i had a bunch of alpha problems doing RT targets
I think I had to send the alpha as RGB to a mask texture and copy by hand the alpha channel
that or it ends up inverted. A being normal or 1-x is totally dependent on the number of operations that happen to the RT
If I want to change World to meter scale , can I also make it affect my Pawn's scale ?! or should I scale everything else myself ?
@wicked oak what do I need to include for FWidgetRenderer?
I tried #include "Runtime/UMG/Public/Slate/WidgetRenderer.h"" but I get some errors with that
do I have to add modules or something like that?
ok, added "UMG", "Slate" and "SlateCore" in the build.cs as modules, that mostly fixed it I think
@wicked oak ok I set all the stuff up now, only need to test it
see if you get black background
I see nothing
ok forgot to set it correctly
hm no, still see nothing
@wicked oak how have you set it up to see something?
I think I've found the least painful dev environment
I've setup a box behind me that's roughly height and then use controllers
It looks as retarded as it sounds
It's annoying as hell constantly putting on the headset
Is there a way to define custom collision boxes?
I assume there is.
lol
There's no way VR is turning anyone a profit any time soon.
I doubt if HTC or Valve have made money on it.
We need headsets to go the way of the mouse or monitors. Varying levels of quality, but overall pretty standard across the board.
We need ubiquity
instead we get more exclusives ๐
Yay at least a fix is coming soon. I was going to ask if I was alone on this issue. https://github.com/EpicGames/UnrealEngine/pull/2659#issuecomment-268987929
what's the fix for? (I'm not logged into github)
@storm vortex I've actually been assigning left/right to each motioncontroller component at runtime depending on where they are
Do you just look at their position relative to the HMD?
@real needle oh that's clever
Then doing some inputremapping
I read other people doing some stuff like that too.
I'll probably just wait for 4.15 to save myself the trouble, but that's great you have that working.
The inputremapping took a while to get right, but it allows for a lot of flexibility
Say I only want menu on the main controller, I only rig that event on "MainShoulderInputEvent"
I wonder if that's immersion-breaking, assigning specific hands to things
It took me a long time to catch on that it was Unreal games specifically that always forced me to remove the controller strap to swap hands.
Then again, it's a pain in the ass swapping hands all the time.
I prefer it when games let you pick what hand to do what. Not a fan of them locking items to one hand or another.
Might be cause I'm left handed though
heh
Can you have classes of classes?
Class A -> Class B -> Class C ?
I assume you can, but not sure if it'll work with BPs
gamers showed no interest in VR because there was no games in VR that can rival desktop games
I don't even mean graphics. I mean depth.
I mean the "games" are really just simple arcade experiences.
With physics off, there's no way to determine the force of an impact is there?
contextually speaking, within an Event Hit on an actor.
Nevermind, just answered my own question
@digital marlin you can have classes like A->B->C
So I created a new BP Class, called it "Grippable static mesh", gave it some variables like "ToggleGrip" and "DoubleGrip". Then made a child BP of "Grippable Static Mesh", and was able to easily set and access those variables by casting to that class, things worked great.. until I realized that the "Root Component" was screwing up the grip and drop interfaces
Is there anyway to not have a root component? I tried attaching to the root component instead, but that doesn't work.
@umbral imp are you using the VRExtensionsPlugin?
No, the default vr template, and looking at the Extensions Plugin
I switched all my custom stuff to use that plugin. The plugin is really nice and takes care of a bunch of stuff for you.
It was a pain for me to get it working at first, but once I did totally worth it
I know, but I've never used BP, and since I need to understand how it works I decided I had to build from scratch.
I had to make all my things I pickup subclass from GrippableSkeletalMesh or GrippableStaticMesh class
That plugin is written in C++
But you can mix and match it
Yeah I've also never done C++
I agree with building from scratch though, I learned a bunch doing it on my own before I used the plugin.
So if you haven't done C++ and never used BP what are you using?
I'm using BP currently. I'm actually an 3D modeler, but we are short on programmers currently, so learning BP
ah got it
To answer your question, instead of having a root component if you are using skeletons you can add a bone and grip to the bone instead
I looked at the "Grippable Static Mesh" from the plugin, but it was implemented in C++, but it didn't look like the class I setup in BP
In the case of static meshes I'm not sure a good way to fix that. I need to figure that one out myself still
Not sure how they changed that
The mesh in the Plugin you can just subclass into a blueprint
Look at how the weapon is done in the example project
ah, if you subclass something does it allow you to change the default root component?
default scene root
I don't think so
For theirs it apparently did... or their base one didnt have a scene root
yeah, their base class might not have a root or used an actor I think
I haven't tried switching the root in it though
I just can't attach the default scene root to my hands
See if you can attach the mesh inside the scene
I can, no problem, but then I can't drop it.. due to the way they have the controller BP setrup
Object->Get Static Mesh-> ----- Assign to Target
Hand Controller ->> Parent
or other way around
To drop the item keep a reference to it when you attach and then call detatch when you are ready to drop
one sec, I'll show you the problem, let me upload a screen
That is from the controller BP, you notice it grabs the root component
and if it matches what the controller has... sends a drop command... well, my root component is not attached
Can you post your heirarchy?
You mean the BP heirarchy for my custom class?
yeah
is there anyway to measure the impact of an actor that has simulate physics turned on against the impact of an object that has physics turned off?
I don't understand how it can react with physics yet there's no way for me to get the force that's being applied on hit - unless there's something I'm missing.
Hmm, might still be confused, but the Parent Class of the GrippableStaticMesh is "Actor"
Sorry, from your screenshot I don't have enough context to understand whats going on
So that is the release actor interface.. it gets the attached actor (to the controller), then gets the ROOT component of that actor (in this case the "Default Scene Root"
That makes sense to me apart from your comment do not drop
sry, ignore that, just some debugging commands
what does the drop function look like
the VRDebug Print is not important at all
That function never fires.. I never get the debug to print for this
again, because the drop interface is never called
@umbral imp your drop function looks fine, there must be a bug with what you are comparing against in the caller
maybe don't try to check the motion controller and just call drop to see if that works
I always like to make stuff less restrictive to make it work and then tighten the rules
I know it will work then, but then I have to code around it for if I'm swapping stuff between hands
you should print the value of what the attached parent is to confirm it actually is the motion controller
i've run into issues where i was getting what i thought was one thing but was really off by one parent level
Did that already, it is the motion controller
i think there is a way you can print the string value of a class
ah
i'm not sure then, sorry
np. THe issue is when it calls the root component (default scene root) and tries to get the attach parent.... well it has none.. so it fails, so the EQUALS check fails
that is why I REALLY want to get rid of the default scene root
or replace it somehow
Can you use a plain actor instead of a scene component?
(assuming that you are using a scene component)
How do I do that?
Whatever item you are picking up, have that subclass from actor and add a skeletal mesh to it. Then you won't have a root component
I might be confusing the differences though
hmm, okay I'll look into that
@storm vortex Huh.. well IDK why I did that, but my BP was a child of "Actor" not "Static Mesh Actor"... I think changing that might fix it.
yeah that might help
@wicked oak what I do notice is that my widget breaks when I start drawing in on that stereo layer, but I don't see anything on the stereo layer
stereo layer also doesnt work when just adding some regular texture
ok I got it working with a test texture in the character blueprint, but only face locked, not world locked. world locked shows nothing
@pearl tangle Could you please tell us what are the primary markets for Gear VR ? I assume USA, EU, Asia (probably S. Korea, Singapore, and maybe a few other) and Australia are the largest Gear VR markets. Would that be a correct assumption? Could you provide any more details ?
@umbral imp Just replace the default root with a scene component. It gets removed automagically if you set something else as the root
No it doesn't, it is inherited and cannot be replaced
Which class are you inheriting from?
Actor, that was the issue, don't know how that happened, but I changed it to static mesh actor, now I can replace it, and it works fine
If you just go Right Click in content browser, make blueprint class actor, then you can remove the root
You must have inherited from an already created actor
I can replace the root on THAT, but I was creating children BP where I could not replace the root
I can do that with Static Mesh Actor BP though
well, I can SET the mesh
not replace, but that is all I needed to do
Make an actor, set it's root component to be Static Mesh, and then on each childBP you just replace the mesh
Okay, interesting, is there a distinct advantage to being under the actor class directly instead of under the "static mesh actor" class?
The static mesh actor is what it's called, an actor with a static mesh as it's root
jesus, the way I've done this hit stuff is so convoluted.
Ah, currently my heirarchy is "Actor->StaticMeshActor->GrippableStaticMesh"
Ah you're using the VRExamplePlugin?
I don't see an issue with that exactly
I'm not, but I literally am ripping everything from it. I am new to BP (and Unreal) so I didn't want to use it without understanding how things work
That's a good thought, but most of the logic in that plugin is custom blueprint classes so there's not much you would be able to "rip" without it
I would have a look at Mitch's VR content example
@wicked oak it seems setting the stereolayer location doesn't work, it just stays at whatever location it is when I start the game
Yeah I noticed that, also I have heard of Mitch's VR content, haven't checked it yet
@umbral imp I would highly suggest you do, the VRExamplePlugin is a little bit more complicated
And mitchs example doesn't use any plugins (afaik)
So therefore better for you since there will be official documentation for each node
Okay, because the VRExpanded one is super complicated and hard to follow for me
VR Content Examples
Hey people, Mitch here
I've been doing my tutorial series for a few months now and I have a cool project that I would like to share with everyone.
The idea behind this is a community project that shows how to accomplish cool things in VR for UE4. It is meant to be headset agnostic and I would like to also have specific levels for the quirks for all headsets.
Checkout the gitHub for more information on the functionality currently implemented
Yeah Mitch's stuff is very clever.
Also, there's an official UE4 stream based on picking up objects
Someone should just release a book of blueprints w good documentation.
The concept of using interfaces for blueprint communication is great and something you should know going forward
you dont need interfaces, they are just annoying
@umbral imp I highly suggest this video as well: https://www.youtube.com/watch?v=EM_HYqQdToE
@full junco What would you do? Just cast to actor?
yeah
Yeah, I'm about an hour into that. That is what made me realize I needed to create a new BP class for this setup
well usually not cast, just store the reference somewhere as a variable
nah I like interfaces. Espeically since I can test if they're used.
Well now that I have my new BP Class I can easily cast to it and get variables from the interactable objects as needed. It is very nice and simple
So like a holistic BP?
I prefer the workflow of interfaces, since I don't have to worry if I end up wanting a new class in the future to send the same call to
I also tend to avoid child classes in BP
Applying a timer to a tick event - bad idea?
Yeah, but for networked logic I've had too many issues with child classes in BP
And replicated child actor components have been a complete mess...
@real needle so I'm not sure how you go about storing and passing around variables easily with just interfaces?
variables between BP that is
@umbral imp Zak explains in the video
okay, I really need to watch the rest of that video, not even half way in yet. That video is like the only amazing resource on BP communication I've found
Spend some time using interfaces and you'll get around it. It's a bit weird at first when you start using input and outputs, and how the function changes based on if you have inputs or outputs
That is how I did it at first, I had to add 3 inputs and outputs and string that along to the calling BP... just seemed too cumbersome to me.. is that more resource heavy?
@umbral imp Don't spend too much time thinking about performance, it'll just slow down your progress
We have plenty of CPU to play with
Yeah just super worried about development in VR especially
Yeah the other modeler/artist is constantly trying to tweak our materials to make them more efficient... we are doing a realistic style which is worrysome to us
Keep draw calls as low as possible, they're the biggest hog
Polys is not so much of an issue, we're running 2.5 million without issues
Atleast on Nvidia
Yeah we are doing a lot of poly instead of trying to normal or height map it
...so I'm safe with a few timers heh
the visual quality of that stereo layer is really awesome
it looks perfect
but the world location where it renders is wrong
and I can't even show it to you because it only shows up in the vive and not on the screen so no way to capture it lol
@mighty carbon I saw you asked in the forums about sterero layers, do you use them?
I'm not trying UMG currently, only trying to get it to work with a texture
@mighty carbon and does it work for you?
I mean, is the world position correct?
yeah
so when you place it at 200,200,200 in the world it actually shows up at 200,200,200?
I didn't measure precisely, but it looks like it stays where I placed it
do you move it around or is the position static?
I have an empty BP actor and StereoLayer component inside of it
no, I don't move it. It just sits there
I did it same, just added an arrow component too
and I move it, have it attached to motion controller
I haven't tried moving it
also, report it to Oculus on their forums (if you use it with Rift)
it could be UE4 issue or could be platform issue
because the world location moves around when you rotate it
so rotation does affect location
thats wrong
well, then report it to Epic and Valve
would still like to know if others see the same first
so I hope @wicked oak is back soon ๐
I always report stuff to Oculus and either get explanation about how to use it correctly or if it's a bug they fix it or let me know it's UE4 bug (and they poke Epic about it too)
yeah thats good
I dont think theres such a place for vive
or is there? I know the steam forums, but valve doesnt seem to be really active in there I think
for example, when the rotation is perfect forward X then I have to move the stereo layer roughly here for it to appear at the right side (the start) of the arrow: http://puu.sh/t5r3g/107d021529.png
ey, has oculus released 3d models or skelatal meshes of their touch controllers?
@sly chasm its even part of ue4: http://puu.sh/t5reV/3729ba409f.png
its in the engine content
wow
same like vive controllers
let me find that
where did you find it?
@full junco all I can find are the mannequin hands
@sly chasm engine content: http://puu.sh/t5rsR/32914d1154.png
then just tick static mesh in the filter to see all static meshes
yeah
guys, what's some easy to get SFX >?
Ah righto
There's a big SFX pack floating around for free. Look for big free gaming SFX pack.
@digital marlin https://www.reddit.com/r/gamedev/comments/4adlsk/16gb_of_high_quality_sound_effects_the_sonniss/
That's the one
The second link someone has mirrored sounds in the comments
I'm going to attempt to package a build for the first time since I started working with Unreal. Any advice for packaging for VR?
Mostly just doing it to test to make sure it works without errors D:
Thank you good sir!
ah, theres a checkbox? I always put it manually into the ini ๐
Yep. I think since 4.14
That would suck to wait an hour and not be able to test it
Well you can. You just have to make a short cut with a -vr on the end
But that's not as elegant
ah, and any maps i have in the project I can open from the console right?
by doing open "levelname"
I think so.
it works while in editor, just don't know about in game
like if the console gets disabled for a build or not
Although I can't confirm it as I haven't tried.
Worst comes to worst, make a level select menu ๐
yeah thats on my todo list
this is the bug with the world positioning of the stereo layer
it should be where the hand and the arrow is
(I know, thats the best video quality you've ever seen)
@digital marlin Didn't play around with it beyond messing with Mitch's stuff. Really promising vector for exploration.
But I was just taking a break procrastinating from doing video work
Which I'm also doing now! I gotta learn Adobe premier now... D:
had to record it with holding my phone in one hand, holding the vive in the other hand and moving the motion controller with the 3rd hand
just that I only have 2 hands...
the black/white thing is the stereo layer texture
how?
Click on the steam VR popup window thing
and it'll say 'Display Mirror'
It'll even show the chaperone bounds
argh, yeah its visible there lol
never knew that mirror thing existed...
thanks, now I wasted way too much time with trying to record it with the phone
Hehe
Yeah, only (re)discovered it recently.
Luckily I haven't had a pressing need to use it. Just nice to be able to walk people through in VR
So... is that black hole supposed to look like that? ๐
the funny thing is. those stereo layers stay visible in that steam view too: http://puu.sh/t5u7M/51e98797d6.png
@clever sky yeah, the whole thing is supposed to look like that
Ah... so that's how Valve did the text in the steam menu during their tutorial intro.
its one of the textures from the engine content: http://puu.sh/t5uah/bc67de68f9.png
I always use engine content to test stuff ๐
If you run the tutorial intro, it has a moment where it tells you to use the steam menu buttons.
and then pops up a notification telling you to close the steam menu.
ok
well whats wrong about this is only the location of where its rendered
it looks super awesome, perfectly sharp (not affected by TAA)
but this is how it should be rendered: http://puu.sh/t5ueP/7cc2b2ec95.png
directly where the arrow is
yeah
And it'll stay there irrespective of where you move it around in actor?
Ah.
thats what you see in my gif
That's not a gif
xyz values?
the 3D coordinates provided by the game engine
And renders to the 3D coordinates provided by steam?
Maybe. That's my guess?
Anyway. Gonna play some QuiVR. Good bow action in that game.
hm yeah, it depends heavily on where I am in the world...
the when I move to the right of the level the stereo layer is way off to the right, when I move to the left its off to the left
so it only roughly works because my character starts at almost 0/0/0 in the world
@wicked oak did you see the same?
If I don't care about a game mode for now is there a good default one to do? I tried to package but it errored out since I didn't have one set.
it should use the default one then