The Making of the McLaren Car Configurator - Live from Epic HQ

WHAT
After demonstrating the McLaren Car Configurator live at GDC and showing it off on the livestream, we are excited to explore the creation of this tool with two of its developers. and will be joining us to discuss how the iPad companion app communicates with the PC and also how Blueprints were used in the making of the Configurator. There is a lot to learn, so be sure to not miss it!

WHEN
Thursday, May 5th @ 2:00PM ET - Countdown]

WHERE

WHO

Got questions? Feel free to ask here or during the stream!

's Powerpoint: https://forums.unrealengine.com/showthread.php?109912

Please explain how did you implement remote control via tablet. What protocol, how does it work under the hood. Is it only ios/android part to be programmed, or UE4 also needs some custom work ?

thx

1 Like

No product placement :stuck_out_tongue: We partnered with the team at McLaren to help solve some Enterprise related challenges that help us serve the community of those working in real-time spaces. This is a look at our approach to the configurator :slight_smile:

I believe that is going to cover how he did this!

Will we receive project files like we did in the pixellated 2D sidescroller with ?
This tutorial is solely a programming tutorial and does not include the material setup, does it?

The project we’ll be showing isn’t something that will be shared, but new engine improvements made for it will be included in 4.12. We’ll be doing a high-level overview, but not a “how-to” style tutorial.

will the McLaren be a future prize in one of the Game Jams? hint :wink:

thanks for the update. i did plan to follow along, guess i will watch and ask should the need arise

This ^

Remote control via tablet and shaders are highly interesting :slight_smile:

Looks very interesting…

Just in case and aren’t touching on this, but: Can we use this new technique to control a GearVR app from a tablet (by a second person ofc, for example to guide someone through ArchViz without a controller, or even make changes in the world they experience there)?

Can you go over the scene stats and performance? I wonder how UE would handle dense high polygon count (over 5 million polygons) scenes with changeable parts (so you can’t bake a single model).

Also, is there any custom occlusion culling going on the car? If not, is there anything else helping with GPU performance?

Hey , yes, in principle this is possible. If your app is built on top of UE4, it will be very easy, because all the needed pieces are already there. Your app doesn’t need to use Engine - you can build a standalone Slate application that is built on top of Core, CoreUObject, Messaging, and Slate. You can look at /Engine/Programs/UnrealFrontend and /Engine/Programs/UnrealLaunchDaemon to see how we have done this in the past.

If your application is not built on top of UE4, then things get more complicated. The limiting factor right now is that we have only one actual implementation of a message transport (the UdpMessaging plug-in), and it uses a rather complicated (and currently not very efficient) protocol. You would have to reimplement this protocol in your application in order to be able to exchange messages with the GearVR app.

In the second half of this year I hope to find the time to make the UDP based transport more robust and efficient, and I also want to implement a second transport using HTTP and JSON. The latter will make it much easier to interface with non-UE4 applications. In the meantime, I recommend that you build a standalone Slate application with plug-in support. We do not currently have any tutorials that describe exactly how to do that - the initialization process in particular is somewhat cumbersome - but if you can’t figure it out based on the code that’s in UE4 then you can always post on AnswerHub and I will push you in the right direction.

When I’m done with the current Media Framework upgrades, I’m planning to write a tutorial about the design and implementation of the Messaging system in UE4, as well as standalone Slate applications.

I’m looking forward to seeing your app in action! :slight_smile:

@

Seems the Car parts are all in one BP,

My question is:
Is it a Skeleton mesh include all car parts or separate static mesh components in one BP, which is prefer to do exploding the parts?
If it used a skeleton mesh, is it use skin with 100% bone weight or hierarchy, in high density triangles case which is better for performance?
Other one, separate static mesh components in one BP VS separate static mesh actors which is better for performance?

Thanks!

@gmpreussner Thanks! You already mentioned that on the Stream, but samples are always nice. My problem until now was that I didn’t know what to search the docs for, but with the keyword “Message Bus” this turned out to be a lot less troublesome than expected.
It’d probably make sense to have both apps built on the engine, especially for ArchViz where a simplified model could be used as overview map; but stripping it down to just a floor plan for example could just aswell use a simple Android app with the appropriate UdpTransport.
I’ll see how far I can get this, and if necessary I’ll drop you a PM or just throw it on AnswerHub so can follow along.

For anyone interrested in how the Message Bus works, I wrote up some brief instructions on how to hook into the bus and get messages flowing:

It doesn’t show the whole range of possibilities provided by the Message Bus, but it contains the vital parts to get you going. With that (and the docs), doing a simple server discovery and initiate a one-to-one session shouldn’t be too hard. Depending on how much free time I have this weekend, I might extend the post by the one-to-one messaging part.

Are you going to share the paint shader? Or atleast give us some insight on how it was achieved?

Hi ,
Yes, we will be releasing our automotive shaders in the near future. The work involved is cleaning up the materials. standardizing the parameters and integrating the relevant engine features to 4.12 release. We are nearly there, though!
I also thought I’d mention that we have a second GDC car demo configurator livestream planned, which will go into the new dual normal clear coat shading model (as used for car paint and carbon fiber) and the new reflection accuracy improvements.

Hang on tight and thanks for speaking up.
François

Lovely, can’t wait for it. Wouldn’t expect any less from you awesome fellows.

Hi Francois,

thanks for sharing. We ended up with a very similar concept for our iPad integration for our configurator apps. We decided for the websocket based WAMP message protocol (http://wamp-proto.org/) and used crossbar.io as an external message broker. You wrote that you might add an http and json based implementation to the UDP Message, you should consider this. The benefit is that there are several libraries for that protocol already. Especially the javascript and python libraries are very useful. If you want to connect to maya or 3dsmax, everything is already there. We integrated WAMP into Unreal using the WAMP C++ Autobahn reference library.
We already connected Unreal to our logic database this way and we can build dynamic user interfaces for the configuration selection with hundreds of configuration options per car from the database now.

Cheers,