Skip to content

Commit 22da8aa

Browse files
sohailshafiiWkfacebook-github-bot
authored andcommitted
feat(Runtime): OVRSkeleton visualizer
Summary: OVRSkeleton now has its own visualizer, similar to the one for animator. Reviewed By: andkim-meta Differential Revision: D47423657 fbshipit-source-id: 834773fbbc2197fc0af5ad75eeff0c0ad784c094
1 parent c7ddb2a commit 22da8aa

File tree

12 files changed

+1593
-4
lines changed

12 files changed

+1593
-4
lines changed
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
// Copyright (c) Meta Platforms, Inc. and affiliates.
2+
3+
using UnityEditor;
4+
using UnityEngine;
5+
6+
namespace Oculus.Movement.Utils
7+
{
8+
/// <summary>
9+
/// Custom Editor for <see cref="AnimatorBoneVisualizer"/> component.
10+
/// </summary>
11+
[CustomEditor(typeof(OVRSkeletonBoneVisualizer))]
12+
public class OVRSkeletonBoneVisualizerEditor : Editor
13+
{
14+
/// <inheritdoc />
15+
public override void OnInspectorGUI()
16+
{
17+
var script = target as OVRSkeletonBoneVisualizer;
18+
if (GUILayout.Button("Select all bones"))
19+
{
20+
if (script)
21+
{
22+
script.SelectAllBones();
23+
}
24+
}
25+
26+
if (GUILayout.Button("Clear all data"))
27+
{
28+
if (script)
29+
{
30+
script.ClearData();
31+
}
32+
}
33+
DrawDefaultInspector();
34+
}
35+
}
36+
}

Editor/Utils/OVRSkeletonBoneVisualizerEditor.cs.meta

Lines changed: 11 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Runtime/Scripts/AnimationRigging/CustomMappings.cs

Lines changed: 541 additions & 0 deletions
Large diffs are not rendered by default.

Runtime/Scripts/AnimationRigging/RiggingUtilities.cs

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,12 +31,20 @@ public static Transform FindBoneTransformFromCustomSkeleton(
3131
/// </summary>
3232
/// <param name="skeleton"><see cref="OVRSkeleton"/> to query.</param>
3333
/// <param name="boneId"><see cref="OVRSkeleton.BoneId"/> of transform to find.</param>
34-
/// <returns></returns>
34+
/// <param name="isBindPose">If bone is obtained via bind pose.</param>
35+
/// <returns>Bone transform.</returns>
3536
public static Transform FindBoneTransformFromSkeleton(
3637
OVRSkeleton skeleton,
37-
OVRSkeleton.BoneId boneId)
38+
OVRSkeleton.BoneId boneId,
39+
bool isBindPose = false)
3840
{
39-
var bones = skeleton.Bones;
41+
if (!skeleton.IsInitialized ||
42+
!skeleton.IsDataValid)
43+
{
44+
return null;
45+
}
46+
47+
var bones = isBindPose ? skeleton.BindPoses : skeleton.Bones;
4048
for (int boneIndex = 0; boneIndex < bones.Count; boneIndex++)
4149
{
4250
if (bones[boneIndex].Id == boneId)

Runtime/Scripts/Tooltips.cs

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,4 +1334,31 @@ public static class AnimatorBoneVisualizerTooltips
13341334
public const string VisualType =
13351335
"Indicates what kind of visual is desired.";
13361336
}
1337+
1338+
public static class OVRSkeletonBoneVisualizerTooltips
1339+
{
1340+
public const string OVRSkeletonComp =
1341+
"OVRSkeleton component to visualize bones for.";
1342+
1343+
public const string VisualizeBindPose =
1344+
"Whether to visualize bind pose or not.";
1345+
1346+
public const string VisualizationGuideType =
1347+
"The type of guide used to visualize bones.";
1348+
1349+
public const string MaskToVisualize =
1350+
"Mask to use for visualization.";
1351+
1352+
public const string BoneVisualData =
1353+
"Bone collection to use for visualization.";
1354+
1355+
public const string LineRendererPrefab =
1356+
"Line renderer to use for visualization.";
1357+
1358+
public const string AxisRendererPrefab =
1359+
"Axis renderer to use for visualization.";
1360+
1361+
public const string VisualType =
1362+
"Indicates what kind of visual is desired.";
1363+
}
13371364
}

0 commit comments

Comments
 (0)