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.
I'd say our Environment Artist did a great job on our latest #DrivingSimulation scene, but we don't have one. It's all made by a very creative psychology researcher, with a whole lot of @UnrealMarket products.#UnrealEngine really makes our job fun and easy. pic.twitter.com/wpIpjyNZXf
— Bertrand Richard (@brifsttar) January 27, 2023
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.