Showing posts with label Mixamo. Show all posts
Showing posts with label Mixamo. Show all posts

Friday, July 14, 2023

88.) Terminal Map Remake Early Prototype



     Today, we embark on an exciting journey to recreate one of the most iconic multiplayer maps in gaming history: Terminal from Call of Duty: Modern Warfare 2. My goal is to rebuild the map from scratch in the Cyclone Game Engine using the XNA framework and MonoGame, alongside a couple of powerful tools that will enhance our development process. I started the day by studying the original map's layout, textures, and gameplay mechanics. Immersing myself in the details of Terminal, I carefully analyzed the paths, chokepoints, and strategic areas that made the map so memorable. Armed with this knowledge, I brainstormed ideas on how to translate those elements into the engine, ensuring I captured the essence of the original map while also infusing some of my own creative touches.


Terminal Remake Devlog v1


     To bring life to our character, I turned to Mixamo, a fantastic tool for character animation. With Mixamo, I was able to access a vast library of pre-made character animations and easily apply them to my in-game model. This saved me a tremendous amount of time and effort, allowing me to focus more on other aspects of the game development process. Jiggle Library-X (JigLibX) is utilized for the physics. Models from the scene are being extracted and and tested for collision.

Terminal Map Remake Screenshots V2 

     One of the biggest challenges is performance for the physics on more detailed models like in this picture above which also resulted in slowing the game's frame-rate. To fix this, I will most likely create two models; a low poly and high poly version. Low-poly models will be rendered unseen and most likely used for the models' collision physics to help with performance. The high-poly models with more detailed meshes will be visible for more pleasing visual aesthetics.In addition to leveraging Mixamo for character animation and Jiggle Library-X for physics, I also incorporated another powerful tool into our development arsenal: the XNAnimation library originally created by Bruno Evangelista. The XNAnimation library provided us with an extensive set of tools and functionalities to handle character animation within the XNA framework. This library enabled me to import and manage complex skeletal animations seamlessly. With XNAnimation, I could rig and animate our character model, ensuring fluid and realistic movements.

     One of the standout features of the XNAnimation library was its support for skeletal animation blending. This allowed me to smoothly transition between different animations, such as running, jumping, and shooting, providing a seamless and immersive experience for the players. However, animation blending is not presented in this following video. I was able to define animation states, set up animation trees, and control the blending parameters to achieve the desired results. Furthermore, the XNAnimation library offered a range of utilities for retargeting animations, which proved invaluable during my development process. I was able to transfer animations from one character model to another with varying skeletal structures, saving significant time and effort in adapting animations to different characters or variations within our game.


Bone Rotation Problem
     During the development process, I encountered various challenges related to character animation and camera interactions. While Mixamo proved to be a reliable tool for basic animations like walking and running, we realized that we needed additional techniques to achieve more complex actions and enhance the overall player experience. For instance, as you can see in this video, we need to address the issue of the bone moving with the camera rotation, particularly when looking up and down or aiming at a target from different positions.

Terminal Map Remake Screenshots V2 

     To fix this, I will turn to procedural animation and inverse kinematics. These techniques will allow us to dynamically adjust the character's animations and limb positions based on the player's input or environmental factors.  To further enhance the character's interaction with the environment, I most likely plan to incorporate inverse kinematics into my development process. Inverse kinematics will help to prevent the player from seeing the character's body when the bones of the model rotates in first-person perspective when looking up and down. 

     By implementing Inverse kinematics, this will enable us to precisely control the placement and movement of the character's limbs, making actions such as aiming at targets or reaching for objects appear more natural and lifelike. Whether it’s reaching for a weapon or interacting with an in-game object, an IK system in XNAnimation will help me to achieve a higher level of realism and interactivity in our games. Inverse kinematics allows us to calculate the positions and rotations of the character's joints dynamically, taking into account factors like the player's input or the position of the target in the game world. 

     To implement procedural animation, I leveraged the power of Maya, a widely-used 3D modeling and animation software. Using Maya, I exported the animated model from Mixamo and then customized the animation rigs to accommodate the specific camera interactions I desired. By fine-tuning the rigging and adjusting bone weights, this will ensure that the character's movements responds smoothly and realistically to the player's camera rotations. 


