Developer knowledge network · moderated exchange

Супольнасць UnreliableCode

Супольнасць распрацоўшчыкаў даследаванняў, зваротнага праектавання і кадавання

Knowledge indexжыць
4Categories
919Threads
2.8KПаведамленні
Tutorial

Rust IL2CPP BasePlayer bone matrix extraction using Ghidra & Il2CppDumper

unity_il2cpp_dan
IL2CPP Reverser
MEMBER
прадстаўнік: 46
Дата далучэння: Jun 2020
Паведамленні: 4
Дзякуй: 15
1 месяцаў таму · Jun 27, 2026 2:45 AM
#1

To read skeletal bones in Rust Unity IL2CPP:

  1. From BasePlayer, read playerModel at offset 0x4C0.
  2. From PlayerModel, read _multiMesh at offset 0x280.
  3. From SkinnedMultiMesh, read boneTransforms at offset 0x48.
  4. Call Unity's internal Transform::GetPosition(Transform* transform, Vector3* outPos) or read the native bone matrix cache array.

Head bone is indexed at head (boneTransforms[47]), neck is neck (boneTransforms[46]).

rust_recoil_king
Member
MEMBER
прадстаўнік: 190
Дата далучэння: May 2022
Паведамленні: 5
Дзякуй: 48
1 месяцаў таму · Jun 27, 2026 5:35 AM
#2

To avoid invoking Unity functions from external, you can traverse the transform hierarchy using pTransform->pTransformData->pMatrices directly!

raycast_ryan
Ballistics Dev
MEMBER
прадстаўнік: 72
Дата далучэння: Sep 2019
Паведамленні: 32
Дзякуй: 16
1 месяцаў таму · Jun 27, 2026 11:48 PM
#3

Traversing TransformData matrix array in C++ gives bone world coordinates in 0.05 microseconds. Highly recommended.