Hello,
I’m pretty new in mapping and I’m trying to 3D map in realtime UE4 content to a 3D printed Architectural model.
For now, I’m ok to connect UE4 and Light Act, calibrate the projector, and project an image texture on.
But now I would project the UE4 content in real-time and I’m stuck.
I understand that LightAct uses the UV Map of the object to project on the printed model, but I’m not sure how and what to project from UE4, Did I have to project the view from the camera set at the same position or something else ?
I tried to project directly the UE4 view from a camera, setting up approximately at the same position from the LightAct Projector, but the view does not map correctly.
(I made it by replacing the Input node by the SpoutListener node in the projector layout)
The best & the easiest way would actually be to use nDisplay cameras as described in nDisplay configuration file generated by LightAct. This process is presented in this Feature Preview video
But please note this feature will be available only in LightAct 3.6.0. On the upside, the official release should come out next week. If that’s not soon enough, please let me know so we can send you a beta version.
I’ll try to send the beta to you either later today or tomorrow. In the meantime, please make sure you understand how nDisplay works (if you don’t already).
In short:
you design your UE4 project as you normally would. You don’t need to insert any projector matched cameras or Scene Captures.
use LightAct to calibrate your projectors (by importing the same 3D model of your object etc)
create nDisplay configuration file from within LightAct
launch your packaged game with nDisplay Launcher (part of UE4) and all the UE4 cameras, which match the projectors, are created based on the nDisplay.
I hope this makes it clearer, but if you have any other questions let me know.
I’ll post the link to the beta here when it becomes available.
We also created an nDisplaySample project which should allow you to export nDisplay configuration files for projection mapping on a simple cube. nDisplaySample.la (41.2 KB)
Here, you can set up everything LightAct needs in order to replicate projection mapping properties in nDisplay.
UE version tells UE which UE version nDisplay was made for. I found that it’s easier to write 4.23 even if you are using newer versions, because for some reason, nDisplay Launcher always wants to convert your configuration file if you enter 4.25.
File name: the name of the .cfg nDisplay configuration file.
MPCDI projection policy: determines if you want to use MPCDI or Simple projection policy. Leave this checked
Overwrite: if unchecked it will create a new nDisplay file everytime you click on Create nDisplay config file and increment the filename.
In the Blend Masks section you tell LightAct which Texture variable should serve as a blend mask for each projector (more about this below).
For every project included in nDisplay you need to create a Texture variable. Then, in projector’s layout, you need to connect AutoBlend’s blend mask to it.
Saving & Using the files
Once you click on Create nDisplay config file button in the UnrealLink window, LightAct will create nDisplay folder in the project folder where all of the required files are saved.
If you are running your project from one server, you need to point nDisplay Launcher to this configuration file and you should be set. If you are running a multi-server project, you need to copy all of the files to the exact same path on the other computers. More detailed tutorials are available on Unreal’s documentation pages.
I create my .cfg from LightAct and Launch nDisplayListener.exe on the project folder but when i try to launch from nDisplayLauncher after set it with the .cfg, nothing happened.
I tried with UE4.25, Launcher OutputLog report “Unknown Command”, with 4.23 no problem is shown in Log but nothing on the projector … Just one black after pink flash and the projector keep to project my desktop.
hmm, it seems to be working on my end. Can you please share your nDisplay config file together with all pfm and png files? If possible, just use a wetransfer or something similar.
with default file problems occurs too,
So can you explain wich IP you change ?
You go on the .cfg and change to local 127.0.0.1 or have you done something else?
Looks like on local I can run a windows on 1 screen.
Thks for the fast answer,
For the .cfg that’s the way I’m trying
I tried with 4.23 cause of the nDisplay convert the .cfg file, but first, my project is on 4.25.
I tried the nDisplay template and have some errors, I’m changing the .cfg template file to make it works approximately
I didn’t try another basic project
In Unreal Link, I selected the 4.23 version, due to your primary advice.
Errors occur, but I will try with 4.25 this afternoon.
I will try the config with the local address on.
thanks for the support,
edit:
Actually, I succeed to compile and obtain something but not what I want to.
It looks like if you accept nDisplayLauncher to “transform” the .cfg to the current version error occurred and the app doesn’t launch, so just pass the dialog box and keep the .cfg.
Moreover, I had to change the IP to localhost 127.0.0.1 to make it work.
But the position is not good and I don’t see my 3d Object on my Physical Model
Sorry to interrupt you.
I was able to use nDisplay with UE4.25 in the .cfg I created from Unreallink.
However, I don’t understand how to make use of UnrealLink after all.
Do you mean that it works as a mask for the screen output from UE4?
No need to apologize, @Atsushi . It’s us who should be apologizing because we didn’t create any documention for this feature yet (it’s coming soon though).
Anyway, UnrealLink allows you to create nDisplay configuration files from inside LightAct in order to replicate projection mapping setup in Unreal’s nDisplay .
This process is meant for projects where you’ve got a 3D model in Unreal Engine and an exactly the same physical mode. One example of such project would be this one. If you’d like to project content from UE4 onto the physical model, you need to create virtual cameras in Unreal Engine that exactly match the projectors. Once you have that, if what the UE4 camera sees is directly projected through the projectors you will get a perfect projection mapping.
So what LightAct does for you is create nDisplay configuration files which create nDisplay/UE4 cameras which exactly match the projectors. It also creates blend masks, so that the projectors are blended correctly.
Setup
Make sure you’ve got a 3D model that exactly matches the physical object.
Import this 3D model into UE4 and LightAct. The location, rotation and scale needs to match in both applications.
In LightAct, create the projectors and map them to correct physical outputs.
In LightAct, calibrate the projectors using either 3DCal manual method or CamCal automatic method. At this point, you should see a perfectly mapped content coming straight from LightAct.
In LightAct, create nDisplay config file.
In UE4, create your content and package the game.
Launch nDisplay Listener on all computers and, using nDisplay Launcher, launch the project using nDisplay config file you created in step 5.
Currently, I’m using a .fbx in UE4 and an obj in Light act, is it possible that make some problems?
When you say that location rotation and scale have to match, value has to be the same or have to match between the 2 scenes (don’t know if I’m very clear).
I’m ok to set up from 1. to 7. just have to look for the 3D in point 2.
Currently, my camera is not set up correctly from the nDisplay when i Launch but I don’t know how to debug and make it work properly
This shouldn’t be a problem by itself, but you would need to make sure the objects are positioned (locations, rotations & scale) exactly the same in both applications (the numbers should match). The easiest is to just set locations and rotations to 0 in both apps and to make sure the scales are the same.
I’ll try to create a tutorial and UE4 sample project tomorrow.