Merge branch 'master' of https://github.com/vrm-c/UniVRM into asyncLoad

This commit is contained in:
Masataka SUMI
2024-05-30 17:24:04 +09:00
23 changed files with 147 additions and 52 deletions

8
.vscode/launch.json vendored
View File

@@ -1,16 +1,10 @@
{
"version": "0.2.0",
"configurations": [
{
"name": "Unity Editor",
"type": "unity",
"path": "${workspaceFolder}/Library/EditorInstance.json",
"request": "launch"
},
{
"name": "Attach to Unity",
"type": "vstuc",
"request": "attach"
}
]
}
}

View File

@@ -105,27 +105,29 @@ namespace UniGLTF
public static bool HasSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
var buildTarget = UnityEditor.Build.NamedBuildTarget.FromBuildTargetGroup(
EditorUserBuildSettings.selectedBuildTargetGroup
);
PlayerSettings.GetScriptingDefineSymbols(buildTarget, out var current);
return current.Contains(symbol);
}
public static void AddSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Concat(new[] { symbol }))
var buildTarget = UnityEditor.Build.NamedBuildTarget.FromBuildTargetGroup(
EditorUserBuildSettings.selectedBuildTargetGroup
);
PlayerSettings.GetScriptingDefineSymbols(buildTarget, out var current);
PlayerSettings.SetScriptingDefineSymbols(buildTarget, current.Append(symbol).ToArray());
}
public static void RemoveSymbol(string symbol)
{
var target = EditorUserBuildSettings.selectedBuildTargetGroup;
var current = PlayerSettings.GetScriptingDefineSymbolsForGroup(target).Split(';');
PlayerSettings.SetScriptingDefineSymbolsForGroup(target,
string.Join(";", current.Where(x => x != symbol))
var buildTarget = UnityEditor.Build.NamedBuildTarget.FromBuildTargetGroup(
EditorUserBuildSettings.selectedBuildTargetGroup
);
PlayerSettings.GetScriptingDefineSymbols(buildTarget, out var current);
PlayerSettings.SetScriptingDefineSymbols(buildTarget, current.Where(x => x != symbol).ToArray());
}
public static void ToggleSymbol(string title, string symbol)

View File

@@ -4,8 +4,8 @@ namespace UniGLTF
public static partial class PackageVersion
{
public const int MAJOR = 0;
public const int MINOR = 121;
public const int MINOR = 122;
public const int PATCH = 0;
public const string VERSION = "0.121.0";
public const string VERSION = "0.122.0";
}
}

View File

@@ -4,8 +4,8 @@ namespace UniGLTF
public static partial class UniGLTFVersion
{
public const int MAJOR = 2;
public const int MINOR = 57;
public const int MINOR = 58;
public const int PATCH = 0;
public const string VERSION = "2.57.0";
public const string VERSION = "2.58.0";
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "com.vrmc.gltf",
"version": "0.121.0",
"version": "0.122.0",
"displayName": "UniGLTF",
"description": "GLTF importer and exporter",
"unity": "2021.3",
@@ -11,7 +11,7 @@
"name": "VRM Consortium"
},
"dependencies": {
"com.vrmc.vrmshaders": "0.121.0",
"com.vrmc.vrmshaders": "0.122.0",
"com.unity.modules.animation": "1.0.0"
},
"samples": [

View File

@@ -25,7 +25,11 @@ namespace VRM
PreviewSceneManager manager = null;
// if we already instantiated a PreviewInstance previously but just lost the reference, then use that same instance instead of making a new one
#if UNITY_2022_3_OR_NEWER
var managers = GameObject.FindObjectsByType<PreviewSceneManager>(FindObjectsSortMode.InstanceID);
#else
var managers = GameObject.FindObjectsOfType<PreviewSceneManager>();
#endif
foreach (var x in managers)
{
if (x.Prefab == prefab)

View File

@@ -57,7 +57,11 @@ namespace VRM
void Reset()
{
#if UNITY_2022_3_OR_NEWER
var cameras = GameObject.FindObjectsByType<Camera>(FindObjectsSortMode.InstanceID);
#else
var cameras = GameObject.FindObjectsOfType<Camera>();
#endif
m_firstPersonCamera = Camera.main;
m_thirdPersonCameras = cameras.Where(x => x != m_firstPersonCamera).ToArray();
}

View File

@@ -20,8 +20,13 @@ namespace VRM
private void Reset()
{
#if UNITY_2022_3_OR_NEWER
m_lookAtHead = GameObject.FindFirstObjectByType<VRMLookAtHead>();
m_blinker = GameObject.FindFirstObjectByType<Blinker>();
#else
m_lookAtHead = GameObject.FindObjectOfType<VRMLookAtHead>();
m_blinker = GameObject.FindObjectOfType<Blinker>();
#endif
}
float CalcScore(Transform target)

View File

@@ -15,8 +15,8 @@ namespace VRM.FirstPersonSample
private void Reset()
{
LoadVRMButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadBVH");
LoadVRMButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadBVH");
}
}
}