Problem: Black Spots Appearing on Mesh Faces

Terminal Remake Devlog v1
Before: Dark Spots Problem Pic-1


Terminal Remake Devlog v1
Darks Spots Problem Pic-2


Terminal Remake Devlog v1
Dark Spots Problem Pic-3

     Many of the models were created using SketchUp. When imported into Maya as a .fbx file, I noticed many dark spots appearing on the faces for some reason on the models. First I tried clearing the mesh and nothing changed. Changing the texture didn't solve the problem either. Then I tried deleting a face and appending a new face at the same place which worked and made the black spots disappear. However, this was time consuming to fix all the faces by hand especially on very detailed models. The best solution was to unlock the normals of the model which removed all of the dark spots.


Solution: Unlock Normals

Terminal Map Remake Progress Screenshots V2
After: Dark Spots Successfully Removed


Terminal Map Remake Progress Screenshots V2
Dark Spots Removed Pic-2


Terminal Map Remake Progress Screenshots V2
Dark Spots Removed Pic-3


     In Autodesk Maya 2015, click on Normals at the top and select Unlock Normals. This helped to remove the dark spots on the models and made the textures far clearer and improved their visibility. To verify that the normals are unlocked:

1.) Go to Display
2.) Select Polygons
3.) Then select Vertex Normals.

Normals should show a green line when unlocked and yellow when locked. Leave them unlocked. You can see the results of the removed dark spots in the video below. Some of the textures still pop-in and out so they will have to be resized. 




     Please note that the gameplay footage showcased in the videos above are very early stages of development and should not be considered representative of the final product. We want to emphasize that significant progress and improvements are yet to come, as we continue to refine and polish the game. During this early phase, our main focus was on establishing the core mechanics and functionality of the game. The level design, character animations, textures, and overall visual quality are all subject to change and refinement in the upcoming stages of development. We understand that the current gameplay footage may lack certain features, exhibit placeholder assets, or have performance issues that will be addressed in due course.

     It is crucial to keep in mind that this is just a glimpse into our development process and a work in progress. We remain committed to delivering a high-quality and enjoyable gaming experience. As we progress further, we will be implementing additional features, enhancing the visuals, optimizing performance, and addressing any issues that may arise along the way. We appreciate your support and understanding as we continue to work tirelessly to bring you the best possible version of our game. Stay tuned for future updates and be assured that the final product will be a significant improvement over this early footage.



Thursday, March 23, 2023

87.) Cyclone Game Engine Character Physics Controller Part 2


     Because of limited time, the design and creation of 3D models was placed on hold to focus on getting the physics collision working with low-poly models properly. I went back and utilized the Stage 1 scene from the Robot Game Starter Kit for testing purposes. It not only provided me with rapid results and made me very happy, but gave me room to further expand and modify the scene in the future for improving the graphics. I plan to add particle effects, shaders and more models.


Cyclone Game Engine Character Controller Pics Part-2

     I used JigLibX as the physics engine which is one of the favored open-source physics engines for physics and collision detection. Using JigLibX was a one of the best decisions about this project because it allowed me to focus more on gameplay, instead of spending time on creating my own physics library. JigLibX is a physics engine written in C# using Microsoft's XNA framework. It is based off the physics engine JigLib and I am currently porting it to MonoGame and further expanding it. Having a collision system and a rigid body physics engine makes JigLibX one of the favored free open-source physics engines designed for use with XNA.



Cyclone Game Engine Character Controller Pics Part-2

     With my Ai obstacle-avoidance and steering behaviors sample working recently, I might expand this map to create an arcade style wave based survival game prototype starting out. The player will fight off hordes of various enemies and creatures to rack up a large kill count and points. I don't want to get too far ahead of myself but I think this prototype will hold a lot of potential. 


