Skip to content

Commit 9a5c3e4

Browse files
committed
ver 3.17.0 更新
1 parent 346bbd5 commit 9a5c3e4

7 files changed

Lines changed: 173 additions & 52 deletions

File tree

Packages/com.mimylab.fukuroudon/CHANGELOG.md

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,22 @@
66

77
利用手順は[こちら](https://github.com/mimyquality/FukuroUdon/wiki)からご確認ください。
88

9+
## [3.17.0] - 2026/3/1
10+
11+
**Added**
12+
13+
- SwivelChair2 に、座った際(と着座中にアバターを切り替えた時)に座位置を Offset の範囲内で自動調整する機能を追加しました。 [#45](https://github.com/mimyquality/FukuroUdon/issues/45)
14+
- Fix Pickup Up 枠を新設、Pickup Playform Override を追加しました。 [#46](https://github.com/mimyquality/FukuroUdon/issues/46)
15+
16+
**Changed**
17+
18+
- Pickup Handle (Grab SlideDoor) と Pickup Event Transfer (Manual ObjectSync) は Fix Pickup Up に移りました。
19+
- ActiveRelay to Component の内部処理を最適化し、だいたい全部のコンポーネントが対象になりました。
20+
21+
**Fixed**
22+
23+
VRCSDK 3.10.2 に沿ったいくつかの微修正を行いました。
24+
925
## [3.16.0] - 2026/2/1
1026

1127
**Added**
@@ -815,6 +831,7 @@
815831
- 0.2.7バージョンで、later-joiner視点でjoin直後が非アクティブだと同期しなかったのを修正しました。
816832
- 他人がピックアップした際にオブジェクトが一瞬跳ねる現象を低減しました。
817833

834+
[3.17.0]: https://github.com/mimyquality/FukuroUdon/releases/tag/3.17.0
818835
[3.16.0]: https://github.com/mimyquality/FukuroUdon/releases/tag/3.16.0
819836
[3.15.0]: https://github.com/mimyquality/FukuroUdon/releases/tag/3.15.0
820837
[3.14.0]: https://github.com/mimyquality/FukuroUdon/releases/tag/3.14.0

Packages/com.mimylab.fukuroudon/Runtime/SwivelChair2/Scripts/SC2AdjustmentSync.asset

Lines changed: 69 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ MonoBehaviour:
4343
Data:
4444
- Name:
4545
Entry: 12
46-
Data: 6
46+
Data: 7
4747
- Name:
4848
Entry: 7
4949
Data:
@@ -271,16 +271,76 @@ MonoBehaviour:
271271
Data:
272272
- Name: $k
273273
Entry: 1
274-
Data: _adjuster
274+
Data: _avatarEyeHeight
275275
- Name: $v
276276
Entry: 7
277277
Data: 15|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
278278
- Name: <Name>k__BackingField
279279
Entry: 1
280-
Data: _adjuster
280+
Data: _avatarEyeHeight
281281
- Name: <UserType>k__BackingField
282282
Entry: 7
283283
Data: 16|System.RuntimeType, mscorlib
284+
- Name:
285+
Entry: 1
286+
Data: System.Single, mscorlib
287+
- Name:
288+
Entry: 8
289+
Data:
290+
- Name: <SystemType>k__BackingField
291+
Entry: 9
292+
Data: 16
293+
- Name: <SyncMode>k__BackingField
294+
Entry: 7
295+
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
296+
- Name:
297+
Entry: 3
298+
Data: 1
299+
- Name:
300+
Entry: 8
301+
Data:
302+
- Name: <IsSerialized>k__BackingField
303+
Entry: 5
304+
Data: false
305+
- Name: _fieldAttributes
306+
Entry: 7
307+
Data: 17|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
308+
- Name:
309+
Entry: 12
310+
Data: 1
311+
- Name:
312+
Entry: 7
313+
Data: 18|UdonSharp.UdonSyncedAttribute, UdonSharp.Runtime
314+
- Name:
315+
Entry: 8
316+
Data:
317+
- Name:
318+
Entry: 13
319+
Data:
320+
- Name:
321+
Entry: 8
322+
Data:
323+
- Name:
324+
Entry: 8
325+
Data:
326+
- Name:
327+
Entry: 8
328+
Data:
329+
- Name:
330+
Entry: 7
331+
Data:
332+
- Name: $k
333+
Entry: 1
334+
Data: _adjuster
335+
- Name: $v
336+
Entry: 7
337+
Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
338+
- Name: <Name>k__BackingField
339+
Entry: 1
340+
Data: _adjuster
341+
- Name: <UserType>k__BackingField
342+
Entry: 7
343+
Data: 20|System.RuntimeType, mscorlib
284344
- Name:
285345
Entry: 1
286346
Data: MimyLab.FukuroUdon.SC2SeatAdjuster, FukuroUdon
@@ -289,7 +349,7 @@ MonoBehaviour:
289349
Data:
290350
- Name: <SystemType>k__BackingField
291351
Entry: 7
292-
Data: 17|System.RuntimeType, mscorlib
352+
Data: 21|System.RuntimeType, mscorlib
293353
- Name:
294354
Entry: 1
295355
Data: VRC.Udon.UdonBehaviour, VRC.Udon
@@ -310,7 +370,7 @@ MonoBehaviour:
310370
Data: false
311371
- Name: _fieldAttributes
312372
Entry: 7
313-
Data: 18|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
373+
Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
314374
- Name:
315375
Entry: 12
316376
Data: 0
@@ -334,13 +394,13 @@ MonoBehaviour:
334394
Data: _linkedAdjustmentSyncs
335395
- Name: $v
336396
Entry: 7
337-
Data: 19|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
397+
Data: 23|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
338398
- Name: <Name>k__BackingField
339399
Entry: 1
340400
Data: _linkedAdjustmentSyncs
341401
- Name: <UserType>k__BackingField
342402
Entry: 7
343-
Data: 20|System.RuntimeType, mscorlib
403+
Data: 24|System.RuntimeType, mscorlib
344404
- Name:
345405
Entry: 1
346406
Data: MimyLab.FukuroUdon.SC2AdjustmentSync[], FukuroUdon
@@ -349,7 +409,7 @@ MonoBehaviour:
349409
Data:
350410
- Name: <SystemType>k__BackingField
351411
Entry: 7
352-
Data: 21|System.RuntimeType, mscorlib
412+
Data: 25|System.RuntimeType, mscorlib
353413
- Name:
354414
Entry: 1
355415
Data: UnityEngine.Component[], UnityEngine.CoreModule
@@ -370,7 +430,7 @@ MonoBehaviour:
370430
Data: false
371431
- Name: _fieldAttributes
372432
Entry: 7
373-
Data: 22|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
433+
Data: 26|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
374434
- Name:
375435
Entry: 12
376436
Data: 0

Packages/com.mimylab.fukuroudon/Runtime/SwivelChair2/Scripts/SC2AdjustmentSync.cs

Lines changed: 22 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,13 @@ public class SC2AdjustmentSync : UdonSharpBehaviour
2424
[UdonSynced]
2525
internal bool _hasSaved = false;
2626
[UdonSynced]
27-
private Vector3 _localOffset;
27+
internal Vector3 _localOffset = Vector3.zero;
28+
[UdonSynced]
29+
internal float _avatarEyeHeight = 0.0f;
2830

2931
private SC2SeatAdjuster _adjuster;
3032
private SC2AdjustmentSync[] _linkedAdjustmentSyncs = null;
3133

32-
// SC2SeatAdjusterとのやりとり用、FieldChangeCallbackで連携しない
33-
public Vector3 LocalOffset
34-
{
35-
get => _localOffset;
36-
set
37-
{
38-
SetLocalOffset(value);
39-
40-
if (enableLink)
41-
{
42-
if (_linkedAdjustmentSyncs == null) { _linkedAdjustmentSyncs = GetLinkedAdjustmentSyncs(); }
43-
44-
foreach (SC2AdjustmentSync linkee in _linkedAdjustmentSyncs)
45-
{
46-
linkee.LinkLocalOffset(this);
47-
}
48-
}
49-
}
50-
}
51-
5234
private void Start()
5335
{
5436
if (!Networking.IsOwner(this.gameObject))
@@ -61,14 +43,30 @@ private void Start()
6143
_adjuster._adjustmentSync = this;
6244
}
6345

46+
public void Save(Vector3 offset, float avatarEyeHeight)
47+
{
48+
SetParameters(offset, avatarEyeHeight);
49+
50+
if (enableLink)
51+
{
52+
if (_linkedAdjustmentSyncs == null) { _linkedAdjustmentSyncs = GetLinkedAdjustmentSyncs(); }
53+
54+
foreach (SC2AdjustmentSync linkee in _linkedAdjustmentSyncs)
55+
{
56+
linkee.LinkLocalOffset(this);
57+
}
58+
}
59+
}
60+
6461
public void LinkLocalOffset(SC2AdjustmentSync linker)
6562
{
66-
SetLocalOffset(linker.LocalOffset);
63+
SetParameters(linker._localOffset, linker._avatarEyeHeight);
6764
}
6865

69-
private void SetLocalOffset(Vector3 value)
66+
private void SetParameters(Vector3 localOffset, float avatarEyeHeight)
7067
{
71-
_localOffset = value;
68+
_localOffset = localOffset;
69+
_avatarEyeHeight = avatarEyeHeight;
7270
_hasSaved = true;
7371
RequestSerialization();
7472
}

Packages/com.mimylab.fukuroudon/Runtime/SwivelChair2/Scripts/SC2SeatAdjuster.asset

Lines changed: 51 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ MonoBehaviour:
4343
Data:
4444
- Name:
4545
Entry: 12
46-
Data: 18
46+
Data: 19
4747
- Name:
4848
Entry: 7
4949
Data:
@@ -1030,10 +1030,58 @@ MonoBehaviour:
10301030
Data:
10311031
- Name: $k
10321032
Entry: 1
1033-
Data: _initialized
1033+
Data: _avatarEyeHeight
10341034
- Name: $v
10351035
Entry: 7
10361036
Data: 59|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
1037+
- Name: <Name>k__BackingField
1038+
Entry: 1
1039+
Data: _avatarEyeHeight
1040+
- Name: <UserType>k__BackingField
1041+
Entry: 9
1042+
Data: 9
1043+
- Name: <SystemType>k__BackingField
1044+
Entry: 9
1045+
Data: 9
1046+
- Name: <SyncMode>k__BackingField
1047+
Entry: 7
1048+
Data: System.Nullable`1[[UdonSharp.UdonSyncMode, UdonSharp.Runtime]], mscorlib
1049+
- Name:
1050+
Entry: 6
1051+
Data:
1052+
- Name:
1053+
Entry: 8
1054+
Data:
1055+
- Name: <IsSerialized>k__BackingField
1056+
Entry: 5
1057+
Data: false
1058+
- Name: _fieldAttributes
1059+
Entry: 7
1060+
Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
1061+
- Name:
1062+
Entry: 12
1063+
Data: 0
1064+
- Name:
1065+
Entry: 13
1066+
Data:
1067+
- Name:
1068+
Entry: 8
1069+
Data:
1070+
- Name:
1071+
Entry: 8
1072+
Data:
1073+
- Name:
1074+
Entry: 8
1075+
Data:
1076+
- Name:
1077+
Entry: 7
1078+
Data:
1079+
- Name: $k
1080+
Entry: 1
1081+
Data: _initialized
1082+
- Name: $v
1083+
Entry: 7
1084+
Data: 61|UdonSharp.Compiler.FieldDefinition, UdonSharp.Editor
10371085
- Name: <Name>k__BackingField
10381086
Entry: 1
10391087
Data: _initialized
@@ -1057,7 +1105,7 @@ MonoBehaviour:
10571105
Data: false
10581106
- Name: _fieldAttributes
10591107
Entry: 7
1060-
Data: 60|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
1108+
Data: 62|System.Collections.Generic.List`1[[System.Attribute, mscorlib]], mscorlib
10611109
- Name:
10621110
Entry: 12
10631111
Data: 0

Packages/com.mimylab.fukuroudon/Runtime/SwivelChair2/Scripts/SC2SeatAdjuster.cs

Lines changed: 11 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ public class SC2SeatAdjuster : UdonSharpBehaviour
4949
private Transform _enterPoint;
5050
private Vector3 _localOffset;
5151
private bool _hasAvatarChangedSinceStandUp = false;
52+
private float _avatarEyeHeight = 0.0f;
5253

5354
private Vector3 Offset
5455
{
@@ -75,15 +76,8 @@ private Quaternion Direction
7576
}
7677
}
7778

78-
private Vector3 LocalOffset
79-
{
80-
get => _adjustmentSync && _adjustmentSync._hasSaved ? _adjustmentSync.LocalOffset : _localOffset;
81-
set
82-
{
83-
_localOffset = value;
84-
if (_adjustmentSync) { _adjustmentSync.LocalOffset = value; }
85-
}
86-
}
79+
private Vector3 LocalOffset { get => _adjustmentSync && _adjustmentSync._hasSaved ? _adjustmentSync._localOffset : _localOffset; }
80+
private float AvatarEyeHeight { get => _adjustmentSync && _adjustmentSync._hasSaved ? _adjustmentSync._avatarEyeHeight : _avatarEyeHeight; }
8781

8882
private bool _initialized = false;
8983
private void Initialize()
@@ -122,7 +116,9 @@ public override void OnStationEntered(VRCPlayerApi player)
122116

123117
_swivelChair2.OnSitDown();
124118

125-
if (autoAdjustWhenSitting && _hasAvatarChangedSinceStandUp)
119+
if (autoAdjustWhenSitting &&
120+
_hasAvatarChangedSinceStandUp &&
121+
player.GetAvatarEyeHeightAsMeters() != AvatarEyeHeight)
126122
{
127123
SendCustomEventDelayedSeconds(nameof(AutoAdjust), 1.0f);
128124
}
@@ -134,19 +130,21 @@ public override void OnStationExited(VRCPlayerApi player)
134130

135131
_isSitting = false;
136132
_hasAvatarChangedSinceStandUp = false;
137-
LocalOffset = Offset;
133+
134+
_localOffset = _offset;
135+
_avatarEyeHeight = player.GetAvatarEyeHeightAsMeters();
136+
if (_adjustmentSync) { _adjustmentSync.Save(_offset, _avatarEyeHeight); }
138137

139138
_swivelChair2.OnStandUp();
140139
}
141140

142141
public override void OnAvatarChanged(VRCPlayerApi player)
143142
{
144143
if (!player.isLocal) { return; }
145-
if (!autoAdjustWhenSitting) { return; }
146144

147145
_hasAvatarChangedSinceStandUp = true;
148146

149-
if (_isSitting)
147+
if (autoAdjustWhenSitting && _isSitting)
150148
{
151149
SendCustomEventDelayedSeconds(nameof(AutoAdjust), 1.0f);
152150
}

Packages/com.mimylab.fukuroudon/Runtime/SwivelChair2/Scripts/SwivelChair2.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,8 +49,8 @@ private void Initialize()
4949

5050
_seatAdjuster = GetComponentInChildren<SC2SeatAdjuster>(true);
5151
_inputManager = GetComponentInChildren<SC2InputManager>(true);
52-
if (!_pickup) { _pickup = GetComponentInParent<VRCPickup>(); }
53-
if (!_caster) { _caster = GetComponentInParent<SC2Caster>(); }
52+
if (!_pickup) { _pickup = GetComponentInParent<VRCPickup>(); } // 何故か includeInactive 引数が渡せない
53+
if (!_caster) { _caster = GetComponentInParent<SC2Caster>(true); }
5454

5555
_seatAdjuster._swivelChair2 = this;
5656
_inputManager._seatAdjuster = _seatAdjuster;

Packages/com.mimylab.fukuroudon/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"name": "com.mimylab.fukuroudon",
33
"displayName": "Fukuro Udon",
4-
"version": "3.16.0",
4+
"version": "3.17.0",
55
"description": "MimyLab's U# utilitiy pack for VPM.",
66
"unity": "2022.3",
77
"author": {

0 commit comments

Comments
 (0)