[WIP]Editing while In VR

Just a quick video of the plugin i’ve been working on for the past week.
The plugin allows for modifying, Copying and deletion of actors while in VR preview.
And the changes are then applied to the Editor world.

Just being able to tweak the light colors alone while in VR is a really cool feature.
Ive still got a few more menus to wire up so I probably wont have a chance to release this till after Christmas.

Opamp.

Great idea! Looking forward to the plugin!

It looks like a decent proof of concept! I’m curious as to how you were able to get in-game values to carry over to the editor after you finish editing in VR. I’m also curious about how you’d switch between “VR Editor” mode and “VR Game mode”.

I think the UI’s will need a lot of work though. As they are in this plugin, they appear pretty rough. I think what would work great is hand controllers. You could scale or rotate objects by moving your hands around, but… I wonder how fast people would get physically tired from constantly waving their hands around in VR while building a scene?

I’m also curious about how editing blueprints, materials, and other systems would work in VR.

Great proof of concept Opamp77! Slayemin’s questions are on point, perhaps having the input open to customization would allow for the most productive UI to emerge from experimentation. Either way looking forward to trying things out:)

This would be extremely helpful for arch viz work. I’d love to try this out as soon as it is available :slight_smile:

Great work! Having the features of blueprints and the rest of the editor would be amazing. Standing inside Persona, Cascade preview sitting on your desk and destructibles up close. Mm!

Is the plugin HMD agnostic?

@Slayemin

Getting the values to carry over isnt too hard you’ll be able to check out the code on github when im done.

As far as switching is concerned its just a case of switching gamemodes.

Thats a bit beyond the scope of what I am looking to do. I wanted something for basic level blocking and design.

@Getnamo

Thats actually what im aiming for. The plugin provides a bunch of blueprint nodes for doing thing that will be reflected in the editor world so people can come up with there own implimentations. The Idea being is that you have custom gamemodes/Pawns that you switch to for VR Editing. Im including my rarther quickly put together XBox controller implimentation so people have at least something to be working with. If people want to push there own interfaces via github that would be great.

@Fantasifall

Yep should work with all HMD’s that support VR preview.

Well I’ve finally got beta version’s of the editor plugin for 4.9 and 4.10 up on github if anybody wants to have a play.

64 bit binaries are included for those of you that arent building the engine from source.

UPDATE:
Please see post,
#post455566]([WIP]Editing while In VR - VR and AR Development - Unreal Engine Forums)

Download the Zip file and extract the “BlockingVR” folder to your “Engine/Plugins/” folder of your editor install.

Activate the plugin which is under the subsection “Virtual-Reality”. Change your Gamemode to BVRExampleGameMode and start VR Preview.

IMPORTANT!
The plugin currently doesnt support level streaming or world composition. If you are using either you will need to open the sublevel map file you wish to work on directly before editing or you will have unexpected behavior. You have been warned!

The BVRExamplePawn is setup to use an XBox Controller.

Left and Right Stick : Pawn movement when no menu’s are visable.

Left Stick L/R : With Menus Change highlighted menu items value.

Right Stick U/D : Changes V component value of HSV when using color picker.

A: Select Actor. If Primatives or Lights panel is visable spawn the primative or light at cursors current location.

B: Cancel Selected Actor;

Left/Right D-Pad: With an Actor selected scrolls though possible menus for said actor.
: With no Actor selected scrolls through spawn menus.

Up/Down D-Pad: With a menu visible highlights different menu items.

Right Trigger: Pickup/Drop Actor Cursor Is Currently on

Y: Delete actor cursor is currently on.

Left Shoulder Button: Attempts to copy Actor cursor is currently on.

Right Shoulder Button: Pastes the copied actor;

Back Button: Toggles visability of all light Actor debug meshes.

Start Button: Toggles visability of all Light Actor Icons.


It’s far from complete but the basic functionality is there. Unfortunately I seem to have hit a roadblock as far as using BSP’s in PIE mode is concerned so I need to dig deeper into the engine code to see if this is possible without modifying the engine.
Which is rarther annoying as BSP blocking and basic lighting where the two things I wanted to focus on in this plugin.

A few notes on limitations.

Lights:

Copying/Pasting and modifying Lightings will also copy most of the basic light properties over.
Newly spawned lights will default to Stationary mobility in the editor.

Actors:

Copying/Pasting and modifying actors will only have there basic transforms effected.
Physics/Destructible/Instanced actors are untested.

However StaticMeshActors will have there basic properties copied over.

To interact with an actor it has to have some form of collision enable on the visability channel.


Using the API to create your own user interface.

In the BVRExamplePawn A “BVRManager” is spawned at beginplay and all API calls are done though this manager;
All changes are deferred in the editor until ApplyDeferredChanges() is called at EndPlay().

Below is a list of blueprint nodes most of which where used in BVRExamplePawn (Which can be found in “BlockingVR Content/Example”).

dc32b774a23693735163ae587a7ebd4e19b9a639.jpeg
Adds an Actor. Note: You should use AddPIELight() for lights however.

8d45805f1c635cfd22653afe0a6afe916bedad8a.jpeg
Adds A light at the specific location.

