Files
niko c12fbe3fc6 m
2026-04-12 16:51:38 +02:00

2528 lines
83 KiB
C#

using System;
using System.Runtime.CompilerServices;
using Cpp2IlInjected;
using UnityEngine;
using UnityEngine.Events;
using UnityEngine.Serialization;
namespace RootMotion.FinalIK
{
// Token: 0x02000084 RID: 132
[Token(Token = "0x2000066")]
[Serializable]
public class IKSolverVR : IKSolver
{
// Token: 0x0600042C RID: 1068 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A2")]
[Address(RVA = "0xF05620", Offset = "0xF04620", VA = "0x180F05620")]
public void SetToReferences(VRIK.References references)
{
}
// Token: 0x0600042D RID: 1069 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A3")]
[Address(RVA = "0xF03FC0", Offset = "0xF02FC0", VA = "0x180F03FC0")]
public void GuessHandOrientations(VRIK.References references, bool onlyIfZero)
{
}
// Token: 0x0600042E RID: 1070 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A4")]
[Address(RVA = "0xF02C10", Offset = "0xF01C10", VA = "0x180F02C10")]
public void DefaultAnimationCurves()
{
}
// Token: 0x0600042F RID: 1071 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A5")]
[Address(RVA = "0xF02340", Offset = "0xF01340", VA = "0x180F02340")]
public void AddPositionOffset(IKSolverVR.PositionOffset positionOffset, Vector3 value)
{
}
// Token: 0x06000430 RID: 1072 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A6")]
[Address(RVA = "0xF02840", Offset = "0xF01840", VA = "0x180F02840")]
public void AddRotationOffset(IKSolverVR.RotationOffset rotationOffset, Vector3 value)
{
}
// Token: 0x06000431 RID: 1073 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A7")]
[Address(RVA = "0xF02A60", Offset = "0xF01A60", VA = "0x180F02A60")]
public void AddRotationOffset(IKSolverVR.RotationOffset rotationOffset, Quaternion value)
{
}
// Token: 0x06000432 RID: 1074 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A8")]
[Address(RVA = "0xF02170", Offset = "0xF01170", VA = "0x180F02170")]
public void AddPlatformMotion(Vector3 deltaPosition, Quaternion deltaRotation, Vector3 platformPivot)
{
}
// Token: 0x06000433 RID: 1075 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003A9")]
[Address(RVA = "0xF05450", Offset = "0xF04450", VA = "0x180F05450")]
public void Reset()
{
}
// Token: 0x06000434 RID: 1076 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003AA")]
[Address(RVA = "0xF07560", Offset = "0xF06560", VA = "0x180F07560", Slot = "9")]
public override void StoreDefaultLocalState()
{
}
// Token: 0x06000435 RID: 1077 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003AB")]
[Address(RVA = "0xF02D90", Offset = "0xF01D90", VA = "0x180F02D90", Slot = "8")]
public override void FixTransforms()
{
}
// Token: 0x06000436 RID: 1078 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x60003AC")]
[Address(RVA = "0xF03D60", Offset = "0xF02D60", VA = "0x180F03D60", Slot = "6")]
public override IKSolver.Point[] GetPoints()
{
return null;
}
// Token: 0x06000437 RID: 1079 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x60003AD")]
[Address(RVA = "0xF03D00", Offset = "0xF02D00", VA = "0x180F03D00", Slot = "7")]
public override IKSolver.Point GetPoint(Transform transform)
{
return null;
}
// Token: 0x06000438 RID: 1080 RVA: 0x00003CC0 File Offset: 0x00001EC0
[Token(Token = "0x60003AE")]
[Address(RVA = "0xF04340", Offset = "0xF03340", VA = "0x180F04340", Slot = "4")]
public override bool IsValid(ref string message)
{
return default(bool);
}
// Token: 0x06000439 RID: 1081 RVA: 0x00003CD8 File Offset: 0x00001ED8
[Token(Token = "0x60003AF")]
[Address(RVA = "0xF02FE0", Offset = "0xF01FE0", VA = "0x180F02FE0")]
private Vector3 GetNormal(Transform[] transforms)
{
return default(Vector3);
}
// Token: 0x0600043A RID: 1082 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x60003B0")]
[Address(RVA = "0xF03E60", Offset = "0xF02E60", VA = "0x180F03E60")]
private static Keyframe[] GetSineKeyframes(float mag)
{
return null;
}
// Token: 0x0600043B RID: 1083 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B1")]
[Address(RVA = "0xF07740", Offset = "0xF06740", VA = "0x180F07740")]
private void UpdateSolverTransforms()
{
}
// Token: 0x0600043C RID: 1084 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B2")]
[Address(RVA = "0xF045F0", Offset = "0xF035F0", VA = "0x180F045F0", Slot = "10")]
protected override void OnInitiate()
{
}
// Token: 0x0600043D RID: 1085 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B3")]
[Address(RVA = "0xF04650", Offset = "0xF03650", VA = "0x180F04650", Slot = "11")]
protected override void OnUpdate()
{
}
// Token: 0x0600043E RID: 1086 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B4")]
[Address(RVA = "0xF07900", Offset = "0xF06900", VA = "0x180F07900")]
private void WriteTransforms()
{
}
// Token: 0x0600043F RID: 1087 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B5")]
[Address(RVA = "0xF04D50", Offset = "0xF03D50", VA = "0x180F04D50")]
private void Read(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs)
{
}
// Token: 0x06000440 RID: 1088 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003B6")]
[Address(RVA = "0xF05AB0", Offset = "0xF04AB0", VA = "0x180F05AB0")]
private void Solve()
{
}
// Token: 0x06000441 RID: 1089 RVA: 0x00003CF0 File Offset: 0x00001EF0
[Token(Token = "0x60003B7")]
[Address(RVA = "0xF03DC0", Offset = "0xF02DC0", VA = "0x180F03DC0")]
private Vector3 GetPosition(int index)
{
return default(Vector3);
}
// Token: 0x06000442 RID: 1090 RVA: 0x00003D08 File Offset: 0x00001F08
[Token(Token = "0x60003B8")]
[Address(RVA = "0xF03E10", Offset = "0xF02E10", VA = "0x180F03E10")]
private Quaternion GetRotation(int index)
{
return default(Quaternion);
}
// Token: 0x17000070 RID: 112
// (get) Token: 0x06000443 RID: 1091 RVA: 0x00002050 File Offset: 0x00000250
// (set) Token: 0x06000444 RID: 1092 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x17000058")]
[HideInInspector]
public IKSolverVR.VirtualBone rootBone
{
[Token(Token = "0x60003B9")]
[Address(RVA = "0x42D840", Offset = "0x42C840", VA = "0x18042D840")]
[CompilerGenerated]
get
{
return null;
}
[Token(Token = "0x60003BA")]
[Address(RVA = "0x42DBA0", Offset = "0x42CBA0", VA = "0x18042DBA0")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x06000445 RID: 1093 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003BB")]
[Address(RVA = "0xF07F40", Offset = "0xF06F40", VA = "0x180F07F40")]
private void Write()
{
}
// Token: 0x06000446 RID: 1094 RVA: 0x00003D20 File Offset: 0x00001F20
[Token(Token = "0x60003BC")]
[Address(RVA = "0xF03370", Offset = "0xF02370", VA = "0x180F03370")]
private Vector3 GetPelvisOffset()
{
return default(Vector3);
}
// Token: 0x06000447 RID: 1095 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60003BD")]
[Address(RVA = "0xF08100", Offset = "0xF07100", VA = "0x180F08100")]
public IKSolverVR()
{
}
// Token: 0x0400038A RID: 906
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40002C5")]
private Transform[] solverTransforms;
// Token: 0x0400038B RID: 907
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40002C6")]
private bool hasChest;
// Token: 0x0400038C RID: 908
[FieldOffset(Offset = "0x61")]
[Token(Token = "0x40002C7")]
private bool hasNeck;
// Token: 0x0400038D RID: 909
[FieldOffset(Offset = "0x62")]
[Token(Token = "0x40002C8")]
private bool hasShoulders;
// Token: 0x0400038E RID: 910
[FieldOffset(Offset = "0x63")]
[Token(Token = "0x40002C9")]
private bool hasToes;
// Token: 0x0400038F RID: 911
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x40002CA")]
private bool hasLegs;
// Token: 0x04000390 RID: 912
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40002CB")]
private Vector3[] readPositions;
// Token: 0x04000391 RID: 913
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40002CC")]
private Quaternion[] readRotations;
// Token: 0x04000392 RID: 914
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40002CD")]
private Vector3[] solvedPositions;
// Token: 0x04000393 RID: 915
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40002CE")]
private Quaternion[] solvedRotations;
// Token: 0x04000394 RID: 916
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x40002CF")]
private Quaternion[] defaultLocalRotations;
// Token: 0x04000395 RID: 917
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x40002D0")]
private Vector3[] defaultLocalPositions;
// Token: 0x04000396 RID: 918
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x40002D1")]
private Vector3 rootV;
// Token: 0x04000397 RID: 919
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x40002D2")]
private Vector3 rootVelocity;
// Token: 0x04000398 RID: 920
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x40002D3")]
private Vector3 bodyOffset;
// Token: 0x04000399 RID: 921
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x40002D4")]
private int supportLegIndex;
// Token: 0x0400039A RID: 922
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x40002D5")]
private int lastLOD;
// Token: 0x0400039B RID: 923
[FieldOffset(Offset = "0xC4")]
[Token(Token = "0x40002D6")]
[Tooltip("LOD 0: Full quality solving. LOD 1: Shoulder solving, stretching plant feet disabled, spine solving quality reduced. This provides about 30% of performance gain. LOD 2: Culled, but updating root position and rotation if locomotion is enabled.")]
[Range(0f, 2f)]
public int LOD;
// Token: 0x0400039C RID: 924
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x40002D7")]
[Tooltip("Scale of the character. Value of 1 means normal adult human size.")]
public float scale;
// Token: 0x0400039D RID: 925
[FieldOffset(Offset = "0xCC")]
[Token(Token = "0x40002D8")]
[Tooltip("If true, will keep the toes planted even if head target is out of reach, so this can cause the camera to exit the head if it is too high for the model to reach. Enabling this increases the cost of the solver as the legs will have to be solved multiple times.")]
public bool plantFeet;
// Token: 0x0400039F RID: 927
[FieldOffset(Offset = "0xD8")]
[Token(Token = "0x40002DA")]
[Tooltip("The spine solver.")]
public IKSolverVR.Spine spine;
// Token: 0x040003A0 RID: 928
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x40002DB")]
[Tooltip("The left arm solver.")]
public IKSolverVR.Arm leftArm;
// Token: 0x040003A1 RID: 929
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x40002DC")]
[Tooltip("The right arm solver.")]
public IKSolverVR.Arm rightArm;
// Token: 0x040003A2 RID: 930
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x40002DD")]
[Tooltip("The left leg solver.")]
public IKSolverVR.Leg leftLeg;
// Token: 0x040003A3 RID: 931
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x40002DE")]
[Tooltip("The right leg solver.")]
public IKSolverVR.Leg rightLeg;
// Token: 0x040003A4 RID: 932
[FieldOffset(Offset = "0x100")]
[Token(Token = "0x40002DF")]
[Tooltip("Procedural leg shuffling for stationary VR games. Not designed for roomscale and thumbstick locomotion. For those it would be better to use a strafing locomotion blend tree to make the character follow the horizontal direction towards the HMD by root motion or script.")]
public IKSolverVR.Locomotion locomotion;
// Token: 0x040003A5 RID: 933
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x40002E0")]
private IKSolverVR.Leg[] legs;
// Token: 0x040003A6 RID: 934
[FieldOffset(Offset = "0x110")]
[Token(Token = "0x40002E1")]
private IKSolverVR.Arm[] arms;
// Token: 0x040003A7 RID: 935
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x40002E2")]
private Vector3 headPosition;
// Token: 0x040003A8 RID: 936
[FieldOffset(Offset = "0x124")]
[Token(Token = "0x40002E3")]
private Vector3 headDeltaPosition;
// Token: 0x040003A9 RID: 937
[FieldOffset(Offset = "0x130")]
[Token(Token = "0x40002E4")]
private Vector3 raycastOriginPelvis;
// Token: 0x040003AA RID: 938
[FieldOffset(Offset = "0x13C")]
[Token(Token = "0x40002E5")]
private Vector3 lastOffset;
// Token: 0x040003AB RID: 939
[FieldOffset(Offset = "0x148")]
[Token(Token = "0x40002E6")]
private Vector3 debugPos1;
// Token: 0x040003AC RID: 940
[FieldOffset(Offset = "0x154")]
[Token(Token = "0x40002E7")]
private Vector3 debugPos2;
// Token: 0x040003AD RID: 941
[FieldOffset(Offset = "0x160")]
[Token(Token = "0x40002E8")]
private Vector3 debugPos3;
// Token: 0x040003AE RID: 942
[FieldOffset(Offset = "0x16C")]
[Token(Token = "0x40002E9")]
private Vector3 debugPos4;
// Token: 0x02000085 RID: 133
[Token(Token = "0x20000EC")]
[Serializable]
public class Arm : IKSolverVR.BodyPart
{
// Token: 0x17000071 RID: 113
// (get) Token: 0x06000448 RID: 1096 RVA: 0x00003D38 File Offset: 0x00001F38
// (set) Token: 0x06000449 RID: 1097 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x1700009F")]
public Vector3 position
{
[Token(Token = "0x60006C7")]
[Address(RVA = "0x1002B90", Offset = "0x1001B90", VA = "0x181002B90")]
[CompilerGenerated]
get
{
return default(Vector3);
}
[Token(Token = "0x60006C8")]
[Address(RVA = "0x1002C60", Offset = "0x1001C60", VA = "0x181002C60")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x17000072 RID: 114
// (get) Token: 0x0600044A RID: 1098 RVA: 0x00003D50 File Offset: 0x00001F50
// (set) Token: 0x0600044B RID: 1099 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000A0")]
public Quaternion rotation
{
[Token(Token = "0x60006C9")]
[Address(RVA = "0x1002BB0", Offset = "0x1001BB0", VA = "0x181002BB0")]
[CompilerGenerated]
get
{
return default(Quaternion);
}
[Token(Token = "0x60006CA")]
[Address(RVA = "0x1002C80", Offset = "0x1001C80", VA = "0x181002C80")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x17000073 RID: 115
// (get) Token: 0x0600044C RID: 1100 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000A1")]
private IKSolverVR.VirtualBone shoulder
{
[Token(Token = "0x60006CB")]
[Address(RVA = "0x1002BC0", Offset = "0x1001BC0", VA = "0x181002BC0")]
get
{
return null;
}
}
// Token: 0x17000074 RID: 116
// (get) Token: 0x0600044D RID: 1101 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000A2")]
private IKSolverVR.VirtualBone upperArm
{
[Token(Token = "0x60006CC")]
[Address(RVA = "0x1002C00", Offset = "0x1001C00", VA = "0x181002C00")]
get
{
return null;
}
}
// Token: 0x17000075 RID: 117
// (get) Token: 0x0600044E RID: 1102 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000A3")]
private IKSolverVR.VirtualBone forearm
{
[Token(Token = "0x60006CD")]
[Address(RVA = "0x1002AD0", Offset = "0x1001AD0", VA = "0x181002AD0")]
get
{
return null;
}
}
// Token: 0x17000076 RID: 118
// (get) Token: 0x0600044F RID: 1103 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000A4")]
private IKSolverVR.VirtualBone hand
{
[Token(Token = "0x60006CE")]
[Address(RVA = "0x1002B30", Offset = "0x1001B30", VA = "0x181002B30")]
get
{
return null;
}
}
// Token: 0x06000450 RID: 1104 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006CF")]
[Address(RVA = "0xFFE6B0", Offset = "0xFFD6B0", VA = "0x180FFE6B0", Slot = "4")]
protected override void OnRead(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index)
{
}
// Token: 0x06000451 RID: 1105 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D0")]
[Address(RVA = "0xFFF380", Offset = "0xFFE380", VA = "0x180FFF380", Slot = "5")]
public override void PreSolve()
{
}
// Token: 0x06000452 RID: 1106 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D1")]
[Address(RVA = "0xFFDDC0", Offset = "0xFFCDC0", VA = "0x180FFDDC0", Slot = "7")]
public override void ApplyOffsets(float scale)
{
}
// Token: 0x06000453 RID: 1107 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D2")]
[Address(RVA = "0x1001A90", Offset = "0x1000A90", VA = "0x181001A90")]
private void Stretching()
{
}
// Token: 0x06000454 RID: 1108 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D3")]
[Address(RVA = "0xFFF790", Offset = "0xFFE790", VA = "0x180FFF790")]
public void Solve(bool isLeft)
{
}
// Token: 0x06000455 RID: 1109 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D4")]
[Address(RVA = "0xFFF720", Offset = "0xFFE720", VA = "0x180FFF720", Slot = "8")]
public override void ResetOffsets()
{
}
// Token: 0x06000456 RID: 1110 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D5")]
[Address(RVA = "0x10024E0", Offset = "0x10014E0", VA = "0x1810024E0", Slot = "6")]
public override void Write(ref Vector3[] solvedPositions, ref Quaternion[] solvedRotations)
{
}
// Token: 0x06000457 RID: 1111 RVA: 0x00003D68 File Offset: 0x00001F68
[Token(Token = "0x60006D6")]
[Address(RVA = "0xFFDE90", Offset = "0xFFCE90", VA = "0x180FFDE90")]
private float DamperValue(float value, float min, float max, float weight = 1f)
{
return 0f;
}
// Token: 0x06000458 RID: 1112 RVA: 0x00003D80 File Offset: 0x00001F80
[Token(Token = "0x60006D7")]
[Address(RVA = "0xFFDF90", Offset = "0xFFCF90", VA = "0x180FFDF90")]
private Vector3 GetBendNormal(Vector3 dir)
{
return default(Vector3);
}
// Token: 0x06000459 RID: 1113 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D8")]
[Address(RVA = "0x10023A0", Offset = "0x10013A0", VA = "0x1810023A0")]
private void Visualize(IKSolverVR.VirtualBone bone1, IKSolverVR.VirtualBone bone2, IKSolverVR.VirtualBone bone3, Color color)
{
}
// Token: 0x0600045A RID: 1114 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006D9")]
[Address(RVA = "0x1002970", Offset = "0x1001970", VA = "0x181002970")]
public Arm()
{
}
// Token: 0x040003AF RID: 943
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4000692")]
[Tooltip("The hand target. This should not be the hand controller itself, but a child GameObject parented to it so you could adjust it's position/rotation to match the orientation of the hand bone. The best practice for setup would be to move the hand controller to the avatar's hand as it it was held by the avatar, duplicate the avatar's hand bone and parent it to the hand controller. Then assign the duplicate to this slot.")]
public Transform target;
// Token: 0x040003B0 RID: 944
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4000693")]
[Tooltip("The elbow will be bent towards this Transform if 'Bend Goal Weight' > 0.")]
public Transform bendGoal;
// Token: 0x040003B1 RID: 945
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4000694")]
[Tooltip("Positional weight of the hand target. Note that if you have nulled the target, the hand will still be pulled to the last position of the target until you set this value to 0.")]
[Range(0f, 1f)]
public float positionWeight;
// Token: 0x040003B2 RID: 946
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4000695")]
[Tooltip("Rotational weight of the hand target. Note that if you have nulled the target, the hand will still be rotated to the last rotation of the target until you set this value to 0.")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x040003B3 RID: 947
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4000696")]
[Tooltip("Different techniques for shoulder bone rotation.")]
public IKSolverVR.Arm.ShoulderRotationMode shoulderRotationMode;
// Token: 0x040003B4 RID: 948
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4000697")]
[Tooltip("The weight of shoulder rotation")]
[Range(0f, 1f)]
public float shoulderRotationWeight;
// Token: 0x040003B5 RID: 949
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4000698")]
[Tooltip("The weight of twisting the shoulders backwards when arms are lifted up.")]
[Range(0f, 1f)]
public float shoulderTwistWeight;
// Token: 0x040003B6 RID: 950
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4000699")]
[Tooltip("If greater than 0, will bend the elbow towards the 'Bend Goal' Transform.")]
[Range(0f, 1f)]
public float bendGoalWeight;
// Token: 0x040003B7 RID: 951
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x400069A")]
[Tooltip("Angular offset of the elbow bending direction.")]
[Range(-180f, 180f)]
public float swivelOffset;
// Token: 0x040003B8 RID: 952
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x400069B")]
[Tooltip("Local axis of the hand bone that points from the wrist towards the palm. Used for defining hand bone orientation. If you have copied VRIK component from another avatar that has different bone orientations, right-click on VRIK header and select 'Guess Hand Orientations' from the context menu.")]
public Vector3 wristToPalmAxis;
// Token: 0x040003B9 RID: 953
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x400069C")]
[Tooltip("Local axis of the hand bone that points from the palm towards the thumb. Used for defining hand bone orientation. If you have copied VRIK component from another avatar that has different bone orientations, right-click on VRIK header and select 'Guess Hand Orientations' from the context menu.")]
public Vector3 palmToThumbAxis;
// Token: 0x040003BA RID: 954
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x400069D")]
[Tooltip("Use this to make the arm shorter/longer. Works by displacement of hand and forearm localPosition.")]
[Range(0.01f, 2f)]
public float armLengthMlp;
// Token: 0x040003BB RID: 955
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400069E")]
[Tooltip("Evaluates stretching of the arm by target distance relative to arm length. Value at time 1 represents stretching amount at the point where distance to the target is equal to arm length. Value at time 2 represents stretching amount at the point where distance to the target is double the arm length. Value represents the amount of stretching. Linear stretching would be achieved with a linear curve going up by 45 degrees. Increase the range of stretching by moving the last key up and right at the same amount. Smoothing in the curve can help reduce elbow snapping (start stretching the arm slightly before target distance reaches arm length). To get a good optimal value for this curve, please go to the 'VRIK (Basic)' demo scene and copy the stretch curve over from the Pilot character.")]
public AnimationCurve stretchCurve;
// Token: 0x040003BC RID: 956
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400069F")]
[HideInInspector]
[NonSerialized]
public Vector3 IKPosition;
// Token: 0x040003BD RID: 957
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x40006A0")]
[HideInInspector]
[NonSerialized]
public Quaternion IKRotation;
// Token: 0x040003BE RID: 958
[FieldOffset(Offset = "0xB4")]
[Token(Token = "0x40006A1")]
[HideInInspector]
[NonSerialized]
public Vector3 bendDirection;
// Token: 0x040003BF RID: 959
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x40006A2")]
[HideInInspector]
[NonSerialized]
public Vector3 handPositionOffset;
// Token: 0x040003C2 RID: 962
[FieldOffset(Offset = "0xE8")]
[Token(Token = "0x40006A5")]
private bool hasShoulder;
// Token: 0x040003C3 RID: 963
[FieldOffset(Offset = "0xEC")]
[Token(Token = "0x40006A6")]
private Vector3 chestForwardAxis;
// Token: 0x040003C4 RID: 964
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x40006A7")]
private Vector3 chestUpAxis;
// Token: 0x040003C5 RID: 965
[FieldOffset(Offset = "0x104")]
[Token(Token = "0x40006A8")]
private Quaternion chestRotation;
// Token: 0x040003C6 RID: 966
[FieldOffset(Offset = "0x114")]
[Token(Token = "0x40006A9")]
private Vector3 chestForward;
// Token: 0x040003C7 RID: 967
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x40006AA")]
private Vector3 chestUp;
// Token: 0x040003C8 RID: 968
[FieldOffset(Offset = "0x12C")]
[Token(Token = "0x40006AB")]
private Quaternion forearmRelToUpperArm;
// Token: 0x040003C9 RID: 969
[FieldOffset(Offset = "0x13C")]
[Token(Token = "0x40006AC")]
private Vector3 upperArmBendAxis;
// Token: 0x040003CA RID: 970
[Token(Token = "0x40006AD")]
private const float yawOffsetAngle = 45f;
// Token: 0x040003CB RID: 971
[Token(Token = "0x40006AE")]
private const float pitchOffsetAngle = -30f;
// Token: 0x02000086 RID: 134
[Token(Token = "0x200012F")]
[Serializable]
public enum ShoulderRotationMode
{
// Token: 0x040003CD RID: 973
[Token(Token = "0x4000878")]
YawPitch,
// Token: 0x040003CE RID: 974
[Token(Token = "0x4000879")]
FromTo
}
}
// Token: 0x02000087 RID: 135
[Token(Token = "0x20000ED")]
[Serializable]
public abstract class BodyPart
{
// Token: 0x0600045B RID: 1115
[Token(Token = "0x60006DA")]
[Address(Slot = "4")]
protected abstract void OnRead(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index);
// Token: 0x0600045C RID: 1116
[Token(Token = "0x60006DB")]
[Address(Slot = "5")]
public abstract void PreSolve();
// Token: 0x0600045D RID: 1117
[Token(Token = "0x60006DC")]
[Address(Slot = "6")]
public abstract void Write(ref Vector3[] solvedPositions, ref Quaternion[] solvedRotations);
// Token: 0x0600045E RID: 1118
[Token(Token = "0x60006DD")]
[Address(Slot = "7")]
public abstract void ApplyOffsets(float scale);
// Token: 0x0600045F RID: 1119
[Token(Token = "0x60006DE")]
[Address(Slot = "8")]
public abstract void ResetOffsets();
// Token: 0x17000077 RID: 119
// (get) Token: 0x06000460 RID: 1120 RVA: 0x00003D98 File Offset: 0x00001F98
// (set) Token: 0x06000461 RID: 1121 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000A5")]
public float sqrMag
{
[Token(Token = "0x60006DF")]
[Address(RVA = "0x5ABDD0", Offset = "0x5AADD0", VA = "0x1805ABDD0")]
[CompilerGenerated]
get
{
return 0f;
}
[Token(Token = "0x60006E0")]
[Address(RVA = "0x5ABE90", Offset = "0x5AAE90", VA = "0x1805ABE90")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x17000078 RID: 120
// (get) Token: 0x06000462 RID: 1122 RVA: 0x00003DB0 File Offset: 0x00001FB0
// (set) Token: 0x06000463 RID: 1123 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000A6")]
public float mag
{
[Token(Token = "0x60006E1")]
[Address(RVA = "0x7A91E0", Offset = "0x7A81E0", VA = "0x1807A91E0")]
[CompilerGenerated]
get
{
return 0f;
}
[Token(Token = "0x60006E2")]
[Address(RVA = "0x7A9200", Offset = "0x7A8200", VA = "0x1807A9200")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x06000464 RID: 1124 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E3")]
[Address(RVA = "0xB8D160", Offset = "0xB8C160", VA = "0x180B8D160")]
public void SetLOD(int LOD)
{
}
// Token: 0x06000465 RID: 1125 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E4")]
[Address(RVA = "0x1002F30", Offset = "0x1001F30", VA = "0x181002F30")]
public void Read(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index)
{
}
// Token: 0x06000466 RID: 1126 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E5")]
[Address(RVA = "0x1002C90", Offset = "0x1001C90", VA = "0x181002C90")]
public void MovePosition(Vector3 position)
{
}
// Token: 0x06000467 RID: 1127 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E6")]
[Address(RVA = "0x1002E60", Offset = "0x1001E60", VA = "0x181002E60")]
public void MoveRotation(Quaternion rotation)
{
}
// Token: 0x06000468 RID: 1128 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E7")]
[Address(RVA = "0x10033F0", Offset = "0x10023F0", VA = "0x1810033F0")]
public void Translate(Vector3 position, Quaternion rotation)
{
}
// Token: 0x06000469 RID: 1129 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E8")]
[Address(RVA = "0x10031E0", Offset = "0x10021E0", VA = "0x1810031E0")]
public void TranslateRoot(Vector3 newRootPos, Quaternion newRootRot)
{
}
// Token: 0x0600046A RID: 1130 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006E9")]
[Address(RVA = "0x1003040", Offset = "0x1002040", VA = "0x181003040")]
public void RotateTo(IKSolverVR.VirtualBone bone, Quaternion rotation, float weight = 1f)
{
}
// Token: 0x0600046B RID: 1131 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006EA")]
[Address(RVA = "0x10034F0", Offset = "0x10024F0", VA = "0x1810034F0")]
public void Visualize(Color color)
{
}
// Token: 0x0600046C RID: 1132 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006EB")]
[Address(RVA = "0x1003660", Offset = "0x1002660", VA = "0x181003660")]
public void Visualize()
{
}
// Token: 0x0600046D RID: 1133 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006EC")]
[Address(RVA = "0x10037F0", Offset = "0x10027F0", VA = "0x1810037F0")]
protected BodyPart()
{
}
// Token: 0x040003D1 RID: 977
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40006B1")]
[HideInInspector]
public IKSolverVR.VirtualBone[] bones;
// Token: 0x040003D2 RID: 978
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40006B2")]
protected bool initiated;
// Token: 0x040003D3 RID: 979
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40006B3")]
protected Vector3 rootPosition;
// Token: 0x040003D4 RID: 980
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40006B4")]
protected Quaternion rootRotation;
// Token: 0x040003D5 RID: 981
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40006B5")]
protected int index;
// Token: 0x040003D6 RID: 982
[FieldOffset(Offset = "0x44")]
[Token(Token = "0x40006B6")]
protected int LOD;
}
// Token: 0x02000088 RID: 136
[Token(Token = "0x20000EE")]
[Serializable]
public class Footstep
{
// Token: 0x17000079 RID: 121
// (get) Token: 0x0600046E RID: 1134 RVA: 0x00003DC8 File Offset: 0x00001FC8
[Token(Token = "0x170000A7")]
public bool isStepping
{
[Token(Token = "0x60006ED")]
[Address(RVA = "0x10048B0", Offset = "0x10038B0", VA = "0x1810048B0")]
get
{
return default(bool);
}
}
// Token: 0x1700007A RID: 122
// (get) Token: 0x0600046F RID: 1135 RVA: 0x00003DE0 File Offset: 0x00001FE0
// (set) Token: 0x06000470 RID: 1136 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000A8")]
public float stepProgress
{
[Token(Token = "0x60006EE")]
[Address(RVA = "0x8148D0", Offset = "0x8138D0", VA = "0x1808148D0")]
[CompilerGenerated]
get
{
return 0f;
}
[Token(Token = "0x60006EF")]
[Address(RVA = "0x814BA0", Offset = "0x813BA0", VA = "0x180814BA0")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x06000471 RID: 1137 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F0")]
[Address(RVA = "0x1004720", Offset = "0x1003720", VA = "0x181004720")]
public Footstep(Quaternion rootRotation, Vector3 footPosition, Quaternion footRotation, Vector3 characterSpaceOffset)
{
}
// Token: 0x06000472 RID: 1138 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F1")]
[Address(RVA = "0x1003F00", Offset = "0x1002F00", VA = "0x181003F00")]
public void Reset(Quaternion rootRotation, Vector3 footPosition, Quaternion footRotation)
{
}
// Token: 0x06000473 RID: 1139 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F2")]
[Address(RVA = "0x1003F50", Offset = "0x1002F50", VA = "0x181003F50")]
public void StepTo(Vector3 p, Quaternion rootRotation, float stepThreshold)
{
}
// Token: 0x06000474 RID: 1140 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F3")]
[Address(RVA = "0x1004320", Offset = "0x1003320", VA = "0x181004320")]
public void UpdateStepping(Vector3 p, Quaternion rootRotation, float speed)
{
}
// Token: 0x06000475 RID: 1141 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F4")]
[Address(RVA = "0x1004120", Offset = "0x1003120", VA = "0x181004120")]
public void UpdateStanding(Quaternion rootRotation, float minAngle, float speed)
{
}
// Token: 0x06000476 RID: 1142 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x60006F5")]
[Address(RVA = "0x10044E0", Offset = "0x10034E0", VA = "0x1810044E0")]
public void Update(InterpolationMode interpolation, UnityEvent onStep)
{
}
// Token: 0x040003D7 RID: 983
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40006B7")]
public float stepSpeed;
// Token: 0x040003D8 RID: 984
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40006B8")]
public Vector3 characterSpaceOffset;
// Token: 0x040003D9 RID: 985
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40006B9")]
public Vector3 position;
// Token: 0x040003DA RID: 986
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40006BA")]
public Quaternion rotation;
// Token: 0x040003DB RID: 987
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x40006BB")]
public Quaternion stepToRootRot;
// Token: 0x040003DC RID: 988
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x40006BC")]
public bool isSupportLeg;
// Token: 0x040003DD RID: 989
[FieldOffset(Offset = "0x4D")]
[Token(Token = "0x40006BD")]
public bool relaxFlag;
// Token: 0x040003DF RID: 991
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x40006BF")]
public Vector3 stepFrom;
// Token: 0x040003E0 RID: 992
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40006C0")]
public Vector3 stepTo;
// Token: 0x040003E1 RID: 993
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x40006C1")]
public Quaternion stepFromRot;
// Token: 0x040003E2 RID: 994
[FieldOffset(Offset = "0x7C")]
[Token(Token = "0x40006C2")]
public Quaternion stepToRot;
// Token: 0x040003E3 RID: 995
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x40006C3")]
private Quaternion footRelativeToRoot;
// Token: 0x040003E4 RID: 996
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x40006C4")]
private float supportLegW;
// Token: 0x040003E5 RID: 997
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x40006C5")]
private float supportLegWV;
}
// Token: 0x02000089 RID: 137
[Token(Token = "0x20000EF")]
[Serializable]
public class Leg : IKSolverVR.BodyPart
{
// Token: 0x1700007B RID: 123
// (get) Token: 0x06000477 RID: 1143 RVA: 0x00003DF8 File Offset: 0x00001FF8
// (set) Token: 0x06000478 RID: 1144 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000A9")]
public Vector3 position
{
[Token(Token = "0x60006F6")]
[Address(RVA = "0x90A090", Offset = "0x909090", VA = "0x18090A090")]
[CompilerGenerated]
get
{
return default(Vector3);
}
[Token(Token = "0x60006F7")]
[Address(RVA = "0x1013460", Offset = "0x1012460", VA = "0x181013460")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x1700007C RID: 124
// (get) Token: 0x06000479 RID: 1145 RVA: 0x00003E10 File Offset: 0x00002010
// (set) Token: 0x0600047A RID: 1146 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000AA")]
public Quaternion rotation
{
[Token(Token = "0x60006F8")]
[Address(RVA = "0xD7AC90", Offset = "0xD79C90", VA = "0x180D7AC90")]
[CompilerGenerated]
get
{
return default(Quaternion);
}
[Token(Token = "0x60006F9")]
[Address(RVA = "0x1013480", Offset = "0x1012480", VA = "0x181013480")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x1700007D RID: 125
// (get) Token: 0x0600047B RID: 1147 RVA: 0x00003E28 File Offset: 0x00002028
// (set) Token: 0x0600047C RID: 1148 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000AB")]
public bool hasToes
{
[Token(Token = "0x60006FA")]
[Address(RVA = "0x44BFF0", Offset = "0x44AFF0", VA = "0x18044BFF0")]
[CompilerGenerated]
get
{
return default(bool);
}
[Token(Token = "0x60006FB")]
[Address(RVA = "0x8220B0", Offset = "0x8210B0", VA = "0x1808220B0")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x1700007E RID: 126
// (get) Token: 0x0600047D RID: 1149 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000AC")]
public IKSolverVR.VirtualBone thigh
{
[Token(Token = "0x60006FC")]
[Address(RVA = "0x1002BC0", Offset = "0x1001BC0", VA = "0x181002BC0")]
get
{
return null;
}
}
// Token: 0x1700007F RID: 127
// (get) Token: 0x0600047E RID: 1150 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000AD")]
private IKSolverVR.VirtualBone calf
{
[Token(Token = "0x60006FD")]
[Address(RVA = "0x1013360", Offset = "0x1012360", VA = "0x181013360")]
get
{
return null;
}
}
// Token: 0x17000080 RID: 128
// (get) Token: 0x0600047F RID: 1151 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000AE")]
private IKSolverVR.VirtualBone foot
{
[Token(Token = "0x60006FE")]
[Address(RVA = "0x10133A0", Offset = "0x10123A0", VA = "0x1810133A0")]
get
{
return null;
}
}
// Token: 0x17000081 RID: 129
// (get) Token: 0x06000480 RID: 1152 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000AF")]
private IKSolverVR.VirtualBone toes
{
[Token(Token = "0x60006FF")]
[Address(RVA = "0x1013420", Offset = "0x1012420", VA = "0x181013420")]
get
{
return null;
}
}
// Token: 0x17000082 RID: 130
// (get) Token: 0x06000481 RID: 1153 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000B0")]
public IKSolverVR.VirtualBone lastBone
{
[Token(Token = "0x6000700")]
[Address(RVA = "0x10133E0", Offset = "0x10123E0", VA = "0x1810133E0")]
get
{
return null;
}
}
// Token: 0x17000083 RID: 131
// (get) Token: 0x06000482 RID: 1154 RVA: 0x00003E40 File Offset: 0x00002040
// (set) Token: 0x06000483 RID: 1155 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000B1")]
public Vector3 thighRelativeToPelvis
{
[Token(Token = "0x6000701")]
[Address(RVA = "0xEF5B60", Offset = "0xEF4B60", VA = "0x180EF5B60")]
[CompilerGenerated]
get
{
return default(Vector3);
}
[Token(Token = "0x6000702")]
[Address(RVA = "0xEF5D80", Offset = "0xEF4D80", VA = "0x180EF5D80")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x06000484 RID: 1156 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000703")]
[Address(RVA = "0x1010E80", Offset = "0x100FE80", VA = "0x181010E80", Slot = "4")]
protected override void OnRead(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index)
{
}
// Token: 0x06000485 RID: 1157 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000704")]
[Address(RVA = "0x1011900", Offset = "0x1010900", VA = "0x181011900", Slot = "5")]
public override void PreSolve()
{
}
// Token: 0x06000486 RID: 1158 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000705")]
[Address(RVA = "0x100FCD0", Offset = "0x100ECD0", VA = "0x18100FCD0", Slot = "7")]
public override void ApplyOffsets(float scale)
{
}
// Token: 0x06000487 RID: 1159 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000706")]
[Address(RVA = "0x1010500", Offset = "0x100F500", VA = "0x181010500")]
private void ApplyPositionOffset(Vector3 offset, float weight)
{
}
// Token: 0x06000488 RID: 1160 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000707")]
[Address(RVA = "0x1010650", Offset = "0x100F650", VA = "0x181010650")]
private void ApplyRotationOffset(Quaternion offset, float weight)
{
}
// Token: 0x06000489 RID: 1161 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000708")]
[Address(RVA = "0x1012230", Offset = "0x1011230", VA = "0x181012230")]
public void Solve(bool stretch)
{
}
// Token: 0x0600048A RID: 1162 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000709")]
[Address(RVA = "0x10108F0", Offset = "0x100F8F0", VA = "0x1810108F0")]
private void FixTwistRotations()
{
}
// Token: 0x0600048B RID: 1163 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600070A")]
[Address(RVA = "0x10125C0", Offset = "0x10115C0", VA = "0x1810125C0")]
private void Stretching()
{
}
// Token: 0x0600048C RID: 1164 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600070B")]
[Address(RVA = "0x1012EB0", Offset = "0x1011EB0", VA = "0x181012EB0", Slot = "6")]
public override void Write(ref Vector3[] solvedPositions, ref Quaternion[] solvedRotations)
{
}
// Token: 0x0600048D RID: 1165 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600070C")]
[Address(RVA = "0x1012170", Offset = "0x1011170", VA = "0x181012170", Slot = "8")]
public override void ResetOffsets()
{
}
// Token: 0x0600048E RID: 1166 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600070D")]
[Address(RVA = "0x1013260", Offset = "0x1012260", VA = "0x181013260")]
public Leg()
{
}
// Token: 0x040003E6 RID: 998
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40006C6")]
[Tooltip("The foot/toe target. This should not be the foot tracker itself, but a child GameObject parented to it so you could adjust it's position/rotation to match the orientation of the foot/toe bone. If a toe bone is assigned in the References, the solver will match the toe bone to this target. If no toe bone assigned, foot bone will be used instead.")]
public Transform target;
// Token: 0x040003E7 RID: 999
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40006C7")]
[Tooltip("The knee will be bent towards this Transform if 'Bend Goal Weight' > 0.")]
public Transform bendGoal;
// Token: 0x040003E8 RID: 1000
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40006C8")]
[Tooltip("Positional weight of the toe/foot target. Note that if you have nulled the target, the foot will still be pulled to the last position of the target until you set this value to 0.")]
[Range(0f, 1f)]
public float positionWeight;
// Token: 0x040003E9 RID: 1001
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x40006C9")]
[Tooltip("Rotational weight of the toe/foot target. Note that if you have nulled the target, the foot will still be rotated to the last rotation of the target until you set this value to 0.")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x040003EA RID: 1002
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x40006CA")]
[Tooltip("If greater than 0, will bend the knee towards the 'Bend Goal' Transform.")]
[Range(0f, 1f)]
public float bendGoalWeight;
// Token: 0x040003EB RID: 1003
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x40006CB")]
[Tooltip("Angular offset of knee bending direction.")]
[Range(-180f, 180f)]
public float swivelOffset;
// Token: 0x040003EC RID: 1004
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40006CC")]
[Tooltip("If 0, the bend plane will be locked to the rotation of the pelvis and rotating the foot will have no effect on the knee direction. If 1, to the target rotation of the leg so that the knee will bend towards the forward axis of the foot. Values in between will be slerped between the two.")]
[Range(0f, 1f)]
public float bendToTargetWeight;
// Token: 0x040003ED RID: 1005
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x40006CD")]
[Tooltip("Use this to make the leg shorter/longer. Works by displacement of foot and calf localPosition.")]
[Range(0.01f, 2f)]
public float legLengthMlp;
// Token: 0x040003EE RID: 1006
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40006CE")]
[Tooltip("Evaluates stretching of the leg by target distance relative to leg length. Value at time 1 represents stretching amount at the point where distance to the target is equal to leg length. Value at time 1 represents stretching amount at the point where distance to the target is double the leg length. Value represents the amount of stretching. Linear stretching would be achieved with a linear curve going up by 45 degrees. Increase the range of stretching by moving the last key up and right at the same amount. Smoothing in the curve can help reduce knee snapping (start stretching the arm slightly before target distance reaches leg length). To get a good optimal value for this curve, please go to the 'VRIK (Basic)' demo scene and copy the stretch curve over from the Pilot character.")]
public AnimationCurve stretchCurve;
// Token: 0x040003EF RID: 1007
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40006CF")]
[HideInInspector]
[NonSerialized]
public Vector3 IKPosition;
// Token: 0x040003F0 RID: 1008
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x40006D0")]
[HideInInspector]
[NonSerialized]
public Quaternion IKRotation;
// Token: 0x040003F1 RID: 1009
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x40006D1")]
[HideInInspector]
[NonSerialized]
public Vector3 footPositionOffset;
// Token: 0x040003F2 RID: 1010
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x40006D2")]
[HideInInspector]
[NonSerialized]
public Vector3 heelPositionOffset;
// Token: 0x040003F3 RID: 1011
[FieldOffset(Offset = "0xAC")]
[Token(Token = "0x40006D3")]
[HideInInspector]
[NonSerialized]
public Quaternion footRotationOffset;
// Token: 0x040003F4 RID: 1012
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x40006D4")]
[HideInInspector]
[NonSerialized]
public float currentMag;
// Token: 0x040003F5 RID: 1013
[FieldOffset(Offset = "0xC0")]
[Token(Token = "0x40006D5")]
[HideInInspector]
public bool useAnimatedBendNormal;
// Token: 0x040003FA RID: 1018
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x40006DA")]
private Vector3 footPosition;
// Token: 0x040003FB RID: 1019
[FieldOffset(Offset = "0xFC")]
[Token(Token = "0x40006DB")]
private Quaternion footRotation;
// Token: 0x040003FC RID: 1020
[FieldOffset(Offset = "0x10C")]
[Token(Token = "0x40006DC")]
private Vector3 bendNormal;
// Token: 0x040003FD RID: 1021
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x40006DD")]
private Quaternion calfRelToThigh;
// Token: 0x040003FE RID: 1022
[FieldOffset(Offset = "0x128")]
[Token(Token = "0x40006DE")]
private Quaternion thighRelToFoot;
// Token: 0x040003FF RID: 1023
[FieldOffset(Offset = "0x138")]
[Token(Token = "0x40006DF")]
private Vector3 bendNormalRelToPelvis;
// Token: 0x04000400 RID: 1024
[FieldOffset(Offset = "0x144")]
[Token(Token = "0x40006E0")]
private Vector3 bendNormalRelToTarget;
}
// Token: 0x0200008A RID: 138
[Token(Token = "0x20000F0")]
[Serializable]
public class Locomotion
{
// Token: 0x17000084 RID: 132
// (get) Token: 0x0600048F RID: 1167 RVA: 0x00003E58 File Offset: 0x00002058
// (set) Token: 0x06000490 RID: 1168 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000B2")]
public Vector3 centerOfMass
{
[Token(Token = "0x600070E")]
[Address(RVA = "0x1016CB0", Offset = "0x1015CB0", VA = "0x181016CB0")]
[CompilerGenerated]
get
{
return default(Vector3);
}
[Token(Token = "0x600070F")]
[Address(RVA = "0x1016E30", Offset = "0x1015E30", VA = "0x181016E30")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x06000491 RID: 1169 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000710")]
[Address(RVA = "0x1013E60", Offset = "0x1012E60", VA = "0x181013E60")]
public void Initiate(Vector3[] positions, Quaternion[] rotations, bool hasToes, float scale)
{
}
// Token: 0x06000492 RID: 1170 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000711")]
[Address(RVA = "0x10142A0", Offset = "0x10132A0", VA = "0x1810142A0")]
public void Reset(Vector3[] positions, Quaternion[] rotations)
{
}
// Token: 0x06000493 RID: 1171 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000712")]
[Address(RVA = "0x1014230", Offset = "0x1013230", VA = "0x181014230")]
public void Relax()
{
}
// Token: 0x06000494 RID: 1172 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000713")]
[Address(RVA = "0x10136C0", Offset = "0x10126C0", VA = "0x1810136C0")]
public void AddDeltaRotation(Quaternion delta, Vector3 pivot)
{
}
// Token: 0x06000495 RID: 1173 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000714")]
[Address(RVA = "0x1013490", Offset = "0x1012490", VA = "0x181013490")]
public void AddDeltaPosition(Vector3 delta)
{
}
// Token: 0x06000496 RID: 1174 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000715")]
[Address(RVA = "0x1014690", Offset = "0x1013690", VA = "0x181014690")]
public void Solve(IKSolverVR.VirtualBone rootBone, IKSolverVR.Spine spine, IKSolverVR.Leg leftLeg, IKSolverVR.Leg rightLeg, IKSolverVR.Arm leftArm, IKSolverVR.Arm rightArm, int supportLegIndex, out Vector3 leftFootPosition, out Vector3 rightFootPosition, out Quaternion leftFootRotation, out Quaternion rightFootRotation, out float leftFootOffset, out float rightFootOffset, out float leftHeelOffset, out float rightHeelOffset, float scale)
{
}
// Token: 0x17000085 RID: 133
// (get) Token: 0x06000497 RID: 1175 RVA: 0x00003E70 File Offset: 0x00002070
[Token(Token = "0x170000B3")]
public Vector3 leftFootstepPosition
{
[Token(Token = "0x6000716")]
[Address(RVA = "0x1016CD0", Offset = "0x1015CD0", VA = "0x181016CD0")]
get
{
return default(Vector3);
}
}
// Token: 0x17000086 RID: 134
// (get) Token: 0x06000498 RID: 1176 RVA: 0x00003E88 File Offset: 0x00002088
[Token(Token = "0x170000B4")]
public Vector3 rightFootstepPosition
{
[Token(Token = "0x6000717")]
[Address(RVA = "0x1016D80", Offset = "0x1015D80", VA = "0x181016D80")]
get
{
return default(Vector3);
}
}
// Token: 0x17000087 RID: 135
// (get) Token: 0x06000499 RID: 1177 RVA: 0x00003EA0 File Offset: 0x000020A0
[Token(Token = "0x170000B5")]
public Quaternion leftFootstepRotation
{
[Token(Token = "0x6000718")]
[Address(RVA = "0x1016D30", Offset = "0x1015D30", VA = "0x181016D30")]
get
{
return default(Quaternion);
}
}
// Token: 0x17000088 RID: 136
// (get) Token: 0x0600049A RID: 1178 RVA: 0x00003EB8 File Offset: 0x000020B8
[Token(Token = "0x170000B6")]
public Quaternion rightFootstepRotation
{
[Token(Token = "0x6000719")]
[Address(RVA = "0x1016DE0", Offset = "0x1015DE0", VA = "0x181016DE0")]
get
{
return default(Quaternion);
}
}
// Token: 0x0600049B RID: 1179 RVA: 0x00003ED0 File Offset: 0x000020D0
[Token(Token = "0x600071A")]
[Address(RVA = "0x1016950", Offset = "0x1015950", VA = "0x181016950")]
private bool StepBlocked(Vector3 fromPosition, Vector3 toPosition, Vector3 rootPosition)
{
return default(bool);
}
// Token: 0x0600049C RID: 1180 RVA: 0x00003EE8 File Offset: 0x000020E8
[Token(Token = "0x600071B")]
[Address(RVA = "0x1013BB0", Offset = "0x1012BB0", VA = "0x181013BB0")]
private bool CanStep()
{
return default(bool);
}
// Token: 0x0600049D RID: 1181 RVA: 0x00003F00 File Offset: 0x00002100
[Token(Token = "0x600071C")]
[Address(RVA = "0x1013C30", Offset = "0x1012C30", VA = "0x181013C30")]
private static bool GetLineSphereCollision(Vector3 lineStart, Vector3 lineEnd, Vector3 sphereCenter, float sphereRadius)
{
return default(bool);
}
// Token: 0x0600049E RID: 1182 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600071D")]
[Address(RVA = "0x1016BB0", Offset = "0x1015BB0", VA = "0x181016BB0")]
public Locomotion()
{
}
// Token: 0x04000401 RID: 1025
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x40006E1")]
[Tooltip("Used for blending in/out of procedural locomotion.")]
[Range(0f, 1f)]
public float weight;
// Token: 0x04000402 RID: 1026
[FieldOffset(Offset = "0x14")]
[Token(Token = "0x40006E2")]
[Tooltip("Tries to maintain this distance between the legs.")]
public float footDistance;
// Token: 0x04000403 RID: 1027
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x40006E3")]
[Tooltip("Makes a step only if step target position is at least this far from the current footstep or the foot does not reach the current footstep anymore or footstep angle is past the 'Angle Threshold'.")]
public float stepThreshold;
// Token: 0x04000404 RID: 1028
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x40006E4")]
[Tooltip("Makes a step only if step target position is at least 'Step Threshold' far from the current footstep or the foot does not reach the current footstep anymore or footstep angle is past this value.")]
public float angleThreshold;
// Token: 0x04000405 RID: 1029
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x40006E5")]
[Tooltip("Multiplies angle of the center of mass - center of pressure vector. Larger value makes the character step sooner if losing balance.")]
public float comAngleMlp;
// Token: 0x04000406 RID: 1030
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x40006E6")]
[Tooltip("Maximum magnitude of head/hand target velocity used in prediction.")]
public float maxVelocity;
// Token: 0x04000407 RID: 1031
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x40006E7")]
[Tooltip("The amount of head/hand target velocity prediction.")]
public float velocityFactor;
// Token: 0x04000408 RID: 1032
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x40006E8")]
[Tooltip("How much can a leg be extended before it is forced to step to another position? 1 means fully stretched.")]
[Range(0.9f, 1f)]
public float maxLegStretch;
// Token: 0x04000409 RID: 1033
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x40006E9")]
[Tooltip("The speed of lerping the root of the character towards the horizontal mid-point of the footsteps.")]
public float rootSpeed;
// Token: 0x0400040A RID: 1034
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x40006EA")]
[Tooltip("The speed of moving a foot to the next position.")]
public float stepSpeed;
// Token: 0x0400040B RID: 1035
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x40006EB")]
[Tooltip("The height of the foot by normalized step progress (0 - 1).")]
public AnimationCurve stepHeight;
// Token: 0x0400040C RID: 1036
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x40006EC")]
[Tooltip("Reduce this value if locomotion makes the head bob too much.")]
public float maxBodyYOffset;
// Token: 0x0400040D RID: 1037
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40006ED")]
[Tooltip("The height offset of the heel by normalized step progress (0 - 1).")]
public AnimationCurve heelHeight;
// Token: 0x0400040E RID: 1038
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40006EE")]
[Tooltip("Rotates the foot while the leg is not stepping to relax the twist rotation of the leg if ideal rotation is past this angle.")]
[Range(0f, 180f)]
public float relaxLegTwistMinAngle;
// Token: 0x0400040F RID: 1039
[FieldOffset(Offset = "0x54")]
[Token(Token = "0x40006EF")]
[Tooltip("The speed of rotating the foot while the leg is not stepping to relax the twist rotation of the leg.")]
public float relaxLegTwistSpeed;
// Token: 0x04000410 RID: 1040
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x40006F0")]
[Tooltip("Interpolation mode of the step.")]
public InterpolationMode stepInterpolation;
// Token: 0x04000411 RID: 1041
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x40006F1")]
[Tooltip("Offset for the approximated center of mass.")]
public Vector3 offset;
// Token: 0x04000412 RID: 1042
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x40006F2")]
[HideInInspector]
public bool blockingEnabled;
// Token: 0x04000413 RID: 1043
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x40006F3")]
[HideInInspector]
public LayerMask blockingLayers;
// Token: 0x04000414 RID: 1044
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x40006F4")]
[HideInInspector]
public float raycastRadius;
// Token: 0x04000415 RID: 1045
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x40006F5")]
[HideInInspector]
public float raycastHeight;
// Token: 0x04000416 RID: 1046
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x40006F6")]
[Tooltip("Called when the left foot has finished a step.")]
public UnityEvent onLeftFootstep;
// Token: 0x04000417 RID: 1047
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x40006F7")]
[Tooltip("Called when the right foot has finished a step")]
public UnityEvent onRightFootstep;
// Token: 0x04000419 RID: 1049
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x40006F9")]
private IKSolverVR.Footstep[] footsteps;
// Token: 0x0400041A RID: 1050
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x40006FA")]
private Vector3 lastComPosition;
// Token: 0x0400041B RID: 1051
[FieldOffset(Offset = "0xAC")]
[Token(Token = "0x40006FB")]
private Vector3 comVelocity;
// Token: 0x0400041C RID: 1052
[FieldOffset(Offset = "0xB8")]
[Token(Token = "0x40006FC")]
private int leftFootIndex;
// Token: 0x0400041D RID: 1053
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x40006FD")]
private int rightFootIndex;
}
// Token: 0x0200008B RID: 139
[Token(Token = "0x20000F1")]
[Serializable]
public class Spine : IKSolverVR.BodyPart
{
// Token: 0x17000089 RID: 137
// (get) Token: 0x0600049F RID: 1183 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000B7")]
public IKSolverVR.VirtualBone pelvis
{
[Token(Token = "0x600071E")]
[Address(RVA = "0x101BC40", Offset = "0x101AC40", VA = "0x18101BC40")]
get
{
return null;
}
}
// Token: 0x1700008A RID: 138
// (get) Token: 0x060004A0 RID: 1184 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000B8")]
public IKSolverVR.VirtualBone firstSpineBone
{
[Token(Token = "0x600071F")]
[Address(RVA = "0x101BB80", Offset = "0x101AB80", VA = "0x18101BB80")]
get
{
return null;
}
}
// Token: 0x1700008B RID: 139
// (get) Token: 0x060004A1 RID: 1185 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000B9")]
public IKSolverVR.VirtualBone chest
{
[Token(Token = "0x6000720")]
[Address(RVA = "0x101BB10", Offset = "0x101AB10", VA = "0x18101BB10")]
get
{
return null;
}
}
// Token: 0x1700008C RID: 140
// (get) Token: 0x060004A2 RID: 1186 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000BA")]
private IKSolverVR.VirtualBone neck
{
[Token(Token = "0x6000721")]
[Address(RVA = "0x101BC00", Offset = "0x101AC00", VA = "0x18101BC00")]
get
{
return null;
}
}
// Token: 0x1700008D RID: 141
// (get) Token: 0x060004A3 RID: 1187 RVA: 0x00002050 File Offset: 0x00000250
[Token(Token = "0x170000BB")]
public IKSolverVR.VirtualBone head
{
[Token(Token = "0x6000722")]
[Address(RVA = "0x101BBC0", Offset = "0x101ABC0", VA = "0x18101BBC0")]
get
{
return null;
}
}
// Token: 0x1700008E RID: 142
// (get) Token: 0x060004A4 RID: 1188 RVA: 0x00003F18 File Offset: 0x00002118
// (set) Token: 0x060004A5 RID: 1189 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000BC")]
public Quaternion anchorRotation
{
[Token(Token = "0x6000723")]
[Address(RVA = "0xCBC940", Offset = "0xCBB940", VA = "0x180CBC940")]
[CompilerGenerated]
get
{
return default(Quaternion);
}
[Token(Token = "0x6000724")]
[Address(RVA = "0x101BC90", Offset = "0x101AC90", VA = "0x18101BC90")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x1700008F RID: 143
// (get) Token: 0x060004A6 RID: 1190 RVA: 0x00003F30 File Offset: 0x00002130
// (set) Token: 0x060004A7 RID: 1191 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x170000BD")]
public Quaternion anchorRelativeToHead
{
[Token(Token = "0x6000725")]
[Address(RVA = "0x101BB00", Offset = "0x101AB00", VA = "0x18101BB00")]
[CompilerGenerated]
get
{
return default(Quaternion);
}
[Token(Token = "0x6000726")]
[Address(RVA = "0x101BC80", Offset = "0x101AC80", VA = "0x18101BC80")]
[CompilerGenerated]
private set
{
}
}
// Token: 0x060004A8 RID: 1192 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000727")]
[Address(RVA = "0x1018E30", Offset = "0x1017E30", VA = "0x181018E30", Slot = "4")]
protected override void OnRead(Vector3[] positions, Quaternion[] rotations, bool hasChest, bool hasNeck, bool hasShoulders, bool hasToes, bool hasLegs, int rootIndex, int index)
{
}
// Token: 0x060004A9 RID: 1193 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000728")]
[Address(RVA = "0x1019C90", Offset = "0x1018C90", VA = "0x181019C90", Slot = "5")]
public override void PreSolve()
{
}
// Token: 0x060004AA RID: 1194 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000729")]
[Address(RVA = "0x1017430", Offset = "0x1016430", VA = "0x181017430", Slot = "7")]
public override void ApplyOffsets(float scale)
{
}
// Token: 0x060004AB RID: 1195 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072A")]
[Address(RVA = "0x1018220", Offset = "0x1017220", VA = "0x181018220")]
private void CalculateChestTargetRotation(IKSolverVR.VirtualBone rootBone, IKSolverVR.Arm[] arms)
{
}
// Token: 0x060004AC RID: 1196 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072B")]
[Address(RVA = "0x101A540", Offset = "0x1019540", VA = "0x18101A540")]
public void Solve(IKSolverVR.VirtualBone rootBone, IKSolverVR.Leg[] legs, IKSolverVR.Arm[] arms, float scale)
{
}
// Token: 0x060004AD RID: 1197 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072C")]
[Address(RVA = "0x1018440", Offset = "0x1017440", VA = "0x181018440")]
private void FABRIKPass(Vector3 animatedPelvisPos, Vector3 rootUp, float weight)
{
}
// Token: 0x060004AE RID: 1198 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072D")]
[Address(RVA = "0x101A0D0", Offset = "0x10190D0", VA = "0x18101A0D0")]
private void SolvePelvis()
{
}
// Token: 0x060004AF RID: 1199 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072E")]
[Address(RVA = "0x101B640", Offset = "0x101A640", VA = "0x18101B640", Slot = "6")]
public override void Write(ref Vector3[] solvedPositions, ref Quaternion[] solvedRotations)
{
}
// Token: 0x060004B0 RID: 1200 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600072F")]
[Address(RVA = "0x1019FC0", Offset = "0x1018FC0", VA = "0x181019FC0", Slot = "8")]
public override void ResetOffsets()
{
}
// Token: 0x060004B1 RID: 1201 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000730")]
[Address(RVA = "0x1016F70", Offset = "0x1015F70", VA = "0x181016F70")]
private void AdjustChestByHands(ref Quaternion chestTargetRotation, IKSolverVR.Arm[] arms)
{
}
// Token: 0x060004B2 RID: 1202 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000731")]
[Address(RVA = "0x1018730", Offset = "0x1017730", VA = "0x181018730")]
public void InverseTranslateToHead(IKSolverVR.Leg[] legs, bool limited, bool useCurrentLegMag, Vector3 offset, float w)
{
}
// Token: 0x060004B3 RID: 1203 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000732")]
[Address(RVA = "0x101B070", Offset = "0x101A070", VA = "0x18101B070")]
private void TranslatePelvis(IKSolverVR.Leg[] legs, Vector3 deltaPosition, Quaternion deltaRotation, float scale)
{
}
// Token: 0x060004B4 RID: 1204 RVA: 0x00003F48 File Offset: 0x00002148
[Token(Token = "0x6000733")]
[Address(RVA = "0x1018960", Offset = "0x1017960", VA = "0x181018960")]
private Vector3 LimitPelvisPosition(IKSolverVR.Leg[] legs, Vector3 pelvisPosition, bool useCurrentLegMag, int it = 2)
{
return default(Vector3);
}
// Token: 0x060004B5 RID: 1205 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000734")]
[Address(RVA = "0x1017B60", Offset = "0x1016B60", VA = "0x181017B60")]
private void Bend(IKSolverVR.VirtualBone[] bones, int firstIndex, int lastIndex, Quaternion targetRotation, float clampWeight, bool uniformWeight, float w)
{
}
// Token: 0x060004B6 RID: 1206 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000735")]
[Address(RVA = "0x1017E60", Offset = "0x1016E60", VA = "0x181017E60")]
private void Bend(IKSolverVR.VirtualBone[] bones, int firstIndex, int lastIndex, Quaternion targetRotation, Quaternion rotationOffset, float clampWeight, bool uniformWeight, float w)
{
}
// Token: 0x060004B7 RID: 1207 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000736")]
[Address(RVA = "0x101B910", Offset = "0x101A910", VA = "0x18101B910")]
public Spine()
{
}
// Token: 0x0400041E RID: 1054
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x40006FE")]
[Tooltip("The head target. This should not be the camera Transform itself, but a child GameObject parented to it so you could adjust it's position/rotation to match the orientation of the head bone. The best practice for setup would be to move the camera to the avatar's eyes, duplicate the avatar's head bone and parent it to the camera. Then assign the duplicate to this slot.")]
public Transform headTarget;
// Token: 0x0400041F RID: 1055
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x40006FF")]
[Tooltip("The pelvis target (optional), useful for seated rigs or if you had an additional tracker on the backpack or belt are. The best practice for setup would be to duplicate the avatar's pelvis bone and parenting it to the pelvis tracker. Then assign the duplicate to this slot.")]
public Transform pelvisTarget;
// Token: 0x04000420 RID: 1056
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4000700")]
[Tooltip("Positional weight of the head target. Note that if you have nulled the headTarget, the head will still be pulled to the last position of the headTarget until you set this value to 0.")]
[Range(0f, 1f)]
public float positionWeight;
// Token: 0x04000421 RID: 1057
[FieldOffset(Offset = "0x5C")]
[Token(Token = "0x4000701")]
[Tooltip("Rotational weight of the head target. Note that if you have nulled the headTarget, the head will still be rotated to the last rotation of the headTarget until you set this value to 0.")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x04000422 RID: 1058
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4000702")]
[Tooltip("Positional weight of the pelvis target. Note that if you have nulled the pelvisTarget, the pelvis will still be pulled to the last position of the pelvisTarget until you set this value to 0.")]
[Range(0f, 1f)]
public float pelvisPositionWeight;
// Token: 0x04000423 RID: 1059
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4000703")]
[Tooltip("Rotational weight of the pelvis target. Note that if you have nulled the pelvisTarget, the pelvis will still be rotated to the last rotation of the pelvisTarget until you set this value to 0.")]
[Range(0f, 1f)]
public float pelvisRotationWeight;
// Token: 0x04000424 RID: 1060
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4000704")]
[Tooltip("If 'Chest Goal Weight' is greater than 0, the chest will be turned towards this Transform.")]
public Transform chestGoal;
// Token: 0x04000425 RID: 1061
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4000705")]
[Tooltip("Weight of turning the chest towards the 'Chest Goal'.")]
[Range(0f, 1f)]
public float chestGoalWeight;
// Token: 0x04000426 RID: 1062
[FieldOffset(Offset = "0x74")]
[Token(Token = "0x4000706")]
[Tooltip("Minimum height of the head from the root of the character.")]
public float minHeadHeight;
// Token: 0x04000427 RID: 1063
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4000707")]
[Tooltip("Determines how much the body will follow the position of the head.")]
[Range(0f, 1f)]
public float bodyPosStiffness;
// Token: 0x04000428 RID: 1064
[FieldOffset(Offset = "0x7C")]
[Token(Token = "0x4000708")]
[Tooltip("Determines how much the body will follow the rotation of the head.")]
[Range(0f, 1f)]
public float bodyRotStiffness;
// Token: 0x04000429 RID: 1065
[FieldOffset(Offset = "0x80")]
[Token(Token = "0x4000709")]
[Tooltip("Determines how much the chest will rotate to the rotation of the head.")]
[FormerlySerializedAs("chestRotationWeight")]
[Range(0f, 1f)]
public float neckStiffness;
// Token: 0x0400042A RID: 1066
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x400070A")]
[Tooltip("The amount of rotation applied to the chest based on hand positions.")]
[Range(0f, 1f)]
public float rotateChestByHands;
// Token: 0x0400042B RID: 1067
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x400070B")]
[Tooltip("Clamps chest rotation. Value of 0.5 allows 90 degrees of rotation for the chest relative to the head. Value of 0 allows 180 degrees and value of 1 means the chest will be locked relative to the head.")]
[Range(0f, 1f)]
public float chestClampWeight;
// Token: 0x0400042C RID: 1068
[FieldOffset(Offset = "0x8C")]
[Token(Token = "0x400070C")]
[Tooltip("Clamps head rotation. Value of 0.5 allows 90 degrees of rotation for the head relative to the headTarget. Value of 0 allows 180 degrees and value of 1 means head rotation will be locked to the target.")]
[Range(0f, 1f)]
public float headClampWeight;
// Token: 0x0400042D RID: 1069
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x400070D")]
[Tooltip("Moves the body horizontally along -character.forward axis by that value when the player is crouching.")]
public float moveBodyBackWhenCrouching;
// Token: 0x0400042E RID: 1070
[FieldOffset(Offset = "0x94")]
[Token(Token = "0x400070E")]
[Tooltip("How much will the pelvis maintain it's animated position?")]
[Range(0f, 1f)]
public float maintainPelvisPosition;
// Token: 0x0400042F RID: 1071
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x400070F")]
[Tooltip("Will automatically rotate the root of the character if the head target has turned past this angle.")]
[Range(0f, 180f)]
public float maxRootAngle;
// Token: 0x04000430 RID: 1072
[FieldOffset(Offset = "0x9C")]
[Token(Token = "0x4000710")]
[Tooltip("Angular offset for root heading. Adjust this value to turn the root relative to the HMD around the vertical axis. Usefulf for fighting or shooting games where you would sometimes want the avatar to stand at an angled stance.")]
[Range(-180f, 180f)]
public float rootHeadingOffset;
// Token: 0x04000431 RID: 1073
[FieldOffset(Offset = "0xA0")]
[Token(Token = "0x4000711")]
[HideInInspector]
[NonSerialized]
public Vector3 IKPositionHead;
// Token: 0x04000432 RID: 1074
[FieldOffset(Offset = "0xAC")]
[Token(Token = "0x4000712")]
[HideInInspector]
[NonSerialized]
public Quaternion IKRotationHead;
// Token: 0x04000433 RID: 1075
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4000713")]
[HideInInspector]
[NonSerialized]
public Vector3 IKPositionPelvis;
// Token: 0x04000434 RID: 1076
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4000714")]
[HideInInspector]
[NonSerialized]
public Quaternion IKRotationPelvis;
// Token: 0x04000435 RID: 1077
[FieldOffset(Offset = "0xD8")]
[Token(Token = "0x4000715")]
[HideInInspector]
[NonSerialized]
public Vector3 goalPositionChest;
// Token: 0x04000436 RID: 1078
[FieldOffset(Offset = "0xE4")]
[Token(Token = "0x4000716")]
[HideInInspector]
[NonSerialized]
public Vector3 pelvisPositionOffset;
// Token: 0x04000437 RID: 1079
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x4000717")]
[HideInInspector]
[NonSerialized]
public Vector3 chestPositionOffset;
// Token: 0x04000438 RID: 1080
[FieldOffset(Offset = "0xFC")]
[Token(Token = "0x4000718")]
[HideInInspector]
[NonSerialized]
public Vector3 headPositionOffset;
// Token: 0x04000439 RID: 1081
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x4000719")]
[HideInInspector]
[NonSerialized]
public Quaternion pelvisRotationOffset;
// Token: 0x0400043A RID: 1082
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x400071A")]
[HideInInspector]
[NonSerialized]
public Quaternion chestRotationOffset;
// Token: 0x0400043B RID: 1083
[FieldOffset(Offset = "0x128")]
[Token(Token = "0x400071B")]
[HideInInspector]
[NonSerialized]
public Quaternion headRotationOffset;
// Token: 0x0400043C RID: 1084
[FieldOffset(Offset = "0x138")]
[Token(Token = "0x400071C")]
[HideInInspector]
[NonSerialized]
public Vector3 faceDirection;
// Token: 0x0400043D RID: 1085
[FieldOffset(Offset = "0x144")]
[Token(Token = "0x400071D")]
[HideInInspector]
[NonSerialized]
public Vector3 locomotionHeadPositionOffset;
// Token: 0x0400043E RID: 1086
[FieldOffset(Offset = "0x150")]
[Token(Token = "0x400071E")]
[HideInInspector]
[NonSerialized]
public Vector3 headPosition;
// Token: 0x04000441 RID: 1089
[FieldOffset(Offset = "0x17C")]
[Token(Token = "0x4000721")]
private Quaternion headRotation;
// Token: 0x04000442 RID: 1090
[FieldOffset(Offset = "0x18C")]
[Token(Token = "0x4000722")]
private Quaternion pelvisRotation;
// Token: 0x04000443 RID: 1091
[FieldOffset(Offset = "0x19C")]
[Token(Token = "0x4000723")]
private Quaternion anchorRelativeToPelvis;
// Token: 0x04000444 RID: 1092
[FieldOffset(Offset = "0x1AC")]
[Token(Token = "0x4000724")]
private Quaternion pelvisRelativeRotation;
// Token: 0x04000445 RID: 1093
[FieldOffset(Offset = "0x1BC")]
[Token(Token = "0x4000725")]
private Quaternion chestRelativeRotation;
// Token: 0x04000446 RID: 1094
[FieldOffset(Offset = "0x1CC")]
[Token(Token = "0x4000726")]
private Vector3 headDeltaPosition;
// Token: 0x04000447 RID: 1095
[FieldOffset(Offset = "0x1D8")]
[Token(Token = "0x4000727")]
private Quaternion pelvisDeltaRotation;
// Token: 0x04000448 RID: 1096
[FieldOffset(Offset = "0x1E8")]
[Token(Token = "0x4000728")]
private Quaternion chestTargetRotation;
// Token: 0x04000449 RID: 1097
[FieldOffset(Offset = "0x1F8")]
[Token(Token = "0x4000729")]
private int pelvisIndex;
// Token: 0x0400044A RID: 1098
[FieldOffset(Offset = "0x1FC")]
[Token(Token = "0x400072A")]
private int spineIndex;
// Token: 0x0400044B RID: 1099
[FieldOffset(Offset = "0x200")]
[Token(Token = "0x400072B")]
private int chestIndex;
// Token: 0x0400044C RID: 1100
[FieldOffset(Offset = "0x204")]
[Token(Token = "0x400072C")]
private int neckIndex;
// Token: 0x0400044D RID: 1101
[FieldOffset(Offset = "0x208")]
[Token(Token = "0x400072D")]
private int headIndex;
// Token: 0x0400044E RID: 1102
[FieldOffset(Offset = "0x20C")]
[Token(Token = "0x400072E")]
private float length;
// Token: 0x0400044F RID: 1103
[FieldOffset(Offset = "0x210")]
[Token(Token = "0x400072F")]
private bool hasChest;
// Token: 0x04000450 RID: 1104
[FieldOffset(Offset = "0x211")]
[Token(Token = "0x4000730")]
private bool hasNeck;
// Token: 0x04000451 RID: 1105
[FieldOffset(Offset = "0x212")]
[Token(Token = "0x4000731")]
private bool hasLegs;
// Token: 0x04000452 RID: 1106
[FieldOffset(Offset = "0x214")]
[Token(Token = "0x4000732")]
private float headHeight;
// Token: 0x04000453 RID: 1107
[FieldOffset(Offset = "0x218")]
[Token(Token = "0x4000733")]
private float sizeMlp;
// Token: 0x04000454 RID: 1108
[FieldOffset(Offset = "0x21C")]
[Token(Token = "0x4000734")]
private Vector3 chestForward;
}
// Token: 0x0200008C RID: 140
[Token(Token = "0x20000F2")]
[Serializable]
public enum PositionOffset
{
// Token: 0x04000456 RID: 1110
[Token(Token = "0x4000736")]
Pelvis,
// Token: 0x04000457 RID: 1111
[Token(Token = "0x4000737")]
Chest,
// Token: 0x04000458 RID: 1112
[Token(Token = "0x4000738")]
Head,
// Token: 0x04000459 RID: 1113
[Token(Token = "0x4000739")]
LeftHand,
// Token: 0x0400045A RID: 1114
[Token(Token = "0x400073A")]
RightHand,
// Token: 0x0400045B RID: 1115
[Token(Token = "0x400073B")]
LeftFoot,
// Token: 0x0400045C RID: 1116
[Token(Token = "0x400073C")]
RightFoot,
// Token: 0x0400045D RID: 1117
[Token(Token = "0x400073D")]
LeftHeel,
// Token: 0x0400045E RID: 1118
[Token(Token = "0x400073E")]
RightHeel
}
// Token: 0x0200008D RID: 141
[Token(Token = "0x20000F3")]
[Serializable]
public enum RotationOffset
{
// Token: 0x04000460 RID: 1120
[Token(Token = "0x4000740")]
Pelvis,
// Token: 0x04000461 RID: 1121
[Token(Token = "0x4000741")]
Chest,
// Token: 0x04000462 RID: 1122
[Token(Token = "0x4000742")]
Head
}
// Token: 0x0200008E RID: 142
[Token(Token = "0x20000F4")]
[Serializable]
public class VirtualBone
{
// Token: 0x060004B8 RID: 1208 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000737")]
[Address(RVA = "0x101E180", Offset = "0x101D180", VA = "0x18101E180")]
public VirtualBone(Vector3 position, Quaternion rotation)
{
}
// Token: 0x060004B9 RID: 1209 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000738")]
[Address(RVA = "0x101C320", Offset = "0x101B320", VA = "0x18101C320")]
public void Read(Vector3 position, Quaternion rotation)
{
}
// Token: 0x060004BA RID: 1210 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000739")]
[Address(RVA = "0x101DEC0", Offset = "0x101CEC0", VA = "0x18101DEC0")]
public static void SwingRotation(IKSolverVR.VirtualBone[] bones, int index, Vector3 swingTarget, float weight = 1f)
{
}
// Token: 0x060004BB RID: 1211 RVA: 0x00003F60 File Offset: 0x00002160
[Token(Token = "0x600073A")]
[Address(RVA = "0x101BEF0", Offset = "0x101AEF0", VA = "0x18101BEF0")]
public static float PreSolve(ref IKSolverVR.VirtualBone[] bones)
{
return 0f;
}
// Token: 0x060004BC RID: 1212 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600073B")]
[Address(RVA = "0x101C350", Offset = "0x101B350", VA = "0x18101C350")]
public static void RotateAroundPoint(IKSolverVR.VirtualBone[] bones, int index, Vector3 point, Quaternion rotation)
{
}
// Token: 0x060004BD RID: 1213 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600073C")]
[Address(RVA = "0x101C870", Offset = "0x101B870", VA = "0x18101C870")]
public static void RotateBy(IKSolverVR.VirtualBone[] bones, int index, Quaternion rotation)
{
}
// Token: 0x060004BE RID: 1214 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600073D")]
[Address(RVA = "0x101C590", Offset = "0x101B590", VA = "0x18101C590")]
public static void RotateBy(IKSolverVR.VirtualBone[] bones, Quaternion rotation)
{
}
// Token: 0x060004BF RID: 1215 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600073E")]
[Address(RVA = "0x101CB30", Offset = "0x101BB30", VA = "0x18101CB30")]
public static void RotateTo(IKSolverVR.VirtualBone[] bones, int index, Quaternion rotation)
{
}
// Token: 0x060004C0 RID: 1216 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x600073F")]
[Address(RVA = "0x101D6E0", Offset = "0x101C6E0", VA = "0x18101D6E0")]
public static void SolveTrigonometric(IKSolverVR.VirtualBone[] bones, int first, int second, int third, Vector3 targetPosition, Vector3 bendNormal, float weight)
{
}
// Token: 0x060004C1 RID: 1217 RVA: 0x00003F78 File Offset: 0x00002178
[Token(Token = "0x6000740")]
[Address(RVA = "0x101BCA0", Offset = "0x101ACA0", VA = "0x18101BCA0")]
private static Vector3 GetDirectionToBendPoint(Vector3 direction, float directionMag, Vector3 bendDirection, float sqrMag1, float sqrMag2)
{
return default(Vector3);
}
// Token: 0x060004C2 RID: 1218 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000741")]
[Address(RVA = "0x101D080", Offset = "0x101C080", VA = "0x18101D080")]
public static void SolveFABRIK(IKSolverVR.VirtualBone[] bones, Vector3 startPosition, Vector3 targetPosition, float weight, float minNormalizedTargetDistance, int iterations, float length, Vector3 startOffset)
{
}
// Token: 0x060004C3 RID: 1219 RVA: 0x00003F90 File Offset: 0x00002190
[Token(Token = "0x6000742")]
[Address(RVA = "0x101CF40", Offset = "0x101BF40", VA = "0x18101CF40")]
private static Vector3 SolveFABRIKJoint(Vector3 pos1, Vector3 pos2, float length)
{
return default(Vector3);
}
// Token: 0x060004C4 RID: 1220 RVA: 0x00002053 File Offset: 0x00000253
[Token(Token = "0x6000743")]
[Address(RVA = "0x101CC10", Offset = "0x101BC10", VA = "0x18101CC10")]
public static void SolveCCD(IKSolverVR.VirtualBone[] bones, Vector3 targetPosition, float weight, int iterations)
{
}
// Token: 0x04000463 RID: 1123
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4000743")]
public Vector3 readPosition;
// Token: 0x04000464 RID: 1124
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4000744")]
public Quaternion readRotation;
// Token: 0x04000465 RID: 1125
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4000745")]
public Vector3 solverPosition;
// Token: 0x04000466 RID: 1126
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4000746")]
public Quaternion solverRotation;
// Token: 0x04000467 RID: 1127
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4000747")]
public float length;
// Token: 0x04000468 RID: 1128
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4000748")]
public float sqrMag;
// Token: 0x04000469 RID: 1129
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4000749")]
public Vector3 axis;
}
}
}