This tutorial considers how to rig dock paths and latch points for a carrier. It is based on the Turanic Raider example ship. We will be replacing the Taiidan Carrier with the Turanic Raider carrier. See also [TUTORIAL] Getting a simple ship in game and [TUTORIAL] Turrets.
Tools used in this tutorial:
3ds Max 2014 (some other versions work, Blender is also a possibility)
To start with, we will have a look at the dock paths already in the example file. Import the example ship DAE file of the Turanic Raider Carrier (tur_p1mothership) and open up the hierarchy. There are three dock paths specified (one āinā and two āoutā). Letās look at them. The first thing to note is the āHOLD_DOCKā dummy. It is located at the origin of the ship and all dock paths sit underneath it.
Firstly we have the root dummy of the first dock path, called āDock[In]ā¦ā that dummy is also located at the origin - moving it introduces some weird relative positioning effects that are difficult to manage, so always put it on the origin unless you know what you are doing. The dock path itself is made of a series of āSEGā (segment) dummies as follows:
As shown above, the position and direction of the dummies determines the dock path. The name of the root dummy āDOCK[In]_Fam[Fighter, Corvette, Utility]ā tells the game that this is a dock path for inbound fighters, corvettes and utility ships to follow. The ships will start at SEG0 and move through each segment until they reach the last one. They will then ādisappearā into the hold (although by this stage they will already be inside the mesh). The name of each segment has several parameters that tell the ships how to behave. @EvilleJedi has listed some of these here based on the old tools, although the names of some parameters have changedā¦
Here are the HODOR formats for the above parameters:
DOCK[A]_Fam[B]_Flags[Exit Latch Anim Ajar]_Link[C]_MAD[D]
A = name of dock path
B = families of ships that use the path
C = name of linked path(s)
D = an integer, to link the animation?
SEG[X]_Tol[Y]_Spd[Z]_Flags[UseRot Unfocus Check Close Player Queue Clip ClearRes]
X = integer, from 0 to n, the number of the segment
Y = tolerance, the distance from the segment that the ship must pass
Z = speed of the ship as it passes the segment
If you are animating the dock path (a door or arm) you will need the Anim flag on the DOCK node. Use the Ajar flag if you want the door or arm to stay āopenā while the ship is docked (e.g. the Kadeshi Fuel Pod arms). Do not use the Ajar flag if you want the door or arm to close (e.g. the mothership door). If using more than one dock path animation, you will need the MAD[] tag. For more information on the MAD tag, see the following thread:
Secondly, there are two āoutā dock paths, for ships leaving the carrier. They are called āDOCK[Out]ā¦ā and āDOCK[Out1]ā¦ā You will notice that both can be used by fighters, corvettes and utility ships, so why two? Both dock paths can be used simultaneously, so having two dock paths means that the carrier can launch its strike craft twice as quickly, which has an impact on how effective it is in combat (for example when launching fighters after hypserspacing in).
To create a new dock path we new to create a series of dummies as children of the āHOLD_DOCKā dummy. We are going to create an āinā path for frigates (for when frigates are retired into the carrier) and an āoutā path for when the carrier builds new frigates. Create the dummies as shown in the image below (scene explorer view):
The names āInFrigā and āOutFrigā can be whatever you like. The paramters Tol and Spd define the tolerance (by how far are ships allowed to miss the point) and the speed of the ships. For an āinā path, the speeds and tolerances should generally decrease as the ships approach the hanger bay. For āoutā paths the speeds should increase as the ships leave the hangar bay. I am using the āUseRotā parameter because I want the frigates to have the same orientations as the dummies. I am using a clip plane because the space where the frigates will spawn may not be large enough to hold all frigate types, so they would stick out through the engines, which would look bad.
Notice the āLink[ā¦]ā parameter, which is included in both paths. This parameter means that only one of the paths can be used at any one time, preventing inbound and outbound frigates from crashing into each other.
Once you have all the dummies created and in the correct hierarchy, place them in the dock paths you would like to set up:
Although the direction of my dock path changes (between vertical and horizontal, all the dummies are orientated in the same direction and the āUseRotā parameter is used, so the frigate will remain in the same orientation, but will move vertically.
Note: SEG[0] of the āinā path must be a certain distance from the ship in order to work, otherwise docking ships cannot reach the first segment of the dock path. It seems that trial and error is the only way to find the minimum distanceā¦
EDIT: a few extra points to note:
you can link to more than 1 our dock path. With this ship the is a case for linking all the in and out paths, since everything is using the same bay.
resource collectors will be able to dock using the above path, but not if they are carrying any salvage. For this to work another family, āResourceā, needs to be added in the āFamā tag.
The latch points for resource collectors work in a similar way to dock paths - they also need to appear as children of the āHOLD_DOCKā dummy. Here are the dummies that I have used. The āLink[ā¦]ā parameter is vital here, because the game needs to know which āoutā path to use once the resource collector has latched. I have only used one latch point, but multiple points can be used - just keep the names different and make sure the links are correct. EDIT: I have found that the previous statement is incorrect - the Latch paths need to be not linked. Based on the hgn_carrier example, I have set all the speeds to zero, which leads to slightly jerky movement, but it stops the collectors from running into each other and getting stuckā¦
Here is my arrangement of latch paths. I have selected an arbitrary point on the top of the ship, because there arenāt any obvious resource drop-off points on the Turanic Raider Carrier.
Note that the final SEG of the Latch In path is in the same location as SEG[0] of the Latch Out path, otherwise the collector will ājumpā as it starts to exit.
Not really a dock paths step, but necessary⦠Finally, in order to replace the Taiidan Carrier without changing ships scripts, we need to add two hardpoints. Create the following dummies for the engine and resource drop-off hardpoints:
Export the HOD file to C:\Program Files (x86)\Steam\steamapps\common\Homeworld\HomeworldRM\Data\ship\tai_carrier\tai_carrier.HOD (see here for details on HODOR and command line arguments for the game) and start the gameā¦
Thanks for making this tutorial! It appears incredibly thorough, although at the moment Iāve only just glanced⦠my personal modding problems are way more remedial, so Iām just going to go ahead and ask:
[quote=āDom2, post:6, topic:480853ā]
Export the HOD file to C:\Program Files (x86)\Steam\steamapps\common\Homeworld\HomeworldRM\Data\ship\tai_carrier\tai_carrier.HOD and start the gameā¦
[/quote]Is that REALLY all it takes? Are there no override commands involved⦠you just mimic the folder hierarchy in the .big file and the game will automatically override the .big with whatever other files are in your folders? Itās these āsimple no-brainerā questions that are keeping me from doing ANYTHING to Remastered.
Also, have you perchance used RODOH at all? I would love an extremely super-remedial step-by-step example tutorial on that which assumes absolutely zero knowledge of anything. Because hereās what Iāve learned about how to use RODOH so far:
I read what it does. So then I scroll down in search of how to actually use it
Thereās an example prefaced by being inside a file called āScan_Path.hodorā. But I donāt know how to open a file like that because itās a command line program. So I figure the basics are probably all explained in the HODOR tool description.
Finding the HODOR thread I discover what it does. So I scroll down farther to figure out how to actually use it
I kinda muddle through an initial listing of features such as the containing of symbols like shader-blah-blah-backslash, STR contains symbols, pause, do=COMMAND, and other things that are probably awesome and super-helpful to people who have a clue
I arrive at the CONVERT heading and think I might finally be home-free. But thereās still no actual explanation of how to call up these kinds of commands in command prompt with what I would consider any kind of relevant context. Surely I couldnāt just open command prompt and type "-do=convertā and expect it to have any idea what Iām talking about. Yes, thereās a more complete list of coding lines down a bit from there, but where and how do I get command prompt to understand that Iām trying to use this HODOR.exe that itās supposed to compile (or run or whatever smart people call whatever itās supposed to do)? Thereās the HODOREST with the super-easy-helpful GUI, but it doesnāt appear to have RODOH functionality, so I am stuck trying to understand how to work these hacker-black-magic type applications.
I do wish to say that I mean no insult to the devs by summarizing their tool descriptions this way⦠I am extremely grateful that they have given us such tools and for pretty much everything they do. I simply am not sure that they can comprehend my level of ignorance in these matters.
Sorry that this is barely attached to the subject matter⦠in fact it probably isnāt attached to it at all anymore. But as a tutorial guy, I just hoped you could help me get past this level of modding proficiency:
No, that is not all it takes - See step 4 of [TUTORIAL] 3DSMax - Getting a simple ship in game for guidance on how to convert DAE > HOD using HODOR and command line arguments for launching the game. This tutorial sort of assumes that knowledge, maybe Iāll make that clearerā¦
Iāve not used RODOH, so Iām afraid I canāt help you there, but I know there are others here who can.
Soo, I presume you havenāt used HODOR yet? Files with .hodor are text files, scripts, with file paths in them etc. RODOH is used the same way as HODOR, itās really the same thing. I used it once, I donāt need it, but I wanted to see what it does.
Send me a PM, weāll figure it out.
Gosh, it mustāve been my defeatist attitude that caused me to completely not notice that pretty much everything I needed to know about how modding works now was in that STEP 4 post! That and the fact that at the time I was reading that tutorial I had no way of making a .DAE to convert anyway. Iāll see what I can do now⦠thanks for pointing me in the right direction!
@Pouk, I will definitely consult you if this ānew informationā turns out to still not be lay-man enough for me. And LOL, no, I havenāt used HODOR yet. Itās all hacker-black-magic to me (or at least it was; hopefully not anymore!)
Can I get the list of all flags I can use as they would be seen on the node name? @EvilleJedi did a great job of explaining what each one did but not how to use them when you;re doing this stuff manually
Here we are, all the ones I know of (there may be more):
DOCK[A]_Fam[B]_Flags[Exit Latch Anim Ajar]_Link[C]_MAD[D]
A = name of dock path
B = families of ships that use the path
C = name of linked path(s)
D = an integer, to link the animation?
SEG[X]_Tol[Y]_Spd[Z]_Flags[UseRot Unfocus Check Close Player Queue Clip ClearRes]
X = integer, from 0 to n, the number of the segment
Y = tolerance, the distance from the segment that the ship must pass
Z = speed of the ship as it passes the segment
Clearly you would not put all these in the same point in reality, but they are given in this format as an example!
No idea what āAjarā does. Seems to be related to an animation like a door opening or a docking gantry extending.
Ahh interesting. Thanks. I would have guessed āCheck Rotationā might have been āCheckRotā. And yeah I think Ajar would link to an anim while āanimā itself would indicate that itās a dock path that should trigger animations on the ship docking/undocking?
O wait that should be a SEG flag huh? hmmm
Edit: no wait the anim on the ship thatās undocking would be something set up and defined on the ship itselfā¦
Halp, at first they were working, but now none of my collectors will move once they hit the first point ofā¦well any path, proper docking or a latch path. They undock fine thoughā¦
Are you sure they hit it though? Because ships and formations will get stuck before they hit the first point, because they canāt reach the first point, if that point is inside the carrierās collision sphere. Might that be your case? Is your first entry point far enough?