Road-bumps & Documentation
Road-bumps are inevitable, and the best way to get over them is to accept them and search for alternative methods or fixes. This week, we’ve hit one in which we have a very nice simulation, but the particles don’t seem to be able to stick to each other and cause a buildup like you would see with a mound of sand or gravel. Instead, they roll over each other like slow moving marbles. Sam and I immediately switched gears to attempt to find a solution.
Sam moved into developing an alternative to the buildup of the particles, but at the same time still uses the system I’ve developed to some degree; this is explained in further detail in her article. While Sam swithed gears into simulation tests, I swapped gears and moved into documentation on the current setup of the simulation demo. It covers the Kismet setup, along with any details on how we managed to simulate the dirt being pushed by the MTL. This will be available to the Entertainment Technology Center for any future projects, as well as to Caterpillar.
MTL in Unreal
This week I imported the Multi-Terrain Loader into the Unreal Development Kit. It was slated to be imported last week, but there were a few technical issues that had to be overcome. The MTL is made up of many parts and each piece originally had it’s own texture sheet, to allow for more realism in the textures. However, Unreal has a limit of about 10 materials per mesh, so I had to re-optimize the MTL to use 6 sheets instead of 12. With the new sheets, it would have to be re-textured to fit the new texture coordinates. Sam had already textured the MTL, so I used 3D Studio Max’s Render to Texture system to re-bake the created textures onto the new UV layouts.
Towards a Game-Like Simulation
Our main goal is exploring what game engines can offer to represent real life situations, in particular real life terrains where bulldozers operate. For that goal we are focusing our efforts in using one of the most popular game engines on the market, Unreal Engine 3. As it is one of the newest engines in the market, it offers a level of realism that allows operators to know what is exactly happening in the real world by seeing what is happening on the screen of their computers, the virtual world.
Part of the most popular game made with Unreal Engine, Unreal Tournament, apart from guns and shooting, are vehicles. Driving vehicles in the game is an essential part of it that has become more and more popular in every new version of Unreal Tournament. And now that we are using Unreal Engine, we can use the functionality that it offers to control vehicles. Many people are used to playing simulators and games, such as Unreal Tournament, where the players controls a complex machine in an easy way because of the advantages that video games and game controllers offer. In our simulation, controlling a Multi Terrain Loader will be as easy as driving a car with built-in rockets in Unreal Tournament.
While we have been working to getting the simulation looking more polished, we have been faced with an assortment of problems. The main problem is getting the materials that are being simulated with particles to pile properly in UDK. We have been looking into a few different ways to fix this. One of the solutions I came up with is to use larger static meshes and planes with opacity alongside the particles. How this would work is that as the MTL is moving along, either grading the ground or pushing materials, a mesh would spawn along with it based on the placement of a bone. The particles that Matt has made would spawn with them and interact with the berm mesh. This would enable us to have the nice interactive look of the particles while not having to fight the engine to achieve the volume we want.
Another thing I have been working on is building assets and a way to set them up with the MTL to better the appearance of the simulation. I am doing this by constructing 3d meshes that will go into the bucket of the MLT when it collides with the ground or piles of materials. Since theses will be larger meshes that won’t be able to animate like the particles we have came up with an interesting way to still have the look of material flowing up into the bucket and out with animated textures. Not only will the load in the bucket have animated textures but we will go a step further by adding planes to the bucket with opacity on them and animated checks. There are three different planes that will be placed on the bucket. One over the front of the bucket and two to the sides. What this will do will help simulate a lite, looser looking soil and will also help the larger rock particles seem to move more naturally.
The latest thing I have started in is making static meshes that will be used to create collision triggers for picking up loads with the bucket. What we hope to do with these meshes is as they are triggered by the collision of the bucket, the mesh will either play an animation or swap with another mesh showing the change in the pile.
Finishing the Demo
My Unrealscript demo was finished by the weekend. It contains a demo map, which is done by the UDK Editor. I built the environment for this map, replaced “UTDeathMatch” with “GameInfo” for a non-fighting environment. I also built a custom class to display and test, the class contains a pawn object that could post the message on the screen. Also, I tested the way of calling Unreal run-time console commands through Unreal scripts. For example, toggle displaying octree in the map, etc.
Now, this demo contains the following features:
1 – Individual running environment: the demo could be packed by Unreal FrontEnd tool and be published.
2 – Browsing feature: the game info mode allows the end user to explore the map/scene in free flying mode, the free controlling camera could go everywhere but also block the walls and obstacles.
3 – This framework is a base for adding more features in the future. Unrea lScript is a programming language that is highly modular. Every feature is fully individual and could be easily used by other modules and other modules could be added later.
I have also started doing some study of vehicle building. I did the documentation for the artist to correctly model and rigging vehicles in 3D applications due to the different coordinate system in UDK.
Because of getting sick this week, my progress didn’t progress as ideal as hoped. Hope everything will be better next week.