acf5670e5e3f6fd8b8ea0e4b0e5aa59cfd554bcb.jpeg
Apply’s the changes made to the editor world;

11358e373af0627bc8aa8d76a7c9200728deed81.jpeg
Deletes an Actor.

UE4Editor_2016_01_04_19_37_19_571.jpg
Set Location of an actor/light with the option to Snap to a given snap size.

UE4Editor_2016_01_04_19_42_42_470.jpg
Set actor rotation.

UE4Editor_2016_01_04_19_43_02_290.jpg
Set actor scale.

5653003e661384d130774cf8bfaea38bfad791ff.jpeg
Gets the current radius of a pointlight.(required as this variable isnt availible directly via blueprint)

7140855b1ac3e731d1969dd5971a5f3a85de6749.jpeg
Gets the current radius of a spotlight.(required as this variable isnt availible directly via blueprint)

29a4ce164837f8c06ba937f9e7dc1eec7709b11c.jpeg
Hides the debug meshes for all light actors in the level.

adb4b27e6e67a1d465b93d4e9c8b370377bccf14.jpeg
Hides the Icons for all light actors.

11bd47ac3e1c1f1a30050dd30db29d3812d445df.jpeg
Copies and pastes an actor/light to the specified location.

279c7edf61ba9f12dcd45e638e5e155bdfa34f94.jpeg
Sets the StaticMesh of a StaticMeshComponent.

eebf80aa56157d31edfbf90fcf8a3462164aac37.jpeg
Sets the linear color of a light actor.

04510ed1f414451040f716551c5b9ec36c6b8f1b.jpeg
Set the debug mesh visability of a light actor.

f034c84723e79f3df52bf00e32fbadb1079e202c.jpeg
Set lights dynamic shadows.

0384c612aca7f372b6531540744a253af7e4cd82.jpeg
Sets icon visability for a light actor.

b974757af9bdb72a21947eb2114443e0d9041e8d.jpeg
Set square falloff for light actor.

e62e7368ca675d0cdfbb561bde1dadae07331bda.jpeg
Set Intensity of light actor.

UE4Editor_2016_01_04_19_40_22_519.jpg
Set lights static shadows.

d1c811e9e7fb81e420afbbf7a1838e174eeaf3f1.jpeg
Set light translucent lighting.

2467f30a701216f18585890a9e0c0aa71f605acd.jpeg
Set point light actors radius.

058b8d2e19d3b4944f2ae2559499cf4ec45f1315.jpeg
Set spotlight radius.

232b1f64b496ab8bd98a134faff4cc4e0c7f5f19.jpeg
Set spotlight inner cone angle.

03d69638e5df18fb64a027870a360b15626b6a5f.jpeg
Set spotlight outer cone angle.

Unfinished/Experimental

6e96b36293cc4bf8d8dff7d0a0b5e35087abaf26.jpeg
tries to creates a asset thunbnail texture for the given actor.
returns null if failed. (Unfinished currently only works if asset package has been saved).

UE4Editor_2016_01_04_19_33_06_198.jpg
As above.

811967a08bcef0ffc84093cf23cceea5216a2c8c.jpeg
As above.

9179eebd2df0e8ebf27584dab570ddea59c3ce73.jpeg
As Above.

dce112c96d1d84a47a5b34148b62ee629e43dd69.jpeg
As above.

TODO:

  • Add ParticleActor Icons.
  • Get BSP’s working.
  • Impliment Actor Pallete for spawning user selected actors.
  • Possible look into using unreals reflection system for interation over all uproperties on an actor when copying/updating.

Suggestions, Opinions and pull requests gratefully accepted.

Opamp.

Very cool plugin, Opamp! Nice work. :slight_smile:

–Mike

Thanks Mike, Im glad you like it.

I may have to pick your brains regarding BSP’s in PIE once ive had a look into it.
I’m assuming that for performance reasons the ability to modify them in game was disabled…

This looks really useful! Thank you for taking the time to make this and sharing it!

Your welcome. :slight_smile:

It’s coming along quite nicely and Ive got a big commit to push shortly which is mostly a code cleanup and a few more feature’s.
However I still have’nt gotten round to looking at the BSP code as i’m saving that fight till last.

I’ll probably put up a new video later today.

Just a quick video of me having fun with Beta2 which I have yet to upload.

Well Beta2 of BlockingVR is now availible with a few changes.

I previously stated that the binaries within the Github zip where compatible with UE4 binary release of the engine. Totally forgetting about the necessary changes you need to make to version.h for editor plugin’s to work with UE4’s offical build’s.

Ive now corrected this and the binary versions will be a seperate download’s available here:

engine version 4.9.2
engine version 4.10.2

Documentation is now available here.

Opamp

You are doing to the Lord’s Work, please don’t stop.

Wow! This is what we will all be doing in a year or two. When that happens and I get deja-vu, I’ll remember that it was Opamp77, who got us started. Keep plugin’ with yer, um. . . plug-in.
Good luck.

Palmer be with you my child. ]-)

Thanks.

This is awesome! Thank you so much.
I cant wait to try this with the Vive.

I will try to allocate some time this week and make it compatible for the Vive, I’ll upload the project if it turns out to be user friendly.

Thanks for the great work Opamp!

I look forward to seeing what you come up with. ]-)