View File

@@ -175,22 +175,22 @@ namespace VRM.SimpleViewer
private void Reset()
{
var buttons = GameObject.FindObjectsOfType<Button>();
var buttons = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID);
m_open = buttons.First(x => x.name == "Open");
m_reset = buttons.First(x => x.name == "ResetSpringBone");
var toggles = GameObject.FindObjectsOfType<Toggle>();
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
m_useFastSpringBone = toggles.First(x => x.name == "UseFastSpringBone");
m_enableLipSync = toggles.First(x => x.name == "EnableLipSync");
m_enableAutoBlink = toggles.First(x => x.name == "EnableAutoBlink");
var texts = GameObject.FindObjectsOfType<Text>();
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
m_version = texts.First(x => x.name == "Version");
m_src = GameObject.FindObjectOfType<HumanPoseTransfer>();
m_src = GameObject.FindFirstObjectByType<HumanPoseTransfer>();
m_target = GameObject.FindObjectOfType<TargetMover>().gameObject;
m_target = GameObject.FindFirstObjectByType<TargetMover>().gameObject;
}
Loaded m_loaded;

View File

@@ -1,6 +1,6 @@
{
"name": "com.vrmc.univrm",
"version": "0.121.0",
"version": "0.122.0",
"displayName": "VRM",
"description": "VRM importer",
"unity": "2021.3",
@@ -14,8 +14,8 @@
"name": "VRM Consortium"
},
"dependencies": {
"com.vrmc.vrmshaders": "0.121.0",
"com.vrmc.gltf": "0.121.0",
"com.vrmc.vrmshaders": "0.122.0",
"com.vrmc.gltf": "0.122.0",
"com.unity.ugui": "1.0.0"
},
"samples": [

View File

@@ -27,7 +27,11 @@ namespace UniVRM10
PreviewSceneManager manager = null;
// if we already instantiated a PreviewInstance previously but just lost the reference, then use that same instance instead of making a new one
#if UNITY_2022_3_OR_NEWER
var managers = GameObject.FindObjectsByType<PreviewSceneManager>(FindObjectsSortMode.InstanceID);
#else
var managers = GameObject.FindObjectsOfType<PreviewSceneManager>();
#endif
foreach (var x in managers)
{
if (x.Prefab == prefab)

View File

@@ -49,7 +49,11 @@ namespace UniVRM10.FastSpringBones.System
{
if (_instance) return _instance;
#if UNITY_2022_3_OR_NEWER
_instance = FindFirstObjectByType<FastSpringBoneService>();
#else
_instance = FindObjectOfType<FastSpringBoneService>();
#endif
if (_instance) return _instance;
var gameObject = new GameObject("FastSpringBone Service");

View File

@@ -156,24 +156,31 @@ namespace UniVRM10.FastSpringBones.System
BlittableLogic logic,
ref Vector3 nextTail)
{
var P = (worldTail - worldPosition).normalized;
var direction = worldTail - worldPosition;
if (direction.sqrMagnitude == 0)
{
// head側半球の球判定
ResolveSphereCollision(joint, collider, worldPosition, headTransform, maxColliderScale, logic, ref nextTail);
return;
}
var P = direction.normalized;
var Q = headTransform.position - worldPosition;
var dot = Vector3.Dot(P, Q);
if (dot <= 0)
{
// head側半球の球判定
ResolveSphereCollision(joint, collider, worldPosition, headTransform, maxColliderScale, logic, ref nextTail);
return;
}
var t = dot / P.magnitude;
if (t >= 1.0f)
if (dot >= direction.magnitude)
{
// tail側半球の球判定
ResolveSphereCollision(joint, collider, worldTail, headTransform, maxColliderScale, logic, ref nextTail);
return;
}
// head-tail上の m_transform.position との最近点
var p = worldPosition + P * t;
var p = worldPosition + P * dot;
ResolveSphereCollision(joint, collider, p, headTransform, maxColliderScale, logic, ref nextTail);
}

View File

@@ -15,8 +15,8 @@ namespace UniVRM10.FirstPersonSample
private void Reset()
{
LoadVRMButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadBVH");
LoadVRMButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadBVH");
}
}
}

