Cities: Skylines

Cities: Skylines

159 ratings
MARS Helicopter - Passenger Transport
2
   
Award
Favorite
Favorited
Unfavorite
File Size
Posted
9.097 MB
4 Apr, 2020 @ 11:36pm
1 Change Note ( view )
You need DLC to use this item.

Subscribe to download
MARS Helicopter - Passenger Transport

In 2 collections by citywokcitywall
CityWokCityWall's MARS Assets
948 items
CityWokCityWall's Airport Assets
167 items
Description
Welcome to Cities Skylines: MARS!

This is a Blimp Vehicle, a Passenger Helicopter Vehicle, and Prop. It's used transport citizens through the air in CityWokCityWall's MARS YouTube series. As an added bonus, there is also an semi-invisible blimp stop building - a modified version of ViniciusM's wonderful creation. Unfortunately I've been unable to get a passenger helicopter stop building working, so if anyone can figure out how to make one that's able to be raised up into the air, let me know!

Asset Info

Body (No Rotors)
Name: cwcw-transportHeli
Tris: 772 MAIN || 131 LOD
Textures: 1024x1024 D/S/N/I/C MAIN || 128x128 D/S/N/I/C LOD
Vertex Color:
Red: 0
Green: 0
Blue: 255
Hex: #0000FF

Transport Heli Prop (Body + Rotor)
Name: cwcw-MARSHelicopter-Prop
Tris: 932 MAIN || 143 LOD
Textures: 1024x1024 D/S/N/I MAIN || 124 D/S/N/I LOD

Rotor Models
Tris: 80 MAIN || 6 LOD
Textures: 64x64 D/S/C MAIN || 64x64 D/C LOD

Rotor1Spinning (left rotor)
Name: cwcw-transportHeliRotor1Spinning
Vertex Color:
Red (visibility): 85 (66% visibility when spinning, 33% visibility when stationary)
Green (tire peram): 0 (indicates this is the first submesh 0x8=0)
Blue (axis): 0
Hex: #550000

Rotor1Stationary (left rotor)
Name: cwcw-transportHeliRotor1Stationary
Vertex Color:
Red (visibility): 255 (0% visibility when moving, 100% visibility when stationary)
Green (tire peram): 8 (indicates this is the second submesh 1x8=8)
Blue (axis): 0 (if you want this prop facing sideways, use 255)
Hex: #FF0800

Rotor2Spinning (right rotor)
Name: cwcw-transportHeliRotor2Spinning
Vertex Color:
Red (visibility): 85 (66% visibility when spinning, 33% visibility when stationary)
Green (tire peram): 16 (indicates this is the third submesh 2x8=16)
Blue (axis): 0 (if you want this prop facing sideways, use 255)
Hex: #551000

Rotor2Stationary (right rotor)
Name: cwcw-transportHeliRotor2Stationary
Vertex Color:
Red (visibility): 255 (0% visibility when moving, 100% visibility when stationary)
Green (tire peram): 24 (indicates this is the fourth submesh 3x8=24)
Blue (axis): 0 (if you want this prop facing sideways, use 255)
Hex: #FF1800

How to Make a Custom Helicopter

