TurboSquid artist Denys Almaral has always had the ability to bring humor and personality to his 3D models. Recently, he published a hilarious new caricature of US Presidential Candidate Donald Trump. What intrigued us most was that Denys had not only created an amazing model, but he’d spent the time getting it to work within the Unreal Engine so that game and experience creators could have some real-time fun with the presumptive nominee in their own work.
We decided it was time to get some technical insights from Denys on his real-time conversion experiences.
What’s been your previous experience with real-time game engines like Unreal and Unity?
Almost none. I had exposure to both game programming and working directly with DirectX a long time ago, but it wasn’t until the launch of Unreal Engine 4 that I started taking it seriously. I started watching Youtube tutorial videos and making some tests within the UE4 engine. I quickly fell in love with UE4 Blueprint scripting and all the other amazing in-engine tools that Epic Games provides to developers. Their general philosophy just fits well with the way I think.
What did you find to be the biggest challenge in getting your Donald Trump model to work inside of a game engine?
While preparing and importing simple objects as .FBX files to UE4 or Unity is a piece of cake, trying to take a complex character like my Donald Trump model and making it work well was quite a good challenge.
With regards to UE4, I quickly had to give up the idea of trying to generate the standard skeleton structure (used in the UE4 engine as default) in the demos and templates inside of 3ds Max. Then I realized that I could use a simple Biped from 3ds Max. While it would be hard to retarget or use animation from UE4 samples, I didn’t care, since my idea was to import my own animation from 3ds Max. Learning to deal with animation blueprints is scary at first, but once you understand it, you fall in love with the number of possibilities, like the animation blend spaces.
Another important thing I learned with this model was what kinds of objects I could use effectively as bones and controls for rigging the character. 3ds Max bones, meshes, and dummy objects will work fine as bones… but UE4 doesn’t like Spline Shapes, so don’t use them for rigging controls, the root of the model, etc. That also goes for the ground root of your character; use a Dummy object instead of a Spline shape. And when it comes to the Root bone, use only ONE! It seems obvious, but when the problem comes up in UE4, the engine won’t give you any indication as to which bones are acting as multiple roots, and you’re forced to go back into 3ds Max to try and find them. And that is not fun, so be careful.
With Unity 5, I had almost no prior experience, so I decided to limit my objective and only make my Trump character work with the Humanoid system instead of Mecanim, which is way more complex. It worked, but it also proved to be more restrictive when it came to the skeleton structure I used.
Materials in Unity were also more difficult to build and control. Simply trying to make the Donald’s hair double sided was a real challenge because I don’t know shader programming, while doing the same on UE4 was a single checkbox. As you can probably tell, I like working in UE4 much more! 🙂
- Use only 2 Spine bones
- Disable the Pelvis Triangle on the Biped
- Enable the Neck Triangle on the Biped
- Use the Pelvis as the ROOT, and ignore the COM (Center of Mass) object
- Create a 3D project with character assets
- Import the FBX you generated of your character
- In the Inspector panel for your model, select Rig and choose Humanoid from the dropdown as the Animation Type, then hit Configure
- Inside the Project tab, go to the Standard Assets > Characters > ThirdPersonCharacter > Prefabs folder and select the ThirdPersonController and drag it into the scene
- Next drag your character model into the scene and align it to the controller model (which is named as “EthanAvatar” – though I’m not sure why).
- In the Hierarchy tab for the AIThirdPersonController, delete all of the contents including EthanBody, EthanGlasses and EthanSkeleton.
Still in the Hierarchy tab, select your character and drag it inside of the AIThirdPersonController node.
- Select the AIThirdPersonController node, and in the Inspector panel go to the Animator controls and for the Avatar, replace the EthanAvatar with your character instead
What advice would you give to artists who want to get their own content into a game engine like Unreal or Unity?
In general, here are good basics to know for when exporting FBX or OBJ to any real-time engine out there:
- Use only basic EditPoly, EditMesh or the equivalent in your 3D software of choice
- Most engines will support Skin modifiers with bones, smoothing groups, morph targets, animations, multi-SubObject material assignation, and standard materials that don’t utilize procedural maps like Noise, checkers, etc.)
- In my experience, most engines will not support things like procedural subdivision smoothing (like TurboSmooth or MeshSmooth) or any complex feature particular to your software, like NURBS, space warps, SSS, etc.
When it comes to Unity 5 and UE4 with solid objects using standard materials, don’t be afraid: FBX just works. Install the engines (they are free), right-click the Asset browser, import, and drag your file to the scene to review. That’s it. Simple. Don’t even think about it.
Materials (shaders) for your models will always need to be re-configured on the Engine side. FBX will not support much outside of standard map slots. So don’t spend too much time trying to make things look perfect in your native 3D software. Just create the proper maps and set up everything on the engine side. In UE4 there is a beautiful visual nodes shader system, while in Unity, there are predefined materials. If you want more, you have to code the shaders or buy pre-built ones like Allegorithmic Substances (which you can get at TurboSquid 🙂 ).
For characters and animation, I should add that while interchange formats like FBX seem restrictive, engines like UE4 are not. For example, if your character features a dynamic cloth, complex animations, and special lighting effects, you’ll need to figure out in the engine how to recreate all that. So studying the engine is very important– at minimum, do it so you’ll be able to import content setup materials and showcase animations.
Many people tend to promote the fact that Unity is “easy to learn,” but I think that’s for programmers. For designers, I recommend starting with Unreal Engine 4; it produces gorgeous results and you will feel like you’re just adding another 3D application to your pipeline.