Cyclone Game Engine Character Controller Pics Part-2

     I plan on implementing Parallax Occlusion Mapping to make the textures pop out and add depth to the textures so that they don't appear too flat.  


Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2

     I might implement Deferred Rendering which will allow the game engine to render a huge number of dynamic lights very efficiently.


Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2

     I plan to add a real-time reflection shader to the car's vehicle body. 


Cyclone Game Engine Character Controller Pics Part-2

     Each game object is represented in the physics engine by a simplified mesh called a collision skin. The collision skins are often rough estimations of the geometry of the game object in order to make simulation faster. The chassis if this car object for example is actually composed of two boxes, one large for the bottom of the model and a smaller box for the top. Rigid body physics is the part of physics that deals with the motion of rigid bodies. Rigid body simulations are fast and easy to calculate relative to other methods of simulating physics. 

     This makes it very useful in game development where performance plays an important role when trying to create a realistic playing experience. Rigid body physics can simulate movement and rotation in three dimensions and allows a body to have properties like mass, friction, torque, velocity etc. In a rigid body physics simulation, all objects are non-deformable. This means that an object can never be squeezed or bent regardless of what forces are applied to them.


Cyclone Game Engine Character Controller Pics Part-2

     The grass area will be separated into its own models and I will add plants and vegetation to it. 


Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Lens Flare Updated Effect



Lens Flare Updated Effect



Lens Flare Updated Effect



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



Cyclone Game Engine Character Controller Pics Part-2



More Robot Mechs Coming!



Wednesday, September 21, 2022

81.) Adobe Fuse & Mixamo Fuse Character Creation!


     Created by Mixamo, Fuse is a 3D computer graphics program that helps you to quickly and easily create 3D characters. Formerly known as Fuse Character Creator, it's a fantastic tool for video game developers, modders and enthusiasts. You can edit 3D characters with ease by choosing parts as you require and pulling and pushing them to change the appearance. 

















Adobe Fuse Discontinued?





     Fuse has been removed from Creative Cloud and is no longer available for download. However, I have made it available at the downloadable links provided below. Feel free to download it; it's safe. I hope people find this useful. Enjoy!!


Download Adobe Fuse!! 


Friday, December 4, 2020

69.) Character Rig & Skeleton Bone Visualizer


       After expanding the XNAnimation library to support multiple animations working from a single .fbx model file, which I discussed in a previous post, I also adopted an approach originally created by Andy Dunn (aka The Zman). In his approach, each animation is to exported into a separate FBX file, and then a custom processor is used to merge them. With the help of Mixamo, I was able to add a wide range of animations to my game characters. Mixamo offers thousands of animations to choose from and an automatic rigging service. The base character model is solely a T-pose rig with no other additional animations. The animations from Mixamo are exported in separate files and the program plays their animations and applies them to the T-pose rig, thus animating the character. This approach essentially allows me to add an infinite number of animations. 

       In short, now the engine supports both multiple animations from a single .fbx model file and animations from separate .fbx files. Essentially both methods can also be applied at once. Thanks to Tom Looman, I was able to integrate the Rig/Skeleton Visualizer from the sgMotion library. It visualizes the animation skeleton to debug animation and rigging issues and helps finding bone/dummy names and indices more easily. The sgMotion library also allows you to cycle through the skeleton to highlight bones and their children. The source code to the sgMotion library can be found below. Unfortunately I had to mute the song in the video above to avoid any copyright claims.

(Source Code & Tutorial Coming Soon)

Special Thanks
  • Bruno Evangelista for his original work
  • Carlos Augusto of Floatbox Studios for the character marine
  • Tom Looman for the Rig/Skeleton Visualizer
  • Andy Dunn (aka The Zman) for the Merge Processor 
  • cjHazard for the FBX multi-take importer

Thanks guys!



sgMotion Source Code: