Jump to content

[Reference] Kerbal EVA model transform tree


Recommended Posts

While stupid_chris and I were working on a small project, we managed to extract a list of transforms pertaining to the Kerbal EVA model.

We believe that this may be of use for people wishing to write plugins that alter/hide/replace meshes on the Kerbal model itself, or controlling the bones for animations:

Kerbal model mesh hierarchy


0: body01
1: head02
0: eyeballLeft
1: eyeballRight
2: headMesh01
3: pupilLeft
4: pupilRight
5: upTeeth01
6: upTeeth02
2: helmet01
0: headlamp
0: flare1
1: flare2
1: helmet
2: visor
3: helmetCollider
3: jetpack01
0: grp_l_arm01
0: arm_l_arm_a01
1: arm_l_arm_b01
2: arm_l_handle01
3: arm_l_handleCtrl01
4: arm_l_pivotA01
1: grp_r_arm01
0: arm_r_arm_a01
1: arm_r_arm_b01
2: arm_r_handle01
3: arm_r_handleCtrl01
4: arm_r_pivotA01
2: jetpack_base01
3: tank1
4: tank2
5: thrusters_l
0: thruster_l01
1: thruster_l02
2: thruster_l03
3: thruster_l04
4: thruster_l05
5: thruster_l06
6: thruster_l07
7: thruster_l08
8: thruster_l09
6: thrusters_r
0: thruster_r01
1: thruster_r02
2: thruster_r03
3: thruster_r04
4: thruster_r05
5: thruster_r06
6: thruster_r07
7: thruster_r08
8: thruster_r09
7: jetpackCollider
8: X+
0: fx_gasJet_b
1: fx_gasJet_t
9: X-
0: fx_gasJet_b
1: fx_gasJet_t
10: Y+
0: fx_gasJet_l
1: fx_gasJet_r
11: Y-
0: fx_gasJet_l
1: fx_gasJet_r
12: Z+
0: fx_gasJet_bl
1: fx_gasJet_br
2: fx_gasJet_tl
3: fx_gasJet_tr
13: Z-
0: fx_gasJet_bl
1: fx_gasJet_br
2: fx_gasJet_tl
3: fx_gasJet_tr

Kerbal model bone/joint hierarchy


3: globalMove01
0: joints01
0: bn_spA01
0: bn_l_hip01
0: bn_l_knee_a01
0: bn_l_knee_b01
0: bn_l_foot01
0: bn_l_ball01
0: be_l_footEnd01
1: footCollider_l
1: bn_r_hip01
0: bn_r_knee_a01
0: bn_r_knee_b01
0: bn_r_foot01
0: bn_r_ball01
0: be_r_footEnd01
1: footCollider_r
2: bn_spB01
0: bn_spc01
0: bn_spD01
0: be_spE01
0: bn_helmet01
0: be_helmetEnd01
0: trackHeadlamps
1: helmetCollider
1: bn_neck01
0: be_neck01
0: bn_headPivot_a01
0: bn_headPivot_b01
0: bn_lowerJaw01
0: be_lowerJawEnd01
1: bn_l_mouthCorner01
2: bn_l_mouthLow_b01
3: bn_l_mouthLow_c01
4: bn_l_mouthLow_d01
5: bn_l_mouthLowMid_a01
6: bn_lowerTeeth01
7: bn_r_mouthCorner01
8: bn_r_mouthLow_b01
9: bn_r_mouthLow_c01
10: bn_r_mouthLow_d01
1: bn_upperJaw01
0: be_upperJawEnd01
1: bn_l_mouthUp_b01
2: bn_l_mouthUp_c01
3: bn_l_mouthUp_d01
4: bn_l_mouthUpMid_a01
5: bn_r_mouthUp_b01
6: bn_r_mouthUp_c01
7: bn_r_mouthUp_d01
8: bn_upperTeet01
9: jntDrv_l_eye01
0: jntDrv_l_eyeEnd01
10: jntDrv_mouthCenter01
11: jntDrv_r_eye01
0: jntDrv_r_eyeEnd01
1: headCollider
1: bn_jetpack01
0: bn_l_arm01
0: bn_l_armElbow01
0: bn_l_armEnd01
0: be_l_handlePivot01
0: bn_l_handle01
0: be_l_handleEnd01
1: bn_r_arm01
0: bn_r_armElbow01
0: bn_r_armEnd01
0: be_r_handlePivot01
0: bn_r_handle01
0: be_r_handleEnd01
2: jetpackCollider
2: bn_l_shld01
0: be_l_shldEnd01
0: bn_l_arm01 1
0: bn_l_elbow_a01
0: bn_l_elbow_b01
0: bn_l_wrist01
0: bn_l_mid_a01
0: bn_l_mid_b01
0: be_l_mid_c01
1: bn_l_thumb_a01
0: bn_l_thumb_b01
0: bn_l_thumb_c01
0: be_l_thumb_d01
1: handCollider_l
3: bn_r_shld01
0: be_r_shldEnd01
0: bn_r_arm01 1
0: bn_r_elbow_a01
0: bn_r_elbow_b01
0: bn_r_wrist01
0: bn_r_mid_a01
0: bn_r_mid_b01
0: be_r_mid_c01
1: bn_r_thumb_a01
0: bn_r_thumb_b01
0: bn_r_thumb_c01
0: be_r_thumb_d01
1: handCollider_r


0: kerbalEVA (Jebediah Kerman)
0: capsuleCollider
1: model
0: kbEVA_flagDecals
2: referenceTransform
3: globalMove01
0: joints01
0: bn_spA01
0: bn_l_hip01
0: bn_l_knee_a01
0: bn_l_knee_b01
0: bn_l_foot01
0: bn_l_ball01
0: be_l_footEnd01
1: footCollider_l
1: bn_r_hip01
0: bn_r_knee_a01
0: bn_r_knee_b01
0: bn_r_foot01
0: bn_r_ball01
0: be_r_footEnd01
1: footCollider_r
2: bn_spB01
0: bn_spc01
0: bn_spD01
0: be_spE01
0: bn_helmet01
0: be_helmetEnd01
0: trackHeadlamps
1: helmetCollider
1: bn_neck01
0: be_neck01
0: bn_headPivot_a01
0: bn_headPivot_b01
0: bn_lowerJaw01
0: be_lowerJawEnd01
1: bn_l_mouthCorner01
2: bn_l_mouthLow_b01
3: bn_l_mouthLow_c01
4: bn_l_mouthLow_d01
5: bn_l_mouthLowMid_a01
6: bn_lowerTeeth01
7: bn_r_mouthCorner01
8: bn_r_mouthLow_b01
9: bn_r_mouthLow_c01
10: bn_r_mouthLow_d01
1: bn_upperJaw01
0: be_upperJawEnd01
1: bn_l_mouthUp_b01
2: bn_l_mouthUp_c01
3: bn_l_mouthUp_d01
4: bn_l_mouthUpMid_a01
5: bn_r_mouthUp_b01
6: bn_r_mouthUp_c01
7: bn_r_mouthUp_d01
8: bn_upperTeet01
9: jntDrv_l_eye01
0: jntDrv_l_eyeEnd01
10: jntDrv_mouthCenter01
11: jntDrv_r_eye01
0: jntDrv_r_eyeEnd01
1: headCollider
1: bn_jetpack01
0: bn_l_arm01
0: bn_l_armElbow01
0: bn_l_armEnd01
0: be_l_handlePivot01
0: bn_l_handle01
0: be_l_handleEnd01
1: bn_r_arm01
0: bn_r_armElbow01
0: bn_r_armEnd01
0: be_r_handlePivot01
0: bn_r_handle01
0: be_r_handleEnd01
2: jetpackCollider
2: bn_l_shld01
0: be_l_shldEnd01
0: bn_l_arm01 1
0: bn_l_elbow_a01
0: bn_l_elbow_b01
0: bn_l_wrist01
0: bn_l_mid_a01
0: bn_l_mid_b01
0: be_l_mid_c01
1: bn_l_thumb_a01
0: bn_l_thumb_b01
0: bn_l_thumb_c01
0: be_l_thumb_d01
1: handCollider_l
3: bn_r_shld01
0: be_r_shldEnd01
0: bn_r_arm01 1
0: bn_r_elbow_a01
0: bn_r_elbow_b01
0: bn_r_wrist01
0: bn_r_mid_a01
0: bn_r_mid_b01
0: be_r_mid_c01
1: bn_r_thumb_a01
0: bn_r_thumb_b01
0: bn_r_thumb_c01
0: be_r_thumb_d01
1: handCollider_r
4: ladderCollider
5: model01
0: body01
1: head02
0: eyeballLeft
1: eyeballRight
2: headMesh01
3: pupilLeft
4: pupilRight
5: upTeeth01
6: upTeeth02
2: helmet01
0: headlamp
0: flare1
1: flare2
1: helmet
2: visor
3: helmetCollider
3: jetpack01
0: grp_l_arm01
0: arm_l_arm_a01
1: arm_l_arm_b01
2: arm_l_handle01
3: arm_l_handleCtrl01
4: arm_l_pivotA01
1: grp_r_arm01
0: arm_r_arm_a01
1: arm_r_arm_b01
2: arm_r_handle01
3: arm_r_handleCtrl01
4: arm_r_pivotA01
2: jetpack_base01
3: tank1
4: tank2
5: thrusters_l
0: thruster_l01
1: thruster_l02
2: thruster_l03
3: thruster_l04
4: thruster_l05
5: thruster_l06
6: thruster_l07
7: thruster_l08
8: thruster_l09
6: thrusters_r
0: thruster_r01
1: thruster_r02
2: thruster_r03
3: thruster_r04
4: thruster_r05
5: thruster_r06
6: thruster_r07
7: thruster_r08
8: thruster_r09
7: jetpackCollider
8: X+
0: fx_gasJet_b
1: fx_gasJet_t
9: X-
0: fx_gasJet_b
1: fx_gasJet_t
10: Y+
0: fx_gasJet_l
1: fx_gasJet_r
11: Y-
0: fx_gasJet_l
1: fx_gasJet_r
12: Z+
0: fx_gasJet_bl
1: fx_gasJet_br
2: fx_gasJet_tl
3: fx_gasJet_tr
13: Z-
0: fx_gasJet_bl
1: fx_gasJet_br
2: fx_gasJet_tl
3: fx_gasJet_tr
6: main camera pivot
0: Camera LocalSpace
0: Camera 01
1: Camera 00
0: FXCamera
1: velocity camera

Notes:

- Please rep stupid_chris for this :)

- Sharing/redistributing the actual meshes/textures itself is against the EULA; listing the transforms and the animation rig isn't.

Edited by sumghai
Link to post
Share on other sites
  • 5 weeks later...
  • 3 weeks later...

Hi, sumghai! After a bit of experimenting I found that some bones which were present in male models are not present in female models. For example their teeth.

Would you please extract them for the modding community?

Link to post
Share on other sites
  • 3 months later...
could you tell me where i could find the actual residence of the kerbal model in the ksp directory

It is compiled into one of the sharedassets files, and is not accessible through the usual GameData tree.

, and if it is possible to replace the model witrh another

Some plugins have successfully hidden selected submodels from the transform tree (e.g. helmets or backpacks). However, as far as I'm aware no plugin has been able to replace the default models with user-specified ones, and even if they could, there are concerns that the new models would not deform properly when Kerbal joints are moved during EVA.

Link to post
Share on other sites
I'm the one who extracted the transform tree, as per what the OP says. I'll need to reprint these trees myself to get some info on female kerbals, I'll post it here when it's done.

As far as I know, the female transform tree is the exact same as the male one.

Link to post
Share on other sites

^I don't remember seeing any difference either. Annoyingly, the position of the female Kerbals is slightly different in the IVA pose, though. If you set the seating position correct for a male Kerbal, the female will be about a hands length too far forward and vice-versa. It's so frustrating.

You can extract the Kerbal model quite easily, but it's against the EULA and technically unlawful, so I won't go into detail here. Needless to say, a little googling into extracting things from compiled Unity assets will quickly yield results.

Link to post
Share on other sites
This thread is quite old. Please consider starting a new thread rather than reviving this one.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...