Skip to content

Commit 74bd648

Browse files
committed
ver 1.1.0
1 parent b23b07e commit 74bd648

File tree

5 files changed

+80
-21
lines changed

5 files changed

+80
-21
lines changed

ValheimVRM/MainPlugin.cs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ public class MainPlugin : BaseUnityPlugin
1010
{
1111
public const string PluginGuid = "com.yoship1639.plugins.valheimvrm";
1212
public const string PluginName = "ValheimVRM";
13-
public const string PluginVersion = "1.0.14.0";
13+
public const string PluginVersion = "1.1.0.0";
1414

1515
void Awake()
1616
{

ValheimVRM/VRMAnimationSync.cs

Lines changed: 67 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@ public class VRMAnimationSync : MonoBehaviour
1313
private Animator orgAnim, vrmAnim;
1414
private HumanPoseHandler orgPose, vrmPose;
1515
private HumanPose hp = new HumanPose();
16-
private float height = 0.0f;
1716
private bool ragdoll;
1817
private float offset;
1918

@@ -37,8 +36,6 @@ void PoseHandlerCreate(Animator org, Animator vrm)
3736
OnDestroy();
3837
orgPose = new HumanPoseHandler(org.avatar, org.transform);
3938
vrmPose = new HumanPoseHandler(vrm.avatar, vrm.transform);
40-
41-
height = vrmAnim.GetBoneTransform(HumanBodyBones.Hips).position.y - orgAnim.GetBoneTransform(HumanBodyBones.Hips).position.y;
4239
}
4340

4441
void OnDestroy()
@@ -49,27 +46,81 @@ void OnDestroy()
4946
vrmPose.Dispose();
5047
}
5148

52-
void Update()
49+
private float CalcFootSub()
5350
{
54-
if (ragdoll) return;
55-
for (var i = 0; i < 55; i++)
56-
{
57-
var orgTrans = orgAnim.GetBoneTransform((HumanBodyBones)i);
58-
var vrmTrans = vrmAnim.GetBoneTransform((HumanBodyBones)i);
51+
var orgRightFoot = orgAnim.GetBoneTransform(HumanBodyBones.RightFoot).position;
52+
var orgLeftFoot = orgAnim.GetBoneTransform(HumanBodyBones.LeftFoot).position;
53+
var orgArgFoot = (orgRightFoot + orgLeftFoot) * 0.5f;
5954

60-
if (i > 0 && orgTrans != null && vrmTrans != null)
61-
{
62-
orgTrans.position = vrmTrans.position;
63-
}
64-
}
55+
var vrmRightFoot = vrmAnim.GetBoneTransform(HumanBodyBones.RightFoot).position;
56+
var vrmLeftFoot = vrmAnim.GetBoneTransform(HumanBodyBones.LeftFoot).position;
57+
var vrmArgFoot = (vrmRightFoot + vrmLeftFoot) * 0.5f;
58+
59+
return (orgArgFoot - vrmArgFoot).y;
6560
}
6661

