Mapping Unreal Engine Content on a 3D Printed Model

Hi,

It seems to be working on my end (after I changed the IP address).

Is it possible something is wrong with your project? Perhaps try a basic UE project from a template, package it and test the config file with it?

Let me know if I can help any further.
Mitja

Hi Mitja,

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 in advance,

Nicolas

Hello Nicolas,

All I did was open your cfg file and change the IP address to the IP address of my computer.

so this line:
[cluster_node] id="NQPCF0012A" addr="10.10.3.114" window="window_PSAH" master="true" sound="true"

was changed to:
[cluster_node] id="NQPCF0012A" addr="192.168.178.11" window="window_PSAH" master="true" sound="true"

Just to confirm:

  • which Unreal Engine version are you using? I am testing with 4.25.
  • did you try and package a basic project, for example First Person Template, with it? And does the issue occur?
  • which UE version did you select in LightAct UnrealLink window?
  • does the issue occur with one of ExampleConfig cfg files? You can find them if you open nDisplay template in Unreal Engine editor.

Thanks!
Mitja

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 :confused:

Nicolas

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?


It’s just projecting a projector up and down from a single PC.

No need to apologize, @Atsushi . It’s us who should be apologizing because we didn’t create any documention for this feature yet :slight_smile: (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

  1. Make sure you’ve got a 3D model that exactly matches the physical object.
  2. Import this 3D model into UE4 and LightAct. The location, rotation and scale needs to match in both applications.
  3. In LightAct, create the projectors and map them to correct physical outputs.
  4. 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.
  5. In LightAct, create nDisplay config file.
  6. In UE4, create your content and package the game.
  7. Launch nDisplay Listener on all computers and, using nDisplay Launcher, launch the project using nDisplay config file you created in step 5.

I hope this helps!
M

Hi Mitja,

I’m questioning your response to @Atsushi.

  • 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

Thanks!
Your help is very appreciated here!

Nicolas

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.

Best regards,
M

I have the same question as @NQ_3D

How do I set up the camera on Ue4?

Do you want to check Lightact’s camera coordinates?

The final video output is just the output from ue4’s ndisplay, right?

I’m hoping to have a sample project and tutorial ready to go. That would help me a lot too.

1 Like

Just attach what i have from the Unreal nDisplayLauncher :

and what I expect to :

Hello,

This is a quick explainer video, but I’ll try to send you a sample LightAct & a matching Unreal project for you to use as a baseline.

@Atsushi, you don’t need to create any Unreal cameras, nDisplay config file makes sure they are created automatically. And yes, the final output is straight from Unreal Engine. You can actually close LightAct application after nDisplay is running.

Have a quick look at the video and let me know if you have any questions. @NQ_3D, if you can, I’m happy to look at your LightAct project and, if possible, Unreal as well.

Thanks!
M

Hi Mitja thanks for the explanation,
unfortunately that doesn’t resolve my issue. :frowning:

Please find the files in the link below:
https://newquest.fromsmash.com/Mitja-UELink

More over i have a question with scale. Because When you import in Unreal you have some information as scale model or not, and in WorldSetting you have some value to tansform unit world to meter so I have some trouble to understand the communication between LightAct 3D space and UE 3D space.

Thanks to you !

Hello Nicolas,

Thank you for sharing!

I think there is a problem with scale because the model in UE is much to small. Also, in LightAct the coordinates of the 3D model are not 0 and in UE there are.

Here’s what I did (I guess it’s a useful procedure so I’m describing it in full).

In LightAct, I moved the model to 0,0,0 and I inserted a box primitive and put it next to the model.
image

Projector output looks like this:

Then I inserted a cube primitive in Unreal and placed it at the same position adjusted for different coordinate system.

You can already see that the scale of the city model is wrong.

If I package the project and run it through nDisplay Launcher I get the correct perspective for the box


If you compare this image with the image of projector output from LightAct, you will see that the perspectives for the box match.

Then, I went back to UE Editor and set the scale of the 3D model to 10 and re-packaged it.


This is the output.

Now if we compare the output from nDisplay with the output from LightAct you see that there is a match.
ezgif.com-gif-maker

Let me know if this helps.
Mitja

That’s work, thanks a lot Mitja!
The cube provides me the information I need to make it scale correctly.

1 Like

I tried a simple model.
I was able to get the nDisplay from unrealLink to run well, too.
I found the tutorial video helpful.
I was able to get a general understanding of the flow of UnrealLink.

All I needed was an object in UE4 and I was good to go.
For object scaling, if I set UE4 to 1, I set it to 0.01 in Lightact.

I also tried UnrealLink with two projectors, 3Dcal and Autoblend.
I also roughly understood this setup process.
It’s still not a perfect fit, though.

It’s going to open up a lot of possibilities for me to try different things.

Thanks @NQ_3D,@meetya


2 Likes

Looks awesome, @Atsushi ! :partying_face: :+1: :muscle:

In general, the precision of projection mapping in UE should be the same as in LightAct, so your first task is to make projection mapping from LightAct as precise as possible. The key number to watch here is Reprojection error, which, ideally, should be kept below 1px or at least below 2px.

Good job, guys!
M

Hi again Mitja,
Love your set up @Atsushi, that’s Look pretty good !
On my side aimation is in progress but how to keep the camera static with nDisplay ? when i put my mouse in the projector the view is moving.

On the Unreal .cfg I can comment the mouse move axis but that line of code doesn’t appear in the UnrealLink .cfg file provided by LightAct :sweat_smile:

And i can’t see how to in UE4 because no camera is set in :slight_smile:

Nicolas

Hello Nicolas,

When creating our Unreal Engine Projection Mapping Starter Pack I was actually wondering about the same thing. I didn’t find an exact answer and I plan to ask on Unreal Developer Network.

In any case, this seems to be more of an Unreal Engine question, so I would suggest you ask on their support forums (and let me know afterwards :blush: )

Thanks!
M

1 Like

Sorry, didn’t read this thoroughly before: so you are saying that you found a way how to disable mouse input in the .cfg file? Can you share that? :slight_smile:

As an intermediate solution: if you know how, you can modify the .cfg file generated by LightAct any way you want.

on the nDisplay Template.cfg file, you have some line of code to activate the mouse detection but not in the cfg provided by lightact, that was my primary plan but I haven’t a solution for the moment.
I will share if I find a way!