Towards a Real Time Experience
When we took the decision of moving to the Unreal Engine instead of using Unity, one of the best aspects that we took advantage of was the Unreal Editor. Within it we could make the demo of the simulation without the need of programming code, so we could start seeing how our work would look since the beginning. During the simulation we could trigger events like the materials moving on the bucket of the MTL or the stones being carried by it. Now using code programmed in UnrealScript, we can start playing with the simulation and see results in real time, having full control on the simulation.
We still need to keep working in this direction, but this week we managed to see the berms forming around the MTL while it moves in real time. Even though in the demo we are using right now to test it we cannot see the MTL yet, the mechanics of the berms showing up will work once we have the 3D model of the MTL inside our application.
This week our team achieved the goal of completing a rough simulation for our soft presentations. The current completed simulation involves the MTL running through the slot. The MTL hits a mound of dirt, which is an indicator for where an operator can dig, and then a series of triggered events happen in which material builds up; demonstrating a proof of concept.
The full range of visuals involved are flying dust particles, berm buildup on the sides of the slot, 3D physics particles moving about and a 3D mesh that scales up on the Z axis in the bucket of the MTL. Our next step is to fully integrate the MTL as a dynamically controlled vehicle and to brainstorm ways to bring this simulation from a scripted series of events to a fully dynamic system.
Polishing Our Way to the Finish Line
We are coming to the end of our semester. During this time we will be focusing mostly on finishing any new features, documentation and ,of course, lots of polishing. Different members of the team have been working to get different aspects of the simulation they have been working on individually merged into one. Myself, I have been focusing more on polishing different art assets. One of thing I worked on earlier this week were animations for the MTL but now I have moved on to making new textures for the spillage simulation so that we can have a few different material simulations to keep from. Along with polishing already existing assets, I will be making new assets to help polish the simulation. What I am doing is making rocks with bones and animation to possibly replace the particle rocks in the current animation. These rocks will be spawned into the bucket when actively digging or gradating dirt. What we hope is that we can get the same look of the simulated rock but with less cost to the engine
Realism & Updating Documentation
To further the realism level of our product, I implemented more rigging elements for the MTL, specifically to move the “teeth” of the treads. This rig had to be simple for rapid animation purposes and importing into Unreal, but still be powerful enough to provide a realistic feel. With this new addition, I had to add in a segment about how I implemented it.
With this new rig, I had to make some new animations that contained all of the rig’s elements. These animations will help to serve as a proof of concept and a visual guide for the real-time implementation.
The Process of Implementation
To build an MTL is not an easy job. Although UDK shares the same coordinate system with 3D Max, it has some tiny differences. Last week, Sean and I worked on building a correct mesh of the MTL so that it could be correctly displayed and interact in our application.
At the very beginning, the MTL fell down from the several meters high and collided with the terrain in a very
strange way. We first thought it might be the problem with the collision boxes, but we could not worked it out according to this. Then, Sean suggested that it might be the problem with the coordinate system. We used the mesh from the web tutorial (which works fine in that tutorial) and it does work fine, so we concluded that it must be the coordinate problem.
Also, the tutorial said ways of solving the problem using Maya and 3DS Max, 3DS Max is harder. We tried many times. Lastly, we could make the MTL collide with the terrain correctly but only a problem which is there is a bias in the Z axis between the mesh and the collision body. After hours of checking the parameters in both Vehicle_MTL scripts and UDK editor, we solved this problem.
I have also been working on building a animation tree in UDK editor, the function of animtree is to play animations according to the logic set up by the designer. An animtree for a vehicle could help it respond and play the right animation according to the circumstances affecting the vehicle.