62+
private static List<int> alreadyHashes = new List<int>();
63+
64+
// 最初: -161139084
65+
// 通常: 229373857
66+
// 最初立ち上がり: -1536343465
67+
// 立ち上がり: -805461806
68+
// 座り始め: 890925016
69+
// 座り: -1544306596
70+
// 椅子: -1829310159
71+
// ベッド寝始め: 337039637
72+
// ベッド: -1603096
73+
// ベッド起き上がり: -496559199
74+
// Crouch: -2015693266
75+
76+
private static List<int> adjustHipHashes = new List<int>()
77+
{
78+
-1536343465,
79+
890925016,
80+
-1544306596,
81+
-1829310159,
82+
337039637,
83+
-1603096,
84+
-496559199,
85+
};
86+
87+
6788
void LateUpdate()
6889
{
90+
vrmAnim.transform.localPosition = Vector3.zero;
91+
var orgHipPos = orgAnim.GetBoneTransform(HumanBodyBones.Hips).position;
6992
orgPose.GetHumanPose(ref hp);
7093
vrmPose.SetHumanPose(ref hp);
7194

72-
var posY = orgAnim.GetBoneTransform(HumanBodyBones.Hips).position.y;
95+
var nameHash = orgAnim.GetCurrentAnimatorStateInfo(0).shortNameHash;
96+
var adjustFromHip = adjustHipHashes.Contains(nameHash);
97+
98+
//if (!alreadyHashes.Contains(nameHash))
99+
//{
100+
// alreadyHashes.Add(nameHash);
101+
// Debug.Log(orgAnim.GetCurrentAnimatorClipInfo(0)[0].clip.name + ": " + nameHash);
102+
//}
103+
104+
var vrmHip = vrmAnim.GetBoneTransform(HumanBodyBones.Hips);
105+
if (adjustFromHip)
106+
{
107+
vrmHip.position = orgHipPos;
108+
}
109+
110+
var adjustHeight = 0.0f;
111+
if (nameHash == 890925016 || nameHash == -1544306596 || nameHash == -1829310159) // Sitting
112+
{
113+
adjustHeight += 0.1f;
114+
}
115+
116+
if (!adjustFromHip)
117+
{
118+
adjustHeight = CalcFootSub();
119+
}
120+
121+
var pos = vrmHip.position;
122+
pos.y += adjustHeight;
123+
vrmHip.position = pos;
73124

74125
if (!ragdoll)
75126
{
@@ -85,9 +136,7 @@ void LateUpdate()
85136
}
86137
}
87138

88-
var pos = vrmAnim.transform.position;
89-
pos.y = posY + height + offset;
90-
vrmAnim.transform.position = pos;
139+
vrmAnim.transform.localPosition += Vector3.up * offset;
91140
}
92141
}
93142
}

ValheimVRM/ValheimVRM.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -348,7 +348,7 @@ static void Postfix(Player __instance)
348348

349349
var lodGroup = orgVrm.AddComponent<LODGroup>();
350350
var lod = new LOD(0.1f, orgVrm.GetComponentsInChildren<SkinnedMeshRenderer>());
351-
lodGroup.SetLODs(new LOD[]{ lod });
351+
if (Settings.ReadBool(playerName, "EnablePlayerFade", true)) lodGroup.SetLODs(new LOD[] { lod });
352352
lodGroup.RecalculateBounds();
353353

354354
var orgLodGroup = __instance.GetComponentInChildren<LODGroup>();
@@ -424,6 +424,7 @@ static void Postfix(Player __instance)
424424
{
425425
springBone.m_stiffnessForce *= stiffness;
426426
springBone.m_gravityPower *= gravity;
427+
springBone.m_updateType = VRMSpringBone.SpringBoneUpdateType.FixedUpdate;
427428
springBone.m_center = null;
428429
}
429430
}

ValheimVRM/ValheimVRM.csproj

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33
<PropertyGroup>
44
<OutputType>Library</OutputType>
55
<TargetFramework>net462</TargetFramework>
6-
<Version>1.0.14</Version>
6+
<Version>1.1.0.0</Version>
7+
<AssemblyVersion>1.1.0.0</AssemblyVersion>
78
</PropertyGroup>
89

910
<ItemGroup>

index.html

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -225,6 +225,14 @@ <h3 class="title is-3">
225225
<h3 class="title is-3">
226226
更新履歴
227227
</h3>
228+
<label class="label">ver 1.1.0</label>
229+
<ul>
230+
<li>身長の低いキャラクタでも問題なくプレイできる様に修正</li>
231+
<li>カメラがプレイヤーに近づいた時にフェードアウトさせない様にする設定項目を追加</li>
232+
<li>ベッドに寝る時、椅子に座った時、床に座った時にY位置がずれる問題を修正</li>
233+
<li>SpringBoneを物理更新時間に合わせる様に修正</li>
234+
<li>Added English notation to the settings file.</li>
235+
</ul>
228236
<label class="label">ver 1.0.14</label>
229237
<ul>
230238
<li>SpringBoneが正常に動作しなかった問題を修正</li>

0 commit comments

Comments
 (0)