View File

@@ -106,7 +106,7 @@ namespace UniVRM10.VRM10Viewer
public void Reset()
{
var texts = GameObject.FindObjectsOfType<Text>();
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
m_textModelTitle = texts.First(x => x.name == "Title (1)");
m_textModelVersion = texts.First(x => x.name == "Version (1)");
m_textModelAuthor = texts.First(x => x.name == "Author (1)");
@@ -123,7 +123,7 @@ namespace UniVRM10.VRM10Viewer
m_textDistributionLicense = texts.First(x => x.name == "LicenseType (1)");
m_textDistributionOther = texts.First(x => x.name == "OtherLicense (1)");
var images = GameObject.FindObjectsOfType<RawImage>();
var images = GameObject.FindObjectsByType<RawImage>(FindObjectsSortMode.InstanceID);
m_thumbnail = images.First(x => x.name == "RawImage");
}
@@ -205,11 +205,11 @@ namespace UniVRM10.VRM10Viewer
public void Reset()
{
var toggles = GameObject.FindObjectsOfType<Toggle>();
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
ToggleMotionTPose = toggles.First(x => x.name == "TPose");
ToggleMotionBVH = toggles.First(x => x.name == "BVH");
var groups = GameObject.FindObjectsOfType<ToggleGroup>();
var groups = GameObject.FindObjectsByType<ToggleGroup>(FindObjectsSortMode.InstanceID);
ToggleMotion = groups.First(x => x.name == "_Motion_");
}
@@ -228,12 +228,12 @@ namespace UniVRM10.VRM10Viewer
private void Reset()
{
var buttons = GameObject.FindObjectsOfType<Button>();
var buttons = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID);
m_openModel = buttons.First(x => x.name == "OpenModel");
m_openMotion = buttons.First(x => x.name == "OpenMotion");
m_pastePose = buttons.First(x => x.name == "PastePose");
var toggles = GameObject.FindObjectsOfType<Toggle>();
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
m_showBoxMan = toggles.First(x => x.name == "ShowBoxMan");
m_enableLipSync = toggles.First(x => x.name == "EnableLipSync");
m_enableAutoBlink = toggles.First(x => x.name == "EnableAutoBlink");
@@ -241,13 +241,13 @@ namespace UniVRM10.VRM10Viewer
m_useUrpMaterial = toggles.First(x => x.name == "UseUrpMaterial");
m_useAsync = toggles.First(x => x.name == "UseAsync");
var texts = GameObject.FindObjectsOfType<Text>();
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
m_version = texts.First(x => x.name == "VrmVersion");
m_texts.Reset();
m_ui.Reset();
m_target = GameObject.FindObjectOfType<VRM10TargetMover>().gameObject;
m_target = GameObject.FindFirstObjectByType<VRM10TargetMover>().gameObject;
}
Loaded m_loaded;

