What we've been up to, February 2023

I wanted ChatGPT to write the introduction to our usual quarterly report, because frankly I’m bad at it. But it’s “at capacity right now”, so I guess that will do?

OpenDRIVE

My OpenDRIVE plugin for Unreal Engine received some new features. Nothing exactly ground-breaking, but still welcome.

Most notable addition probably is the new Duplicate Actor Along Road Editor Utility, which I honestly don’t know how I didn’t think of making this sooner. I probably thought “I can already do that in RoadRunner”, sure; but isn’t doing that in Unreal much better? Yes it is.

Under the hood, I refactored the main bridge between the plugin and the amazing RoadManager from esmini, so that the base class now inherits from UObject (it was a component previously). This allows much more diverse and flexible usage of OpenDRIVE coordinates within Unreal. As a first example, the “Duplicate” feature mentioned above heavily relies on the new UObject class, and would have been much more complex to implement using previous component architecture.

And on a last note for that section, the Reimport feature is now also available via the context menu, which is much more practical than its previous (default) location. Implementing that also meant that I had to override a bunch of other methods, including the asset color. So begone default gray, and welcome… default blue!

NEWMOB

NEWMOB still is our main project at the moment. In late 2022 we finished our training scenario, which was our largest scenario yet, both in terms of map size and situations count.

But this was just the start, and we jumped right into the main experiment scenario. We’re using the same workflow as the first one, except now everyone has much more experience with it, meaning everything is going faster, smoother and overall better.

And we’re still trying a lot of new things, like starting from an underground parking or going through (smooth!) roundabouts. And many complex and unusual situations, which I can’t talk about much (don’t want to spoil the experiment), but I’ll happily share more about it once this is all over.

(And yes, the carousel seen in the screenshots is spinning and the horses are going up and down!)

MoniPost

Our other research project is MoniPost, but this one is on a much smaller scale with regard to driving simulation. The experiment is nearing its starting date, so pretty much everything is ready. We’re just polishing, I’m especially looking for improvements on the UX side (or “experimenter experience” in this case). Since the protocol is rather complex, the goal is to ensure that the interaction between the experimenter and the simulation is as smooth, reliable and stable as possible. So no shiny new things to show off, but our Experimenter Deck is really helping here.

Miscellaneous

Road Markings

Some people are good at shaders, and some people aren’t. Given the fact that I’m now proudly showing a simple procedural crosswalk material, I think it’s safe to say I’m in the latter category. But wait, there’s more: you can also generate a single zebra line of any size and orientation, isn’t that wonderful? Because if you’re a road marking nerd like some, you’ll be glad to know that the “Instruction Interministérielle sur la Signalisation Routière”, volume 7, article 117-2 and 114-2 include the detailed specification of hatched marking. Isn’t that wonderful?

I should mention that my measly materials were built on top of the Procedural Road Markings pack, which is very much awesome.

Traffic Spawner

In unrelated news (this is the misc section after all), we have a brand new Traffic Spawner Blueprint. In terms of features, there’s not much new: it stills allows the scenario designer to have cars spawned at given locations when the ego-vehicle reaches certain points in the scenario. But it’s now much easier to use and to debug, so the overall workflow is much cleaner.

Bugs

Sometimes I fix bugs and add features, and sometimes I just don’t. So today I’ll share a few (third party) bugs that bothered us quite a bit, and that might help other encountering the same issues. All bugs have been reported to their respective developers, and will hopefully get fixed soon.

The first one is an Unreal Engine bug, which we’ve been tracking for well over 6 months now. My colleague recently managed to reproduce it (it wasn’t easy), so here’s the rundown. If you have a component that has an Instanced UPROPERTY, and that component is used in a Blueprint actor (as non-root); all edited instances of that UPROPERTY in the currently loaded world will get wiped if the Blueprint actor fails to compile at any point.

The bug can be reproduced on 4.27 and 5.1 (I didn’t test other versions), and can be witnessed on Asset User Data, which is one of the few native Instanced properties that can be found on all components. Current workaround: don’t edit Instanced UPROPERTY on actor instance, only edit on archetype.

Moving to RoadRunner: the r2022b release included a nice new Traffic Island Tool (link behind login, because MathWorks 🙃). But those fancy traffic islands aren’t exported in neither FBX nor Datasmith, so let’s just say they’re useless at the moment.

Another nastier bug in RoadRunner is some weird collision on the ground mesh. I don’t really know what causes this, but in all of our road networks, we sometimes have ground collision “overflowing” into the road, meaning cars will hit an invisible “bump” when driving. I think I first reported this bug (with demo) in the r2021 cycle, so I’m not confident it’s going to get fixed anytime soon. Current workaround: disable the Vehicle Collision Response on the ground static mesh (and don’t drive outside of the road!).

Marketplace

French bureaucracy isn’t just a myth, so we didn’t buy anything new from the Marketplace in the past 3 months. But let not that stop us from highlighting a few things from it.

Did you know that the Twinmotion Content for Unreal Engine Plugin (Beta 4) comes with 35GB worth of free assets? I didn’t. But now I have 258 trees, 212 urban props, 120 decals, a gazillion materials and much more. So go ahead and grab it.

Meik.W has released a new garage, and given the already dozen buildings we bought from them, I’m guessing it’s again well worth the money.

Do we need procedural-and-insanely-good-looking ivy for our buildings? Probably not. But Crazy Ivy exists, and it looks so fine we might have to buy it anyway.

Written on February 1, 2023