Sins II Behind the Scenes: The Nuances of Hardpointing
The primary 3D artist on Sins II’s development team, Paul Kiesling (Set), was kind enough to swing through this month to provide a “short” explanation on how we hardpoint assets to get them properly working in Sins2. Enjoy!
Let's say you have a finished good-looking ship model; how do you make it work in game? We must hardpoint the ship so that the game has the necessary location data of where to put turrets, fire torpedoes, or prop effects. Let's start with getting your ship centered in the scene before dropping any hardpoints onto the ship. You want to make sure the center of your ship is seated at X:0 Y:0 Z:0. This isn't a hard rule but a good rule of thumb when setting up a ship for use in game.
Lets get some nomenclature out of the way so we understand how hardpoint naming actually works.
Singular - This applies to center, above, aura, bomb. These are hardpoints that don't need numbering. Having more than one is unnecessary.
Serialized - This applies to your weapon, or ability hardpoints. Ships may have multiple fixed weapons, and you will need a way to distinguish themselves.
Ex. weapon.0, weapon.1, weapon.2, ability.0, ability.1, ability.2
Bank - Lets say you want missiles to fire from multiple hardpoints, you can break them out into banks to better control their range of fire. In this instance on we used weapon.0 for all of the missiles hardpoints on the Eradica. We divided them into 6 banks
weapon.0_bottomleft
weapon.0_bottomright
weapon.0_middleleft
weapon.0_middleright
weapon.0_topleft
weapon.0_topright
Now you could label these weapon.0, weapon.1, weapon.2 etc etc, however for the sake of organization we want to denote that all of these hardpoints are firing the same weapon. So they are all labeled as weapon.0, following the underscore is the location of the bank. Now there is one more important note for these banks.
weapon.0_topleft-0
(weapon.0) This indicates the weapon being fired
(_topleft) Location of the bank in relation to ship
(-0) A way of using multiple hardpoints as one, everything following the - isn't exactly ignored by the game however allows the engine to use multiple hardpoints as one. In this bank we have points going from 0-14 that can serve as the firing order for these points if you define the weapon as firing sequentially.
Turrets
Turrets are the most nuanced part of hardpointing in Sins of a Solar Empire 2, They come in two variants gimbal and bi-axial. (That's what we refer to them internally) we will start with the most common type.
Bi-axial
Bi-axial turrets consist of two parts (mount and barrel). Mount controls yaw, Barrel controls pitch. With both having their own respective arcs that control the range of motion the turret is capable of having.
Red is the mount
Blue is the barrel
When setting up turrets getting your pivot points right is a must for proper turret behavior. The mounts pivot point is where the mount connects to the hull of the ship.
In this image you will see the pivot point for the mount is its bottom center, this represent the point where the mount will rotate on.
In this image you will see the pivot for the barrel is at the back center at the center of the cylinder. This the point where barrel will incline or declinate at.
There is one more point to remember with turrets and that's the actual point the turret will fire from. Position this dummy point at the muzzle of the turret. All of our turrets in game use a single turret muzzle point. However you could hypothetically have multiple muzzle points for a single turret. (This is untested)
turret_muzzle.0 - This will have to be the name of the turret muzzle hardpoint for any turrets you have.
One last thing to remember before finishing up your turret, how to child parts to each other.
In 3DS Max bring up your Schematic View, you want to child the turret_muzzle.0 to the barrel, and the barrel to the mount. So, it looks like this below.
Your turrets will also need to be childed to your base mesh before export but if you're going to make copies of this turret, best to get it set up prior to that.
When Childing a turret to the base mesh, remember you just want to child the mount. The other parts are childed to the mount, so upon export and conversion the parts will be divided correctly.
Gimbal
Gimbal turrets used primarily by the Vasari and are turrets defined by their single point of movement. A good way to think about is ball in joint. This single point has both pitch and yaw control instead of being broken into two pieces.
As you can see the pivot point is seated in a position in a place within the ball that allows the turret a full range of movement without awkward movement or clipping. Given that gimbal turrets only require a single piece besides adjusting the pivot point all you need to do is place and child a turret_muzzle.0 to the muzzle of the turret.
Before starting the process of placing locators (hardpoints) lets talk about orientation. There is an eternal argument over which axis is up, some will say Y is up, some will say Z is up, and heretics who only serve the will of the warp will say X is up. Now for Sins of a Solar Empire 2, Y is up. So you will have to take that into account before exporting because directionality matters when exporting from source to engine.
Blender - Y is up
3DS Max - Z is up
Maya - Y is up
Regardless of what application you're using just seat your ship in the scene as it should be and just make sure you're aware of what direction is forward and up. For Blender and Maya a straight export is compatible with Sins as is, With Max our exporter compensates for Z being up and exports the ship/structure as if were doing it from Maya or Blender.
We do our hardpointing internally on 3DS Max, so this walkthrough will continue with that. These methods are not exclusive to 3DS Max as locator data, orientation and export are all things that can be done in Blender/Maya as well.
Now lets assume you have the ship centered in your scene, what's the next step? Now we have to get the core three hardpoints set up.
- Center ( What will define the center of the ship)
- Above ( A locator located straight up from center above the highest part of the ship)
- Aura ( A locator located straight down from center that sits slightly lower than the lowest part of the ship)
Before doing any other hardpoints it is heavily recommended that you do these three prior to moving onto the weapons/engines/abilities.
In 3DS Max, you want to navigate to your right-hand side bar. Click helpers and use dummy. Drop a dummy into the scene and move it to the scene's origin. So, X:0 Y:0 Z:0, this will be your center point. Next what you want to do is orientate the dummies as you want the locator data to follow the same axis orientation as the game.
So, let's start by changing the name of the dummy point, its default name will be dummy. You will see a box in the right-hand bar, with that name in it. Simply change it to "center" and then we can move to the next step.
So before moving beyond the center point its best to get its orientation right, head to the hierarchy tab and click affect pivot orientation and make sure at least when working in 3DS Max that y is forward and Z is up.
When working in 3DS Max green ( y ) is forward. Blue ( z ) is up. So pivot your hardpoints appropriately.
Now once you get the center point set up, clone it twice, once for above and one for aura. Remember you want above to above the highest point of your mesh, and aura to below the lowest point of the mesh.
With the three necessary hardpoints established we can begin by seating the many other hardpoints.
Now you want your ship to have cool engine effects. I got you; this will play out just like your three previous hardpoints. Throw a dummy into a scene, use your movement controls to position to a place where your engine will exhaust from. Here is the part you will have to pay attention to, orientation is relative to what the function of the hardpoint is. In this instance we will have to orientate them forward off the back of the ship.
You want the particle to move forward off the back of the ship so its y-forward orientation is flipped in relation to the ship. If you do not get this orientation correct your engines will exhaust into your ship instead of away from it. When numbering exhaust points remember to name them with this convention exhaust.0, exhaust.1, exhaust.2. This format will automatically prop an exhaust effects across all exhaust points or allow you to custom certain effects by specifically specifying points with certain flair effects.
If you're hardpointing a ship capable of bombing a planet you will need a hardpoint capable of propping the weapon necessary to bombard a planet. You will need to drop another dummy into the scene and place where you want this weapon to be fired from. In this instance its the front chest of the Coronata.
Remember you want to orientate it so that the weapon fires in a believable way, or don't and embrace chaos haha. With the Coronata the point is orientated in such a way that the weapon can fire forward from the center chest.
Next will be hangar hardpoints, these are relatively simple and work a lot like exhaust points. Their forward direction is relative to how you want your fighter/bombers to launch from the ship.
In this instance on the Coronata there is a small hangar on the lower back of the ship, given the angle of the hangar the hardpoints orientation needs to be adjusted to match. To prevent the fighters/bombers from launching through the ship. If you're going for believability this will be an important part to be mindful of.
Now we are moving to ability points, these are hardpoints that individually cast from. These points work a lot like hangar points and remember to orientate them in such a way they fire correctly.
In this instance the ability point is attached to the center top of the Coronata's ring. Not to beat a dead horse but just be mindful of orientation.
Components
Now lets say you want to add components to your ship, how do you do it? Well that's easy, let me explain. Components are simply mesh add-ons that can be propped onto the ship through Sins 2's component system.
To visually distinguish the components in this image I have made them red, These are armor or shield components that can be propped via component abilities on the Titan. Assuming your components are seated in your scene correctly all you will have to do is child the components to the base mesh like so.
After export it will generate the appropriate hardpoints and secondary meshes.
This is far from an exhaustive breakdown but is meant to be a top down overview of the process of what it takes to get started. We will cover the process of export and conversion in a later article. This is designed to help in the setup process as you prep your ships for use in Sins2
In conclusion, successfully hardpointing a ship for use in Sins of a Solar Empire 2 involves a meticulous process of positioning, naming, and orienting various hardpoints to ensure optimal functionality and realism in gameplay. By following the outlined steps for establishing core hardpoints, turrets, engine effects, and components, developers can create a well-structured and immersive experience for players. As you prepare your ships for export and integration into the game, remember that attention to detail in hardpoint setup not only enhances gameplay mechanics but also contributes to the overall aesthetic and operational integrity of your ship models. With this foundational knowledge, you are now equipped to embark on the exciting journey of ship design and implementation in Sins2.
(c) Copyright Stardock Entertainment. All rights reserved.