View File

@@ -1,6 +1,6 @@
{
"name": "com.vrmc.vrm",
"version": "0.121.0",
"version": "0.122.0",
"displayName": "VRM-1.0",
"description": "VRM-1.0 importer",
"unity": "2021.3",
@@ -14,8 +14,8 @@
"name": "VRM Consortium"
},
"dependencies": {
"com.vrmc.vrmshaders": "0.121.0",
"com.vrmc.gltf": "0.121.0"
"com.vrmc.vrmshaders": "0.122.0",
"com.vrmc.gltf": "0.122.0"
},
"samples": [
{

View File

@@ -15,8 +15,13 @@ namespace UniVRM10.FirstPersonSample
private void Reset()
{
#if UNITY_2022_3_OR_NEWER
LoadVRMButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadBVH");
#else
LoadVRMButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadBVH");
#endif
}
}
}

View File

@@ -106,7 +106,11 @@ namespace UniVRM10.VRM10Viewer
public void Reset()
{
#if UNITY_2022_3_OR_NEWER
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
#else
var texts = GameObject.FindObjectsOfType<Text>();
#endif
m_textModelTitle = texts.First(x => x.name == "Title (1)");
m_textModelVersion = texts.First(x => x.name == "Version (1)");
m_textModelAuthor = texts.First(x => x.name == "Author (1)");
@@ -123,7 +127,11 @@ namespace UniVRM10.VRM10Viewer
m_textDistributionLicense = texts.First(x => x.name == "LicenseType (1)");
m_textDistributionOther = texts.First(x => x.name == "OtherLicense (1)");
#if UNITY_2022_3_OR_NEWER
var images = GameObject.FindObjectsByType<RawImage>(FindObjectsSortMode.InstanceID);
#else
var images = GameObject.FindObjectsOfType<RawImage>();
#endif
m_thumbnail = images.First(x => x.name == "RawImage");
}
@@ -205,11 +213,19 @@ namespace UniVRM10.VRM10Viewer
public void Reset()
{
#if UNITY_2022_3_OR_NEWER
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
#else
var toggles = GameObject.FindObjectsOfType<Toggle>();
#endif
ToggleMotionTPose = toggles.First(x => x.name == "TPose");
ToggleMotionBVH = toggles.First(x => x.name == "BVH");
#if UNITY_2022_3_OR_NEWER
var groups = GameObject.FindObjectsByType<ToggleGroup>(FindObjectsSortMode.InstanceID);
#else
var groups = GameObject.FindObjectsOfType<ToggleGroup>();
#endif
ToggleMotion = groups.First(x => x.name == "_Motion_");
}
@@ -228,12 +244,20 @@ namespace UniVRM10.VRM10Viewer
private void Reset()
{
#if UNITY_2022_3_OR_NEWER
var buttons = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID);
#else
var buttons = GameObject.FindObjectsOfType<Button>();
#endif
m_openModel = buttons.First(x => x.name == "OpenModel");
m_openMotion = buttons.First(x => x.name == "OpenMotion");
m_pastePose = buttons.First(x => x.name == "PastePose");
#if UNITY_2022_3_OR_NEWER
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
#else
var toggles = GameObject.FindObjectsOfType<Toggle>();
#endif
m_showBoxMan = toggles.First(x => x.name == "ShowBoxMan");
m_enableLipSync = toggles.First(x => x.name == "EnableLipSync");
m_enableAutoBlink = toggles.First(x => x.name == "EnableAutoBlink");
@@ -241,13 +265,21 @@ namespace UniVRM10.VRM10Viewer
m_useUrpMaterial = toggles.First(x => x.name == "UseUrpMaterial");
m_useAsync = toggles.First(x => x.name == "UseAsync");
#if UNITY_2022_3_OR_NEWER
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
#else
var texts = GameObject.FindObjectsOfType<Text>();
#endif
m_version = texts.First(x => x.name == "VrmVersion");
m_texts.Reset();
m_ui.Reset();
#if UNITY_2022_3_OR_NEWER
m_target = GameObject.FindFirstObjectByType<VRM10TargetMover>().gameObject;
#else
m_target = GameObject.FindObjectOfType<VRM10TargetMover>().gameObject;
#endif
}
Loaded m_loaded;

View File

@@ -36,9 +36,20 @@ namespace VRMShaders.VRM10.MToon10.Runtime
};
var filteringSettings = FilteringSettings.defaultValue;
filteringSettings.renderQueueRange = _renderQueueRange;
#if UNITY_2022_2_OR_NEWER
var rendererListParams = new RendererListParams
{
cullingResults = renderingData.cullResults,
drawSettings = drawingSettings,
filteringSettings = filteringSettings,
};
var rendererList = context.CreateRendererList(ref rendererListParams);
cmd.DrawRendererList(rendererList);
#else
var renderStateBlock = new RenderStateBlock(RenderStateMask.Nothing);
context.DrawRenderers(renderingData.cullResults, ref drawingSettings, ref filteringSettings,
ref renderStateBlock);
#endif
}
context.ExecuteCommandBuffer(cmd);

View File

@@ -1,6 +1,6 @@
{
"name": "com.vrmc.vrmshaders",
"version": "0.121.0",
"version": "0.122.0",
"displayName": "VRM Shaders",
"description": "VRM Shaders",
"unity": "2021.3",

View File

@@ -15,8 +15,13 @@ namespace VRM.FirstPersonSample
private void Reset()
{
#if UNITY_2022_3_OR_NEWER
LoadVRMButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID).FirstOrDefault(x => x.name == "LoadBVH");
#else
LoadVRMButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadVRM");
LoadBVHButton = GameObject.FindObjectsOfType<Button>().FirstOrDefault(x => x.name == "LoadBVH");
#endif
}
}
}

View File

@@ -175,22 +175,40 @@ namespace VRM.SimpleViewer
private void Reset()
{
#if UNITY_2022_3_OR_NEWER
var buttons = GameObject.FindObjectsByType<Button>(FindObjectsSortMode.InstanceID);
#else
var buttons = GameObject.FindObjectsOfType<Button>();
#endif
m_open = buttons.First(x => x.name == "Open");
m_reset = buttons.First(x => x.name == "ResetSpringBone");
#if UNITY_2022_3_OR_NEWER
var toggles = GameObject.FindObjectsByType<Toggle>(FindObjectsSortMode.InstanceID);
#else
var toggles = GameObject.FindObjectsOfType<Toggle>();
#endif
m_useFastSpringBone = toggles.First(x => x.name == "UseFastSpringBone");
m_enableLipSync = toggles.First(x => x.name == "EnableLipSync");
m_enableAutoBlink = toggles.First(x => x.name == "EnableAutoBlink");
#if UNITY_2022_3_OR_NEWER
var texts = GameObject.FindObjectsByType<Text>(FindObjectsSortMode.InstanceID);
#else
var texts = GameObject.FindObjectsOfType<Text>();
#endif
m_version = texts.First(x => x.name == "Version");
#if UNITY_2022_3_OR_NEWER
m_src = GameObject.FindFirstObjectByType<HumanPoseTransfer>();
m_target = GameObject.FindFirstObjectByType<TargetMover>().gameObject;
#else
m_src = GameObject.FindObjectOfType<HumanPoseTransfer>();
m_target = GameObject.FindObjectOfType<TargetMover>().gameObject;
#endif
}
Loaded m_loaded;