Files
NobetaSource/Cpp2IL/Assembly-CSharp/RootMotion/FinalIK/FBBIKHeadEffector.cs
2023-09-06 22:09:22 +02:00

528 lines
18 KiB
C#

using System;
using Cpp2IlInjected;
using UnityEngine;
namespace RootMotion.FinalIK
{
// Token: 0x0200041E RID: 1054
[Token(Token = "0x200041E")]
public class FBBIKHeadEffector : MonoBehaviour
{
// Token: 0x06002582 RID: 9602 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002582")]
[Address(RVA = "0xA9B510", Offset = "0xA99D10", VA = "0x180A9B510")]
private void Awake()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002583 RID: 9603 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002583")]
[Address(RVA = "0xA9E5D0", Offset = "0xA9CDD0", VA = "0x180A9E5D0")]
private void OnStoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002584 RID: 9604 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002584")]
[Address(RVA = "0xA9D450", Offset = "0xA9BC50", VA = "0x180A9D450")]
private void OnFixTransforms()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002585 RID: 9605 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002585")]
[Address(RVA = "0xA9DBF0", Offset = "0xA9C3F0", VA = "0x180A9DBF0")]
private void OnPreRead()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002586 RID: 9606 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002586")]
[Address(RVA = "0xA9F250", Offset = "0xA9DA50", VA = "0x180A9F250")]
private void SpineBend()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002587 RID: 9607 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002587")]
[Address(RVA = "0xA9B930", Offset = "0xA9A130", VA = "0x180A9B930")]
private void CCDPass()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002588 RID: 9608 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002588")]
[Address(RVA = "0xA9C070", Offset = "0xA9A870", VA = "0x180A9C070")]
private void Iterate(int iteration)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002589 RID: 9609 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002589")]
[Address(RVA = "0xA9D9D0", Offset = "0xA9C1D0", VA = "0x180A9D9D0")]
private void OnPostUpdate()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258A RID: 9610 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258A")]
[Address(RVA = "0xA9BDD0", Offset = "0xA9A5D0", VA = "0x180A9BDD0")]
private void ChestDirection()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258B RID: 9611 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258B")]
[Address(RVA = "0xA9EC90", Offset = "0xA9D490", VA = "0x180A9EC90")]
private void PostStretching()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258C RID: 9612 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258C")]
[Address(RVA = "0xA9CEE0", Offset = "0xA9B6E0", VA = "0x180A9CEE0")]
private void LerpSolverPosition(IKEffector effector, Vector3 position, float weight, Vector3 offset)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258D RID: 9613 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x600258D")]
[Address(RVA = "0xA9F0C0", Offset = "0xA9D8C0", VA = "0x180A9F0C0")]
private void Solve(ref Vector3 pos1, ref Vector3 pos2, float nominalDistance)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x0600258E RID: 9614 RVA: 0x00054B84 File Offset: 0x00052D84
[Token(Token = "0x600258E")]
[Address(RVA = "0xA9D0B0", Offset = "0xA9B8B0", VA = "0x180A9D0B0")]
private void OnDestroy()
{
FullBodyBipedIK fullBodyBipedIK = this.ik;
int num = 0;
if (fullBodyBipedIK != num)
{
IKSolverFullBodyBiped solver = this.ik.solver;
IKSolver.UpdateDelegate updateDelegate = new IKSolver.UpdateDelegate(this.OnPreRead);
Delegate @delegate = Delegate.Remove(updateDelegate, updateDelegate);
int num2 = 0;
if (@delegate == 0 || @delegate != 0)
{
solver.OnPreRead = num2;
IKSolverFullBodyBiped solver2 = this.ik.solver;
IKSolver.IterationDelegate iterationDelegate = new IKSolver.IterationDelegate(this.Iterate);
Delegate delegate2 = Delegate.Remove(iterationDelegate, iterationDelegate);
if (delegate2 == 0 || delegate2 != 0)
{
solver2.OnPreIteration = delegate2;
IKSolverFullBodyBiped solver3 = this.ik.solver;
IKSolver.UpdateDelegate onPostUpdate = solver3.OnPostUpdate;
IKSolver.UpdateDelegate updateDelegate2 = new IKSolver.UpdateDelegate(this.OnPostUpdate);
Delegate delegate3 = Delegate.Remove(onPostUpdate, updateDelegate2);
if (delegate3 == 0 || delegate3 != 0)
{
solver3.OnPostUpdate = delegate3;
IKSolverFullBodyBiped solver4 = this.ik.solver;
IKSolver.UpdateDelegate updateDelegate3 = new IKSolver.UpdateDelegate(this.OnStoreDefaultLocalState);
Delegate delegate4 = Delegate.Remove(onPostUpdate, updateDelegate3);
if (delegate4 == 0 || delegate4 != 0)
{
solver4.OnStoreDefaultLocalState = delegate4;
IKSolverFullBodyBiped solver5 = this.ik.solver;
IKSolver.UpdateDelegate onFixTransforms = solver5.OnFixTransforms;
IKSolver.UpdateDelegate updateDelegate4 = new IKSolver.UpdateDelegate(this.OnFixTransforms);
Delegate delegate5 = Delegate.Remove(onFixTransforms, updateDelegate4);
if (delegate5 == 0 || delegate5 != 0)
{
solver5.OnFixTransforms = delegate5;
return;
}
}
}
}
}
throw new InvalidCastException();
}
}
// Token: 0x0600258F RID: 9615 RVA: 0x00054CEC File Offset: 0x00052EEC
[Token(Token = "0x600258F")]
[Address(RVA = "0xA9F620", Offset = "0xA9DE20", VA = "0x180A9F620")]
public FBBIKHeadEffector()
{
int num = 0;
this.bodyWeight = 0.8f;
this.thighWeight = 0.8f;
this.handsPullBody = true;
this.bodyClampWeight = 0.5f;
this.headClampWeight = 0.5f;
this.bendWeight = 1f;
FBBIKHeadEffector.BendBone[] array = new FBBIKHeadEffector.BendBone[num];
this.bendBones = array;
this.CCDWeight = 1f;
int num2 = 0;
this.damper = 500f;
Transform[] array2 = new Transform[num2];
this.CCDBones = array2;
this.postStretchWeight = 1f;
int num3 = 0;
this.maxStretch = 0.1f;
Transform[] array3 = new Transform[num3];
this.stretchBones = array3;
Vector3 forward = Vector3.forward;
int num4 = 0;
float z = forward.z;
this.chestDirection.z = z;
this.chestDirectionWeight = 1f;
Transform[] array4 = new Transform[num4];
this.chestBones = array4;
Quaternion[] array5 = new Quaternion[0];
this.ccdDefaultLocalRotations = array5;
Vector3[] array6 = new Vector3[0];
this.stretchLocalPositions = array6;
Quaternion[] array7 = new Quaternion[0];
this.stretchLocalRotations = array7;
Vector3[] array8 = new Vector3[0];
this.chestLocalPositions = array8;
Quaternion[] array9 = new Quaternion[0];
this.chestLocalRotations = array9;
base..ctor();
}
// Token: 0x04002F0C RID: 12044
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F0C")]
[Tooltip("Reference to the FBBIK component.")]
public FullBodyBipedIK ik;
// Token: 0x04002F0D RID: 12045
[FieldOffset(Offset = "0x20")]
[Token(Token = "0x4002F0D")]
[Tooltip("Master weight for positioning the head.")]
[Range(0f, 1f)]
[LargeHeader("Position")]
public float positionWeight = 1f;
// Token: 0x04002F0E RID: 12046
[FieldOffset(Offset = "0x24")]
[Token(Token = "0x4002F0E")]
[Range(0f, 1f)]
[Tooltip("The weight of moving the body along with the head")]
public float bodyWeight;
// Token: 0x04002F0F RID: 12047
[FieldOffset(Offset = "0x28")]
[Token(Token = "0x4002F0F")]
[Range(0f, 1f)]
[Tooltip("The weight of moving the thighs along with the head")]
public float thighWeight;
// Token: 0x04002F10 RID: 12048
[FieldOffset(Offset = "0x2C")]
[Token(Token = "0x4002F10")]
[Tooltip("If false, hands will not pull the head away if they are too far. Disabling this will improve performance significantly.")]
public bool handsPullBody;
// Token: 0x04002F11 RID: 12049
[FieldOffset(Offset = "0x30")]
[Token(Token = "0x4002F11")]
[LargeHeader("Rotation")]
[Tooltip("The weight of rotating the head bone after solving")]
[Range(0f, 1f)]
public float rotationWeight;
// Token: 0x04002F12 RID: 12050
[FieldOffset(Offset = "0x34")]
[Token(Token = "0x4002F12")]
[Range(0f, 1f)]
[Tooltip("Clamping the rotation of the body")]
public float bodyClampWeight;
// Token: 0x04002F13 RID: 12051
[FieldOffset(Offset = "0x38")]
[Token(Token = "0x4002F13")]
[Range(0f, 1f)]
[Tooltip("Clamping the rotation of the head")]
public float headClampWeight;
// Token: 0x04002F14 RID: 12052
[FieldOffset(Offset = "0x3C")]
[Token(Token = "0x4002F14")]
[Range(0f, 1f)]
[Tooltip("The master weight of bending/twisting the spine to the rotation of the head effector. This is similar to CCD, but uses the rotation of the head effector not the position.")]
public float bendWeight;
// Token: 0x04002F15 RID: 12053
[FieldOffset(Offset = "0x40")]
[Token(Token = "0x4002F15")]
[Tooltip("The bones to use for bending.")]
public FBBIKHeadEffector.BendBone[] bendBones;
// Token: 0x04002F16 RID: 12054
[FieldOffset(Offset = "0x48")]
[Token(Token = "0x4002F16")]
[LargeHeader("CCD")]
[Tooltip("Optional. The master weight of the CCD (Cyclic Coordinate Descent) IK effect that bends the spine towards the head effector before FBBIK solves.")]
[Range(0f, 1f)]
public float CCDWeight;
// Token: 0x04002F17 RID: 12055
[FieldOffset(Offset = "0x4C")]
[Token(Token = "0x4002F17")]
[Tooltip("The weight of rolling the bones in towards the target")]
[Range(0f, 1f)]
public float roll;
// Token: 0x04002F18 RID: 12056
[FieldOffset(Offset = "0x50")]
[Token(Token = "0x4002F18")]
[Tooltip("Smoothing the CCD effect.")]
[Range(0f, 1000f)]
public float damper;
// Token: 0x04002F19 RID: 12057
[FieldOffset(Offset = "0x58")]
[Token(Token = "0x4002F19")]
[Tooltip("Bones to use for the CCD pass. Assign spine and/or neck bones.")]
public Transform[] CCDBones;
// Token: 0x04002F1A RID: 12058
[FieldOffset(Offset = "0x60")]
[Token(Token = "0x4002F1A")]
[Tooltip("Stretching the spine/neck to help reach the target. This is useful for making sure the head stays locked relative to the VR headset. NB! Stretching is done after FBBIK has solved so if you have the hand effectors pinned and spine bones included in the 'Stretch Bones', the hands might become offset from their target positions.")]
[Range(0f, 1f)]
[LargeHeader("Stretching")]
public float postStretchWeight;
// Token: 0x04002F1B RID: 12059
[FieldOffset(Offset = "0x64")]
[Token(Token = "0x4002F1B")]
[Tooltip("Stretch magnitude limit.")]
public float maxStretch;
// Token: 0x04002F1C RID: 12060
[FieldOffset(Offset = "0x68")]
[Token(Token = "0x4002F1C")]
[Tooltip("If > 0, dampers the stretching effect.")]
public float stretchDamper;
// Token: 0x04002F1D RID: 12061
[FieldOffset(Offset = "0x6C")]
[Token(Token = "0x4002F1D")]
[Tooltip("If true, will fix head position to this Transform no matter what. Good for making sure the head will not budge away from the VR headset")]
public bool fixHead;
// Token: 0x04002F1E RID: 12062
[FieldOffset(Offset = "0x70")]
[Token(Token = "0x4002F1E")]
[Tooltip("Bones to use for stretching. The more bones you add, the less noticable the effect.")]
public Transform[] stretchBones;
// Token: 0x04002F1F RID: 12063
[FieldOffset(Offset = "0x78")]
[Token(Token = "0x4002F1F")]
[LargeHeader("Chest Direction")]
public Vector3 chestDirection;
// Token: 0x04002F20 RID: 12064
[FieldOffset(Offset = "0x84")]
[Token(Token = "0x4002F20")]
[Range(0f, 1f)]
public float chestDirectionWeight;
// Token: 0x04002F21 RID: 12065
[FieldOffset(Offset = "0x88")]
[Token(Token = "0x4002F21")]
public Transform[] chestBones;
// Token: 0x04002F22 RID: 12066
[FieldOffset(Offset = "0x90")]
[Token(Token = "0x4002F22")]
public IKSolver.UpdateDelegate OnPostHeadEffectorFK;
// Token: 0x04002F23 RID: 12067
[FieldOffset(Offset = "0x98")]
[Token(Token = "0x4002F23")]
private Vector3 offset;
// Token: 0x04002F24 RID: 12068
[FieldOffset(Offset = "0xA4")]
[Token(Token = "0x4002F24")]
private Vector3 headToBody;
// Token: 0x04002F25 RID: 12069
[FieldOffset(Offset = "0xB0")]
[Token(Token = "0x4002F25")]
private Vector3 shoulderCenterToHead;
// Token: 0x04002F26 RID: 12070
[FieldOffset(Offset = "0xBC")]
[Token(Token = "0x4002F26")]
private Vector3 headToLeftThigh;
// Token: 0x04002F27 RID: 12071
[FieldOffset(Offset = "0xC8")]
[Token(Token = "0x4002F27")]
private Vector3 headToRightThigh;
// Token: 0x04002F28 RID: 12072
[FieldOffset(Offset = "0xD4")]
[Token(Token = "0x4002F28")]
private Vector3 leftShoulderPos;
// Token: 0x04002F29 RID: 12073
[FieldOffset(Offset = "0xE0")]
[Token(Token = "0x4002F29")]
private Vector3 rightShoulderPos;
// Token: 0x04002F2A RID: 12074
[FieldOffset(Offset = "0xEC")]
[Token(Token = "0x4002F2A")]
private float shoulderDist;
// Token: 0x04002F2B RID: 12075
[FieldOffset(Offset = "0xF0")]
[Token(Token = "0x4002F2B")]
private float leftShoulderDist;
// Token: 0x04002F2C RID: 12076
[FieldOffset(Offset = "0xF4")]
[Token(Token = "0x4002F2C")]
private float rightShoulderDist;
// Token: 0x04002F2D RID: 12077
[FieldOffset(Offset = "0xF8")]
[Token(Token = "0x4002F2D")]
private Quaternion chestRotation;
// Token: 0x04002F2E RID: 12078
[FieldOffset(Offset = "0x108")]
[Token(Token = "0x4002F2E")]
private Quaternion headRotationRelativeToRoot;
// Token: 0x04002F2F RID: 12079
[FieldOffset(Offset = "0x118")]
[Token(Token = "0x4002F2F")]
private Quaternion[] ccdDefaultLocalRotations;
// Token: 0x04002F30 RID: 12080
[FieldOffset(Offset = "0x120")]
[Token(Token = "0x4002F30")]
private Vector3 headLocalPosition;
// Token: 0x04002F31 RID: 12081
[FieldOffset(Offset = "0x12C")]
[Token(Token = "0x4002F31")]
private Quaternion headLocalRotation;
// Token: 0x04002F32 RID: 12082
[FieldOffset(Offset = "0x140")]
[Token(Token = "0x4002F32")]
private Vector3[] stretchLocalPositions;
// Token: 0x04002F33 RID: 12083
[FieldOffset(Offset = "0x148")]
[Token(Token = "0x4002F33")]
private Quaternion[] stretchLocalRotations;
// Token: 0x04002F34 RID: 12084
[FieldOffset(Offset = "0x150")]
[Token(Token = "0x4002F34")]
private Vector3[] chestLocalPositions;
// Token: 0x04002F35 RID: 12085
[FieldOffset(Offset = "0x158")]
[Token(Token = "0x4002F35")]
private Quaternion[] chestLocalRotations;
// Token: 0x04002F36 RID: 12086
[FieldOffset(Offset = "0x160")]
[Token(Token = "0x4002F36")]
private int bendBonesCount;
// Token: 0x04002F37 RID: 12087
[FieldOffset(Offset = "0x164")]
[Token(Token = "0x4002F37")]
private int ccdBonesCount;
// Token: 0x04002F38 RID: 12088
[FieldOffset(Offset = "0x168")]
[Token(Token = "0x4002F38")]
private int stretchBonesCount;
// Token: 0x04002F39 RID: 12089
[FieldOffset(Offset = "0x16C")]
[Token(Token = "0x4002F39")]
private int chestBonesCount;
// Token: 0x0200041F RID: 1055
[Token(Token = "0x200041F")]
[Serializable]
public class BendBone
{
// Token: 0x06002590 RID: 9616 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002590")]
[Address(RVA = "0x66BC90", Offset = "0x66A490", VA = "0x18066BC90")]
public BendBone()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002591 RID: 9617 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002591")]
[Address(RVA = "0x66BC30", Offset = "0x66A430", VA = "0x18066BC30")]
public BendBone(Transform transform, float weight)
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002592 RID: 9618 RVA: 0x000020D3 File Offset: 0x000002D3
[Token(Token = "0x6002592")]
[Address(RVA = "0x66BBF0", Offset = "0x66A3F0", VA = "0x18066BBF0")]
public void StoreDefaultLocalState()
{
throw new AnalysisFailedException("CPP2IL failed to recover any usable IL for this method.");
}
// Token: 0x06002593 RID: 9619 RVA: 0x00054E34 File Offset: 0x00053034
[Token(Token = "0x6002593")]
[Address(RVA = "0x66BBB0", Offset = "0x66A3B0", VA = "0x18066BBB0")]
public void FixTransforms()
{
Transform transform = this.transform;
Quaternion quaternion = this.defaultLocalRotation;
transform.localRotation = quaternion;
}
// Token: 0x04002F3A RID: 12090
[FieldOffset(Offset = "0x10")]
[Token(Token = "0x4002F3A")]
[Tooltip("Assign spine and/or neck bones.")]
public Transform transform;
// Token: 0x04002F3B RID: 12091
[FieldOffset(Offset = "0x18")]
[Token(Token = "0x4002F3B")]
[Range(0f, 1f)]
[Tooltip("The weight of rotating this bone.")]
public float weight;
// Token: 0x04002F3C RID: 12092
[FieldOffset(Offset = "0x1C")]
[Token(Token = "0x4002F3C")]
private Quaternion defaultLocalRotation;
}
}
}