1. Make a new PROP using the MAIN BODY model. Name it something short and easy (but unique) because you'll be needing this model to make rotors spin, but then at the end you'll want to delete it. I'm naming mine "body". Name the Asset and the file the same thing.
2. Go in game and make sure the import size is OK so you can use it on all other pieces you have to make and not re-do everything because it's the wrong size and you only realized at the very end.
3. Make a new PROP using the Rotor1Spinning model. Make it the same scale as the body when u import it. Same naming suggestion as body. I'm calling mine "R1spin".
4. Make a new PROP using the Rotor1Stationary model. I'm calling mine "R1station".
5. Make a new PROP using the Rotor2Spinning model. I'm calling mine "R2spin".
6. Make a new PROP using the Rotor2Stationary model. I'm calling mine "R2station".
7. Make a new PROP using the Actual Transport Heli Prop
8. Quit to desktop (important)
9. Make a new VEHICLE using the MAIN BODY model. Make it the same scale as the body when u import it.
10. Apply the vertex paint from the prop created in step 1
  • Take the name used in Step 1 and paste it twice into the first line of the code below instead of "body" (don't accidentally delete the "_Data"):
var asset2 = PrefabCollection<PropInfo>.FindLoaded("body.body_Data");
Vector4[] tyres = new Vector4[] {
new Vector4(-0.739f, 0.328f, 1.421f, 0.328f),
new Vector4(0.739f, 0.328f, 1.421f, 0.328f),
new Vector4(-0.739f, 0.331f, -1.93f, 0.331f),
new Vector4(0.739f, 0.331f, -1.93f, 0.331f)
};
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as VehicleInfo;
Color[] colors = new Color[asset2.m_mesh.vertices.Length];
for (int i = 0; i < asset2.m_mesh.vertices.Length; i++) colors[i] = asset2.m_mesh.colors[i];
asset.m_mesh.colors = colors; asset.m_generatedInfo.m_tyres = tyres;
  • Open Mod Tools Debug Window
  • Copy / paste the code above (with your name replaced) into Mod Tools and hit run.
11. Delete the default submesh and add your rotors. You're going to need to do the following steps four times (once for each of the props created in steps 3-6)
  • Add a new submesh.
  • Import your Rotor1Spinning model.
  • edit the below script so that the submesh number matches the submesh you are working on, and so that the two names in line 2 match the name you chose in step 3. For me, it was "R1spin". Make sure not to accidentally delete the "_Data" at the end.
var subMesh = 1; // vehicle sub mesh id, starting from 1
var asset2 = PrefabCollection<PropInfo>.FindLoaded("R1spin.R1spin_Data");
var asset = ToolsModifierControl.toolController.m_editPrefabInfo as VehicleInfo;
Color[] colors = new Color[asset2.m_mesh.vertices.Length];
for (int i = 0; i < asset2.m_mesh.vertices.Length; i++) colors[i] = asset2.m_mesh.colors[i];
asset.m_subMeshes[subMesh].m_subInfo.m_mesh.colors = colors;
  • Copy the above code into Mod Tools and run in order to import the vertex paint data from the prop rotor to the vehicle submesh rotor.
  • Don't change any of the submesh conditions
  • Repeat this step 11 three more times. make sure to change the script accordingly.
12. Find the center of the rotors by taking two of the lights and change their coordinates so that it's at the exact position where you want the rotors to rotate / pivot from. Mark those coordinates. For me it's:
Rotor1: (5.640, 2.880, 3.310)
Rotor2: (-5.640, 2.880, 3.310)
13. Set the rotors to actually spin by running the rotor spin script
  • Enter the rotor coordinates from the previous step into the following scripts in the tireParams lines. 0 & 1 are your Rotor 1 coordinates, 2 & 3 are your Rotor 2 coordinates
  • Run the script four times in Mod Tools. Each time change the subMesh number to 1, 2, 3, 4.
var subMesh = 1; // change this to 2 for the second time running this script, etc. var FlipXZ = false; // set to true to allow spinning around z axis var tires = 4; Vector4[] tireParams = new Vector4[tires]; tireParams[0] = new Vector4(5.640f, 2.880f, 3.310f, 0.0f); // leave last number as 0.0 tireParams[1] = new Vector4(5.640f, 2.880f, 3.310f, 0.0f); // leave last number as 0.0 tireParams[2] = new Vector4(-5.640f, 2.880f, 3.310f, 0.0f); // leave last number as 0.0 tireParams[3] = new Vector4(-5.640f, 2.880f, 3.310f, 0.0f); // leave last number as 0.0 var fxz = 0.0f; if(FlipXZ) fxz = 1.0f; var shader = Shader.Find("Custom/Vehicles/Vehicle/Rotors"); var asset = ToolsModifierControl.toolController.m_editPrefabInfo as VehicleInfo; if(asset.m_subMeshes[subMesh].m_subInfo.m_material != null) asset.m_subMeshes[subMesh].m_subInfo.m_material.shader = shader; if(asset.m_subMeshes[subMesh].m_subInfo.m_lodMaterial != null) asset.m_subMeshes[subMesh].m_subInfo.m_lodMaterial.shader = shader; asset.m_subMeshes[subMesh].m_subInfo.m_material.SetFloat("_FlipTyreRotationXZ", fxz); asset.m_subMeshes[subMesh].m_subInfo.m_generatedInfo.m_tyres = tireParams; if(FlipXZ) asset.m_subMeshes[subMesh].m_subInfo.m_UIPriority = 120122;
14. Change light positions to how you want them, set vehicle capacity, etc. for me it was...
Light 1: -5.99, 1.96, 3.08
Light 2: 5.99, 1.96, 3.08
Light 3: 0, 1.93, -8.23
Light 4: -5.59, 0.38, 1.99
Light 5: 5.59, 0.38, 1.99
Light 6: 0, 0, 0
Use Color Variations: Off
Max Speed: 6
Passenger Capacity: 25
15. Save!
16 Comments
DTOX 15 Dec, 2022 @ 9:04pm 
I followed this write up and the clsmodding site, but am still struggling with helicopter rotors. Is there a video tutorial out there somewhere? Any help is appreciated. (great asset btw)
Blue Monkey 25 Sep, 2022 @ 6:42pm 
Way too slow. 35 km/h at 25 capacity is a joke.
eons Luna 15 Sep, 2022 @ 7:28am 
Is there a generic medical version of this? I know there's already the MARS Helicopter but I want something that looks more "civilian"; the MARS Helicopter looks more like a helicopter gunship.
m4gic 7 Jul, 2022 @ 7:38am 
Thank you!
m4gic 7 Jul, 2022 @ 7:38am 
Tags: Cities Skylines vehicle rotor, spinning rotor, helicopter, make rotors spin
TortoTheConqueror 16 Aug, 2021 @ 10:35am 
Would it be easy to turn this into a police helicopter?
smith994 12 Jul, 2020 @ 11:22am 
Somehow this is now working as a blimp without Sunset Harbor.
CaddyShack 26 May, 2020 @ 6:22pm 
One of the only few working custom passenger helis on the Workshop! I love your work! :steamhappy:
Dolomite13 7 May, 2020 @ 5:29pm 
Oh well I guess I need to make everything in my city just a bit lower then ;) ... looking forward to that next episode of Mars
citywokcitywall  [author] 7 May, 2020 @ 4:39pm 
@Dolomite13 as far as i know, no