Skip to content

Commit 9dff856

Browse files
committed
working on another conversion solution
1 parent db98b29 commit 9dff856

9 files changed

Lines changed: 987 additions & 13 deletions

File tree

Basis/Assets/Basis/Settings/Quality Settiings/Modified - Desktop.asset

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ MonoBehaviour:
2727
m_SupportsHDR: 1
2828
m_HDRColorBufferPrecision: 1
2929
m_MSAA: 2
30-
m_RenderScale: 0.9987758
30+
m_RenderScale: 1
3131
m_UpscalingFilter: 0
3232
m_FsrOverrideSharpness: 0
3333
m_FsrSharpness: 0.92

Basis/Assets/Basis/link.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
<assembly fullname="Base128" preserve="all" />
55
<assembly fullname="Basis Framework" preserve="all" />
66
<assembly fullname="Basis.Network.Core" preserve="all" />
7+
<assembly fullname="Basis.OpenLipSync.Runtime" preserve="all" />
78
<assembly fullname="Basis.ZeroMessenger" preserve="all" />
89
<assembly fullname="Basis.ZeroMessenger.Samples" preserve="all" />
910
<assembly fullname="Basis.uLipSync.Runtime" preserve="all" />
@@ -40,6 +41,7 @@
4041
<assembly fullname="HVR.Basis.Comms.HVRUtility" preserve="all" />
4142
<assembly fullname="LiteNetLib" preserve="all" />
4243
<assembly fullname="MeaMod.DNS" preserve="all" />
44+
<assembly fullname="Microsoft.ML.OnnxRuntime" preserve="all" />
4345
<assembly fullname="Newtonsoft.Json" preserve="all" />
4446
<assembly fullname="OpusSharp" preserve="all" />
4547
<assembly fullname="RNNoiseIntergration" preserve="all" />

Basis/Packages/com.basis.framework/Drivers/Local/BasisLocalAvatarDriver.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -118,6 +118,9 @@ public void InitialLocalCalibration(BasisLocalPlayer player)
118118
// Enter T-Pose for calibration
119119
PutAvatarIntoTPose();
120120

121+
// Capture T-pose bone rotations for the muscle conversion system
122+
Basis.Scripts.Networking.NetworkedAvatar.BasisHumanoidMuscleConversion.Calibrate(player.BasisAvatar.Animator);
123+
121124
// Initialize any physics/jiggle rigs before building the rig
122125
var JiggleRigs = player.BasisAvatar.GetComponentsInChildren<JiggleRig>();
123126
int length = JiggleRigs.Length;

Basis/Packages/com.basis.framework/Drivers/Local/BasisLocalHandDriver.cs

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -137,9 +137,9 @@ public void ReInitialize(Animator OriginalAnimator)
137137

138138
PutAvatarIntoTPose(Animator);
139139

140-
HumanPoseHandler poseHandler = new HumanPoseHandler(Animator.avatar, Animator.transform);
141140
HumanPose Tpose = new HumanPose();
142-
poseHandler.GetHumanPose(ref Tpose);
141+
Tpose.muscles = new float[95];
142+
Basis.Scripts.Networking.NetworkedAvatar.BasisHumanoidMuscleConversion.ExtractMuscles(Animator, Tpose.muscles);
143143

144144
LeftThumb = new float[4]; Array.Copy(Tpose.muscles, 55, LeftThumb, 0, 4);
145145
LeftIndex = new float[4]; Array.Copy(Tpose.muscles, 59, LeftIndex, 0, 4);
@@ -161,7 +161,7 @@ public void ReInitialize(Animator OriginalAnimator)
161161
{
162162
float x = -1f + xi * increment;
163163
float y = -1f + yi * increment;
164-
PoseGrid[xi * GridHeight + yi] = SetAndRecordPose(x, y, poseHandler, ref Tpose, allTransforms, allHasProximal);
164+
PoseGrid[xi * GridHeight + yi] = SetAndRecordPose(x, y, Animator, ref Tpose, allTransforms, allHasProximal);
165165
}
166166
}
167167

@@ -413,7 +413,7 @@ void AssignFinger(ref Quaternion[] finger)
413413

414414
private bool[] AggregateHasProximal(params bool[][] hasProximalArrays) => hasProximalArrays.SelectMany(h => h).ToArray();
415415

416-
public BasisPoseData SetAndRecordPose(float fillValue, float Splane, HumanPoseHandler poseHandler, ref HumanPose pose, Transform[] allTransforms, bool[] allHasProximal)
416+
public BasisPoseData SetAndRecordPose(float fillValue, float Splane, Animator animator, ref HumanPose pose, Transform[] allTransforms, bool[] allHasProximal)
417417
{
418418
SetMuscleData(ref LeftThumb, fillValue, Splane);
419419
SetMuscleData(ref LeftIndex, fillValue, Splane);
@@ -439,7 +439,9 @@ public BasisPoseData SetAndRecordPose(float fillValue, float Splane, HumanPoseHa
439439
Array.Copy(RightRing, 0, pose.muscles, 87, 4);
440440
Array.Copy(RightLittle, 0, pose.muscles, 91, 4);
441441

442-
poseHandler.SetHumanPose(ref pose);
442+
// Apply muscles via Burst job (replaces HumanPoseHandler.SetHumanPose)
443+
Basis.Scripts.Networking.NetworkedAvatar.BasisHumanoidMuscleConversion.ApplyMuscles(
444+
animator, pose.muscles, pose.bodyPosition, pose.bodyRotation);
443445

444446
Current = RecordCurrentPose(allTransforms, allHasProximal);
445447
return Current;

Basis/Packages/com.basis.framework/Drivers/Remote/BasisRemoteAvatarDriver.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,9 @@ public void RemoteCalibration(BasisRemotePlayer RemotePlayer)
8080
SkinnedMeshRendererLength = SkinnedMeshRenderer.Length;
8181
PutAvatarIntoTPose();
8282

83+
// Capture T-pose bone rotations for the muscle conversion system
84+
Basis.Scripts.Networking.NetworkedAvatar.BasisHumanoidMuscleConversion.Calibrate(RemotePlayer.BasisAvatar.Animator);
85+
8386
RemotePlayer.BasisAvatar.HumanScale = RemotePlayer.BasisAvatar.Animator.humanScale;
8487
RemotePlayer.BasisAvatar.Animator.applyRootMotion = false;
8588
RemotePlayer.BasisAvatar.Animator.updateMode = AnimatorUpdateMode.Normal;

0 commit comments

Comments
 (0)