mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-04-13 16:09:02 +08:00
Compare commits
No commits in common. "main" and "1.12.0" have entirely different histories.
4
.github/ProjectRoot/vpm-manifest-2022.json
vendored
4
.github/ProjectRoot/vpm-manifest-2022.json
vendored
@ -4,7 +4,7 @@
|
|||||||
"version": "3.7.4"
|
"version": "3.7.4"
|
||||||
},
|
},
|
||||||
"nadena.dev.ndmf": {
|
"nadena.dev.ndmf": {
|
||||||
"version": "1.8.0-alpha.4"
|
"version": "1.7.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"locked": {
|
"locked": {
|
||||||
@ -19,7 +19,7 @@
|
|||||||
"dependencies": {}
|
"dependencies": {}
|
||||||
},
|
},
|
||||||
"nadena.dev.ndmf": {
|
"nadena.dev.ndmf": {
|
||||||
"version": "1.8.0-alpha.4"
|
"version": "1.7.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
4
.github/workflows/deploy-pages.yml
vendored
4
.github/workflows/deploy-pages.yml
vendored
@ -41,12 +41,12 @@ jobs:
|
|||||||
build-docs:
|
build-docs:
|
||||||
name: Build documentation (latest release)
|
name: Build documentation (latest release)
|
||||||
# TODO - update to build-docs.yml
|
# TODO - update to build-docs.yml
|
||||||
uses: bdunderscore/modular-avatar/.github/workflows/build-test-docs.yml@main
|
uses: bdunderscore/modular-avatar/.github/workflows/build-test-docs.yml@docs-snapshot
|
||||||
needs:
|
needs:
|
||||||
- snapshot-docs
|
- snapshot-docs
|
||||||
with:
|
with:
|
||||||
ref: docs-snapshot
|
ref: docs-snapshot
|
||||||
prerelease: false
|
#prerelease: false TODO - uncomment once we release
|
||||||
|
|
||||||
build-docs-dev:
|
build-docs-dev:
|
||||||
name: Build documentation (main branch)
|
name: Build documentation (main branch)
|
||||||
|
2
.github/workflows/perform-release.yml
vendored
2
.github/workflows/perform-release.yml
vendored
@ -56,7 +56,7 @@ jobs:
|
|||||||
run: echo "$GITHUB_CONTEXT"
|
run: echo "$GITHUB_CONTEXT"
|
||||||
|
|
||||||
# https://github.com/orgs/community/discussions/13836#discussioncomment-8535364
|
# https://github.com/orgs/community/discussions/13836#discussioncomment-8535364
|
||||||
- uses: actions/create-github-app-token@v2
|
- uses: actions/create-github-app-token@v1
|
||||||
id: app-token
|
id: app-token
|
||||||
with:
|
with:
|
||||||
app-id: ${{ vars.RELEASER_APP_ID }}
|
app-id: ${{ vars.RELEASER_APP_ID }}
|
||||||
|
@ -19,48 +19,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
## [1.13.0-alpha.1] - [2025-04-10]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1552] Merge Blend Treeにて、メインアバターFXレイヤーと同じ名前のintやboolパラメーターがBlend Treeに含まれている場合、
|
|
||||||
パラメーター型が修正されない問題を修正
|
|
||||||
- [#1553] リアクティブコンポーネントが生成するステートに、WD設定が正しくない問題を修正
|
|
||||||
- [#1555] VRC Animator Play Audioが、Audio Sourceまでの絶対パスで設定されている場合に、相対パスのMerge Animator
|
|
||||||
コンポーネントとマージされた場合、指定されたオブジェクトが存在しないことを検出し、参照を絶対パスとして扱うように修正
|
|
||||||
- 対象のパスにオブジェクトがある場合は、相対パスとして扱われます。安定性向上のためMerge Animatorコンポーネントと同じ
|
|
||||||
指定方法を使用することをお勧めします。
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1551] Merge Animatorは、遷移のない単一のstateを持つブレンドツリーのレイヤーに対して常にWDをONに設定します。
|
|
||||||
- 一部、以前の挙動に依存したアセットとの互換性を向上させるための変更です。
|
|
||||||
|
|
||||||
## [1.13.0-alpha.0] - [2025-04-08]
|
|
||||||
|
|
||||||
### Added
|
|
||||||
- (実験的機能) VRC以外のプラットフォームのサポートを有効化
|
|
||||||
|
|
||||||
## [1.12.3] - [2025-04-05]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Additiveレイヤーの問題を修正(NDMFバージョンアップグレードによって修正)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1542] Merge Animatorは、アニメーションクリップを含む単一のstateを持つレイヤーに対してWD設定を一致させるが、
|
|
||||||
ブレンドツリーを含む場合は一致させないように変更されました。
|
|
||||||
- これにより、1.12で導入された互換性の問題が修正されます(1.12.0では、単一のstateアニメーションクリップに対してWD設定
|
|
||||||
と一致しないように変更されました)。
|
|
||||||
|
|
||||||
## [1.12.2] - [2025-04-03]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1537] アニメーターパラメーターをアニメーションさせるカーブが、`Merge Motion` コンポーネントを使用して追加された場合、
|
|
||||||
`Rename Parameters` によって更新されない問題を修正``
|
|
||||||
|
|
||||||
## [1.12.1] - [2025-04-02]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1532] Modular Avatarが新しく作成したプロジェクトでコンパイラエラーを出す問題を修正
|
|
||||||
|
|
||||||
## [1.12.0] - [2025-04-01]
|
## [1.12.0] - [2025-04-01]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -19,49 +19,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
## [1.13.0-alpha.1] - [2025-04-10]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1552] Merge Blend Tree failed to correct parameter types when the main avatar FX layer contained an int or bool
|
|
||||||
parameter with the same name as one used in the blend tree.
|
|
||||||
- [#1553] Reactive components might generate states with incorrect write default settings
|
|
||||||
- [#1555] Fixed compatibility regression from 1.11.x: VRC Animator Play Audio, when configured with an absolute path
|
|
||||||
but merged with a relative-path merge animator component, will now detect that the indicated object does not
|
|
||||||
exist, and treat the reference as an absolute path.
|
|
||||||
- Note that if there is an object in the target path, then it will be treated as a relative path. Using
|
|
||||||
addressing for Play Audio behaviors consistent with Merge Animator settings is therefore recommended as it will be
|
|
||||||
more robust.
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1551] Merge Animator will always set WD ON for single-state blendtree layers with no any state transitions.
|
|
||||||
- This fixes compatibility issues with assets which relied on the prior behavior.
|
|
||||||
|
|
||||||
## [1.13.0-alpha.0] - [2025-04-08]
|
|
||||||
|
|
||||||
### Added
|
|
||||||
- (Experimental feature) Enabled support for non-VRC platforms
|
|
||||||
|
|
||||||
## [1.12.3] - [2025-04-05]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Fixed issues with additive layers (via NDMF version upgrade)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1542] Merge Animator now will match WD settings for layers with a single state containing an animation clip,
|
|
||||||
but not if it contains a blend tree. This fixes some compatibility issues introduced in 1.12 (where the behavior
|
|
||||||
was changed to not match WD settings for single-state animation clips).
|
|
||||||
|
|
||||||
## [1.12.2] - [2025-04-03]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1537] Curves which animated animator parameters, when added using a `Merge Motion` component, would not be updated by
|
|
||||||
`Rename Parameters`
|
|
||||||
|
|
||||||
## [1.12.1] - [2025-04-02]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1532] Modular Avatar has compiler errors in a newly created project
|
|
||||||
|
|
||||||
## [1.12.0] - [2025-04-01]
|
## [1.12.0] - [2025-04-01]
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
|
@ -9,13 +9,8 @@ Modular Avatarの主な変更点をこのファイルで記録しています。
|
|||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (実験的機能) VRC以外のプラットフォームのサポートを有効化
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- [#1555] VRC Animator Play Audioが、Audio Sourceまでの絶対パスで設定されている場合に、相対パスのMerge Animator
|
|
||||||
コンポーネントとマージされた場合、指定されたオブジェクトが存在しないことを検出し、参照を絶対パスとして扱うように修正
|
|
||||||
- 対象のパスにオブジェクトがある場合は、相対パスとして扱われます。安定性向上のためMerge Animatorコンポーネントと同じ
|
|
||||||
指定方法を使用することをお勧めします。
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -25,39 +20,6 @@ Modular Avatarの主な変更点をこのファイルで記録しています。
|
|||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
## [1.12.4] - [2025-04-10]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1552] Merge Blend Treeにて、メインアバターFXレイヤーと同じ名前のintやboolパラメーターがBlend Treeに含まれている場合、
|
|
||||||
パラメーター型が修正されない問題を修正
|
|
||||||
- [#1553] リアクティブコンポーネントが生成するステートに、WD設定が正しくない問題を修正
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1551] Merge Animatorは、遷移のない単一のstateを持つブレンドツリーのレイヤーに対して常にWDをONに設定します。
|
|
||||||
- 一部、以前の挙動に依存したアセットとの互換性を向上させるための変更です。
|
|
||||||
|
|
||||||
## [1.12.3] - [2025-04-05]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Additiveレイヤーの問題を修正(NDMFバージョンアップグレードによって修正)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1542] Merge Animatorは、アニメーションクリップを含む単一のstateを持つレイヤーに対してWD設定を一致させるが、
|
|
||||||
ブレンドツリーを含む場合は一致させないように変更されました。
|
|
||||||
- これにより、1.12で導入された互換性の問題が修正されます(1.12.0では、単一のstateアニメーションクリップに対してWD設定
|
|
||||||
と一致しないように変更されました)。
|
|
||||||
|
|
||||||
## [1.12.2] - [2025-04-03]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1537] アニメーターパラメーターをアニメーションさせるカーブが、`Merge Motion` コンポーネントを使用して追加された場合、
|
|
||||||
`Rename Parameters` によって更新されない問題を修正``
|
|
||||||
|
|
||||||
## [1.12.1] - [2025-04-02]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1532] Modular Avatarが新しく作成したプロジェクトでコンパイラエラーを出す問題を修正
|
|
||||||
|
|
||||||
## [1.12.0] - [2025-04-01]
|
## [1.12.0] - [2025-04-01]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
40
CHANGELOG.md
40
CHANGELOG.md
@ -11,15 +11,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
## [Unreleased]
|
## [Unreleased]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
- (Experimental feature) Enabled support for non-VRC platforms
|
|
||||||
|
|
||||||
### Fixed
|
### Fixed
|
||||||
- [#1555] Fixed compatibility regression from 1.11.x: VRC Animator Play Audio, when configured with an absolute path
|
|
||||||
but merged with a relative-path merge animator component, will now detect that the indicated object does not
|
|
||||||
exist, and treat the reference as an absolute path.
|
|
||||||
- Note that if there is an object in the target path, then it will be treated as a relative path. Using
|
|
||||||
addressing for Play Audio behaviors consistent with Merge Animator settings is therefore recommended as it will be
|
|
||||||
more robust.
|
|
||||||
|
|
||||||
### Changed
|
### Changed
|
||||||
|
|
||||||
@ -29,39 +22,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
|
|||||||
|
|
||||||
### Deprecated
|
### Deprecated
|
||||||
|
|
||||||
## [1.12.4] - [2025-04-10]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1552] Merge Blend Tree failed to correct parameter types when the main avatar FX layer contained an int or bool
|
|
||||||
parameter with the same name as one used in the blend tree.
|
|
||||||
- [#1553] Reactive components might generate states with incorrect write default settings
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1551] Merge Animator will always set WD ON for single-state blendtree layers with no any state transitions.
|
|
||||||
- This fixes compatibility issues with assets which relied on the prior behavior.
|
|
||||||
|
|
||||||
## [1.12.3] - [2025-04-05]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- Fixed issues with additive layers (via NDMF version upgrade)
|
|
||||||
|
|
||||||
### Changed
|
|
||||||
- [#1542] Merge Animator now will match WD settings for layers with a single state containing an animation clip,
|
|
||||||
but not if it contains a blend tree. This fixes some compatibility issues introduced in 1.12 (where the behavior
|
|
||||||
was changed to not match WD settings for single-state animation clips).
|
|
||||||
- [#1551] Merge Animator will always set WD ON for single-state blendtree layers with no any state transitions.
|
|
||||||
|
|
||||||
## [1.12.2] - [2025-04-03]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1537] Curves which animated animator parameters, when added using a `Merge Motion` component, would not be updated by
|
|
||||||
`Rename Parameters`
|
|
||||||
|
|
||||||
## [1.12.1] - [2025-04-02]
|
|
||||||
|
|
||||||
### Fixed
|
|
||||||
- [#1532] Modular Avatar has compiler errors in a newly created project
|
|
||||||
|
|
||||||
## [1.12.0] - [2025-04-01]
|
## [1.12.0] - [2025-04-01]
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
@ -1,46 +0,0 @@
|
|||||||
#if MA_VRCSDK3_AVATARS
|
|
||||||
|
|
||||||
using System.Linq;
|
|
||||||
using nadena.dev.modular_avatar.core;
|
|
||||||
using nadena.dev.ndmf;
|
|
||||||
using nadena.dev.ndmf.animator;
|
|
||||||
using VRC.SDK3.Avatars.Components;
|
|
||||||
|
|
||||||
namespace nadena.dev.modular_avatar.animation
|
|
||||||
{
|
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
public class FixupAbsolutePlayAudioPass : Pass<FixupAbsolutePlayAudioPass>
|
|
||||||
{
|
|
||||||
protected override void Execute(BuildContext context)
|
|
||||||
{
|
|
||||||
// Older versions of modular avatar did not adjust Animator Play Audio paths when they were absolute paths.
|
|
||||||
// Replicate this behavior here.
|
|
||||||
|
|
||||||
// Note that this runs before any object movement.
|
|
||||||
|
|
||||||
var asc = context.Extension<AnimatorServicesContext>();
|
|
||||||
|
|
||||||
foreach (var mama in context.AvatarRootTransform.GetComponentsInChildren<ModularAvatarMergeAnimator>(true))
|
|
||||||
{
|
|
||||||
if (!mama._wasRelative) continue;
|
|
||||||
|
|
||||||
var pathPrefix = asc.ObjectPathRemapper.GetVirtualPathForObject(mama.gameObject) + "/";
|
|
||||||
|
|
||||||
foreach (var state in asc.ControllerContext.Controllers[mama].AllReachableNodes()
|
|
||||||
.OfType<VirtualState>())
|
|
||||||
{
|
|
||||||
foreach (var behavior in state.Behaviours.OfType<VRCAnimatorPlayAudio>())
|
|
||||||
{
|
|
||||||
if (asc.ObjectPathRemapper.GetObjectForPath(behavior.SourcePath) != null) continue;
|
|
||||||
if (behavior.SourcePath.StartsWith(pathPrefix))
|
|
||||||
{
|
|
||||||
behavior.SourcePath = behavior.SourcePath.Substring(pathPrefix.Length);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif
|
|
@ -1,3 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: a763cbc4bac94063b6b084ea3f4d8206
|
|
||||||
timeCreated: 1744422528
|
|
@ -23,7 +23,6 @@ namespace nadena.dev.modular_avatar.animation
|
|||||||
internal HashSet<VirtualLayer> mmdAffectedOriginalLayers = new();
|
internal HashSet<VirtualLayer> mmdAffectedOriginalLayers = new();
|
||||||
}
|
}
|
||||||
|
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class MMDRelayEarlyPass : Pass<MMDRelayEarlyPass>
|
internal class MMDRelayEarlyPass : Pass<MMDRelayEarlyPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(BuildContext context)
|
protected override void Execute(BuildContext context)
|
||||||
@ -47,7 +46,6 @@ namespace nadena.dev.modular_avatar.animation
|
|||||||
/// layer to relay this to layers which should be affected. Finally, any layer which _shouldn't_ be affected is
|
/// layer to relay this to layers which should be affected. Finally, any layer which _shouldn't_ be affected is
|
||||||
/// pushed out of the first three layers by injecting dummy layers.
|
/// pushed out of the first three layers by injecting dummy layers.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class MMDRelayPass : Pass<MMDRelayPass>
|
internal class MMDRelayPass : Pass<MMDRelayPass>
|
||||||
{
|
{
|
||||||
private const string MMDRelayParam = "__MA/Internal/MMDNotActive";
|
private const string MMDRelayParam = "__MA/Internal/MMDNotActive";
|
||||||
|
@ -13,7 +13,6 @@ using UnityEngine;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class ApplyAnimatorDefaultValuesPass : Pass<ApplyAnimatorDefaultValuesPass>
|
internal class ApplyAnimatorDefaultValuesPass : Pass<ApplyAnimatorDefaultValuesPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
|
@ -114,27 +114,19 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
// We'll now continue processing the rest as normal.
|
// We'll now continue processing the rest as normal.
|
||||||
}
|
}
|
||||||
|
|
||||||
var writeDefaults = AnalyzeLayerWriteDefaults(controller);
|
|
||||||
|
|
||||||
foreach (var component in sorted)
|
|
||||||
{
|
|
||||||
MergeSingle(context, controller, component, writeDefaults);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
internal static bool? AnalyzeLayerWriteDefaults(VirtualAnimatorController controller)
|
|
||||||
{
|
|
||||||
bool? writeDefaults = null;
|
bool? writeDefaults = null;
|
||||||
|
|
||||||
var wdStateCounter = controller.Layers
|
var wdStateCounter = controller.Layers.SelectMany(l => l.StateMachine.AllStates())
|
||||||
.Where(l => !IsWriteDefaultsSafeLayer(l))
|
|
||||||
.SelectMany(l => l.StateMachine.AllStates())
|
|
||||||
.Select(s => s.WriteDefaultValues)
|
.Select(s => s.WriteDefaultValues)
|
||||||
.GroupBy(b => b)
|
.GroupBy(b => b)
|
||||||
.ToDictionary(g => g.Key, g => g.Count());
|
.ToDictionary(g => g.Key, g => g.Count());
|
||||||
|
|
||||||
if (wdStateCounter.Count == 1) writeDefaults = wdStateCounter.First().Key;
|
if (wdStateCounter.Count == 1) writeDefaults = wdStateCounter.First().Key;
|
||||||
return writeDefaults;
|
|
||||||
|
foreach (var component in sorted)
|
||||||
|
{
|
||||||
|
MergeSingle(context, controller, component, writeDefaults);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void MergeSingle(BuildContext context, VirtualAnimatorController targetController,
|
private void MergeSingle(BuildContext context, VirtualAnimatorController targetController,
|
||||||
@ -149,7 +141,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
{
|
{
|
||||||
initialWriteDefaults = null;
|
initialWriteDefaults = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
var vac = context.PluginBuildContext.Extension<VirtualControllerContext>();
|
var vac = context.PluginBuildContext.Extension<VirtualControllerContext>();
|
||||||
|
|
||||||
if (!vac.Controllers.TryGetValue(merge, out var clonedController)) return;
|
if (!vac.Controllers.TryGetValue(merge, out var clonedController)) return;
|
||||||
@ -168,15 +160,6 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (l.StateMachine?.DefaultState?.Motion is VirtualBlendTree
|
|
||||||
&& l.StateMachine.States.Count == 1
|
|
||||||
&& l.StateMachine.StateMachines.Count == 0
|
|
||||||
&& l.StateMachine.AnyStateTransitions.Count == 0)
|
|
||||||
{
|
|
||||||
// Force WD on for single state blendtree layers
|
|
||||||
l.StateMachine.DefaultState.WriteDefaultValues = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
targetController.AddLayer(new LayerPriority(merge.layerPriority), l);
|
targetController.AddLayer(new LayerPriority(merge.layerPriority), l);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -216,14 +199,14 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
Object.DestroyImmediate(merge);
|
Object.DestroyImmediate(merge);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static bool IsWriteDefaultsSafeLayer(VirtualLayer virtualLayer)
|
private bool IsWriteDefaultsSafeLayer(VirtualLayer virtualLayer)
|
||||||
{
|
{
|
||||||
if (virtualLayer.BlendingMode == AnimatorLayerBlendingMode.Additive) return true;
|
if (virtualLayer.BlendingMode == AnimatorLayerBlendingMode.Additive) return true;
|
||||||
var sm = virtualLayer.StateMachine;
|
var sm = virtualLayer.StateMachine;
|
||||||
|
|
||||||
if (sm.StateMachines.Count != 0) return false;
|
if (sm.StateMachines.Count != 0) return false;
|
||||||
return sm.States.Count == 1 && sm.AnyStateTransitions.Count == 0 &&
|
return sm.States.Count == 1 && sm.AnyStateTransitions.Count == 0 &&
|
||||||
sm.DefaultState?.Transitions.Count == 0 && sm.DefaultState.Motion is VirtualBlendTree;
|
sm.DefaultState.Transitions.Count == 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -16,7 +16,6 @@ using Object = UnityEngine.Object;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class MergeBlendTreePass : Pass<MergeBlendTreePass>
|
internal class MergeBlendTreePass : Pass<MergeBlendTreePass>
|
||||||
{
|
{
|
||||||
internal const string ALWAYS_ONE = "__ModularAvatarInternal/One";
|
internal const string ALWAYS_ONE = "__ModularAvatarInternal/One";
|
||||||
@ -65,31 +64,14 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
|
|
||||||
foreach (var name in _parameterNames)
|
foreach (var name in _parameterNames)
|
||||||
{
|
{
|
||||||
if (fx.Parameters.TryGetValue(name, out var existingParameter))
|
if (fx.Parameters.ContainsKey(name)) continue;
|
||||||
|
|
||||||
|
fx.Parameters = fx.Parameters.SetItem(name, new AnimatorControllerParameter()
|
||||||
{
|
{
|
||||||
switch (existingParameter.type)
|
name = name,
|
||||||
{
|
type = AnimatorControllerParameterType.Float,
|
||||||
case AnimatorControllerParameterType.Bool:
|
defaultFloat = 0.0f
|
||||||
existingParameter.defaultFloat = existingParameter.defaultBool ? 1 : 0;
|
});
|
||||||
break;
|
|
||||||
case AnimatorControllerParameterType.Int:
|
|
||||||
existingParameter.defaultFloat = existingParameter.defaultInt;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
existingParameter.type = AnimatorControllerParameterType.Float;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
existingParameter = new AnimatorControllerParameter
|
|
||||||
{
|
|
||||||
name = name,
|
|
||||||
type = AnimatorControllerParameterType.Float,
|
|
||||||
defaultFloat = 0.0f
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
fx.Parameters = fx.Parameters.SetItem(name, existingParameter);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -14,7 +14,6 @@ using VRC.Dynamics;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class ConstraintConverterPass : Pass<ConstraintConverterPass>
|
internal class ConstraintConverterPass : Pass<ConstraintConverterPass>
|
||||||
{
|
{
|
||||||
#if MA_VRCSDK3_AVATARS_3_7_0_OR_NEWER
|
#if MA_VRCSDK3_AVATARS_3_7_0_OR_NEWER
|
||||||
|
@ -5,7 +5,6 @@ using nadena.dev.ndmf;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class PruneParametersPass : Pass<PruneParametersPass>
|
internal class PruneParametersPass : Pass<PruneParametersPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
|
@ -19,7 +19,6 @@ using Object = UnityEngine.Object;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor.plugin
|
namespace nadena.dev.modular_avatar.core.editor.plugin
|
||||||
{
|
{
|
||||||
[RunsOnAllPlatforms]
|
|
||||||
class PluginDefinition : Plugin<PluginDefinition>
|
class PluginDefinition : Plugin<PluginDefinition>
|
||||||
{
|
{
|
||||||
public override string QualifiedName => "nadena.dev.modular-avatar";
|
public override string QualifiedName => "nadena.dev.modular-avatar";
|
||||||
@ -59,11 +58,9 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
seq.Run(ReactiveObjectPrepass.Instance);
|
seq.Run(ReactiveObjectPrepass.Instance);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
seq.WithRequiredExtension(typeof(AnimatorServicesContext), _s2 =>
|
seq.WithRequiredExtension(typeof(AnimatorServicesContext), _s2 =>
|
||||||
{
|
{
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
seq.Run(FixupAbsolutePlayAudioPass.Instance);
|
|
||||||
seq.Run(MMDRelayEarlyPass.Instance);
|
seq.Run(MMDRelayEarlyPass.Instance);
|
||||||
seq.Run(RenameParametersPluginPass.Instance);
|
seq.Run(RenameParametersPluginPass.Instance);
|
||||||
seq.Run(ParameterAssignerPass.Instance);
|
seq.Run(ParameterAssignerPass.Instance);
|
||||||
@ -73,8 +70,7 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
|
|
||||||
seq.WithRequiredExtension(typeof(ReadablePropertyExtension), _s3 =>
|
seq.WithRequiredExtension(typeof(ReadablePropertyExtension), _s3 =>
|
||||||
{
|
{
|
||||||
// TODO - refactor out VRChat-specific bits
|
seq.Run("Shape Changer", ctx => new ReactiveObjectPass(ctx).Execute())
|
||||||
seq.Run("Reactive Components", ctx => new ReactiveObjectPass(ctx).Execute())
|
|
||||||
.PreviewingWith(new ShapeChangerPreview(), new ObjectSwitcherPreview(),
|
.PreviewingWith(new ShapeChangerPreview(), new ObjectSwitcherPreview(),
|
||||||
new MaterialSetterPreview());
|
new MaterialSetterPreview());
|
||||||
});
|
});
|
||||||
@ -86,27 +82,26 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
seq.Run(MenuInstallPluginPass.Instance);
|
seq.Run(MenuInstallPluginPass.Instance);
|
||||||
#endif
|
#endif
|
||||||
seq.Run(MergeArmaturePluginPass.Instance);
|
seq.Run(MergeArmaturePluginPass.Instance);
|
||||||
|
|
||||||
seq.Run(BoneProxyPluginPass.Instance);
|
seq.Run(BoneProxyPluginPass.Instance);
|
||||||
|
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
seq.Run(VisibleHeadAccessoryPluginPass.Instance);
|
seq.Run(VisibleHeadAccessoryPluginPass.Instance);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
seq.OnPlatforms(new[] { WellKnownPlatforms.VRChatAvatar30 }, _seq =>
|
seq.Run("World Fixed Object",
|
||||||
{
|
ctx => new WorldFixedObjectProcessor().Process(ctx)
|
||||||
seq.Run("World Fixed Object",
|
);
|
||||||
ctx => new WorldFixedObjectProcessor().Process(ctx)
|
|
||||||
);
|
|
||||||
});
|
|
||||||
seq.Run(WorldScaleObjectPass.Instance);
|
seq.Run(WorldScaleObjectPass.Instance);
|
||||||
|
|
||||||
seq.Run(ReplaceObjectPluginPass.Instance);
|
seq.Run(ReplaceObjectPluginPass.Instance);
|
||||||
|
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
seq.Run(BlendshapeSyncAnimationPluginPass.Instance);
|
seq.Run(BlendshapeSyncAnimationPluginPass.Instance);
|
||||||
seq.Run(ConstraintConverterPass.Instance);
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
seq.Run(ConstraintConverterPass.Instance);
|
||||||
|
|
||||||
seq.Run("Prune empty animator layers",
|
seq.Run("Prune empty animator layers",
|
||||||
ctx => { ctx.Extension<AnimatorServicesContext>().RemoveEmptyLayers(); });
|
ctx => { ctx.Extension<AnimatorServicesContext>().RemoveEmptyLayers(); });
|
||||||
seq.Run("Harmonize animator parameter types",
|
seq.Run("Harmonize animator parameter types",
|
||||||
@ -116,13 +111,10 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
});
|
});
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
seq.Run(PhysbonesBlockerPluginPass.Instance);
|
seq.Run(PhysbonesBlockerPluginPass.Instance);
|
||||||
seq.OnPlatforms(new[] { WellKnownPlatforms.VRChatAvatar30 }, _seq =>
|
seq.Run("Fixup Expressions Menu", ctx =>
|
||||||
{
|
{
|
||||||
seq.Run("Fixup Expressions Menu", ctx =>
|
var maContext = ctx.Extension<ModularAvatarContext>().BuildContext;
|
||||||
{
|
FixupExpressionsMenuPass.FixupExpressionsMenu(maContext);
|
||||||
var maContext = ctx.Extension<ModularAvatarContext>().BuildContext;
|
|
||||||
FixupExpressionsMenuPass.FixupExpressionsMenu(maContext);
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
seq.Run(SyncParameterSequencePass.Instance);
|
seq.Run(SyncParameterSequencePass.Instance);
|
||||||
#endif
|
#endif
|
||||||
@ -220,7 +212,6 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
class MergeAnimatorPluginPass : MAPass<MergeAnimatorPluginPass>
|
class MergeAnimatorPluginPass : MAPass<MergeAnimatorPluginPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
@ -229,7 +220,6 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
class MenuInstallPluginPass : MAPass<MenuInstallPluginPass>
|
class MenuInstallPluginPass : MAPass<MenuInstallPluginPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
@ -256,7 +246,6 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
class VisibleHeadAccessoryPluginPass : MAPass<VisibleHeadAccessoryPluginPass>
|
class VisibleHeadAccessoryPluginPass : MAPass<VisibleHeadAccessoryPluginPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
@ -275,7 +264,6 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
}
|
}
|
||||||
|
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)] // TODO - support other platforms
|
|
||||||
class BlendshapeSyncAnimationPluginPass : MAPass<BlendshapeSyncAnimationPluginPass>
|
class BlendshapeSyncAnimationPluginPass : MAPass<BlendshapeSyncAnimationPluginPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
@ -283,7 +271,7 @@ namespace nadena.dev.modular_avatar.core.editor.plugin
|
|||||||
new BlendshapeSyncAnimationProcessor(context).OnPreprocessAvatar();
|
new BlendshapeSyncAnimationProcessor(context).OnPreprocessAvatar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
class PhysbonesBlockerPluginPass : MAPass<PhysbonesBlockerPluginPass>
|
class PhysbonesBlockerPluginPass : MAPass<PhysbonesBlockerPluginPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
|
@ -40,11 +40,13 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
// Having a WD OFF layer after WD ON layers can break WD. We match the behavior of the existing states,
|
// Having a WD OFF layer after WD ON layers can break WD. We match the behavior of the existing states,
|
||||||
// and if mixed, use WD ON to maximize compatibility.
|
// and if mixed, use WD ON to maximize compatibility.
|
||||||
var asc = context.Extension<AnimatorServicesContext>();
|
var asc = context.Extension<AnimatorServicesContext>();
|
||||||
var fxLayer = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX];
|
_writeDefaults = asc.ControllerContext.Controllers[VRCAvatarDescriptor.AnimLayerType.FX]?.Layers.Any(
|
||||||
if (fxLayer != null)
|
l => l.StateMachine.StateMachines.Any(
|
||||||
{
|
sm => sm.StateMachine.AllStates().Any(
|
||||||
_writeDefaults = MergeAnimatorProcessor.AnalyzeLayerWriteDefaults(fxLayer) ?? true;
|
s => s.WriteDefaultValues && s.Motion is not VirtualBlendTree
|
||||||
}
|
)
|
||||||
|
)
|
||||||
|
) ?? true;
|
||||||
|
|
||||||
var analysis = new ReactiveObjectAnalyzer(context).Analyze(context.AvatarRootObject);
|
var analysis = new ReactiveObjectAnalyzer(context).Analyze(context.AvatarRootObject);
|
||||||
|
|
||||||
|
@ -9,7 +9,6 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
/// Reserve an animator layer for reactive object use. We do this here so that we can take advantage of MergeAnimator's
|
/// Reserve an animator layer for reactive object use. We do this here so that we can take advantage of MergeAnimator's
|
||||||
/// layer reference correction logic; this can go away once we have a more unified animation services API.
|
/// layer reference correction logic; this can go away once we have a more unified animation services API.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class ReactiveObjectPrepass : Pass<ReactiveObjectPrepass>
|
internal class ReactiveObjectPrepass : Pass<ReactiveObjectPrepass>
|
||||||
{
|
{
|
||||||
internal const string TAG_PATH = "__MA/ShapeChanger/PrepassPlaceholder";
|
internal const string TAG_PATH = "__MA/ShapeChanger/PrepassPlaceholder";
|
||||||
|
@ -387,7 +387,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case IVirtualizeAnimatorController or IVirtualizeMotion:
|
case IVirtualizeAnimatorController virtualized:
|
||||||
{
|
{
|
||||||
var mappings = paramInfo.GetParameterRemappingsAt(obj);
|
var mappings = paramInfo.GetParameterRemappingsAt(obj);
|
||||||
var remap = mappings.SelectMany(item =>
|
var remap = mappings.SelectMany(item =>
|
||||||
@ -402,7 +402,7 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
);
|
);
|
||||||
}).ToImmutableDictionary();
|
}).ToImmutableDictionary();
|
||||||
|
|
||||||
var controller = animServices.ControllerContext.Controllers[component];
|
var controller = animServices.ControllerContext.Controllers[virtualized];
|
||||||
if (controller != null)
|
if (controller != null)
|
||||||
{
|
{
|
||||||
ProcessVirtualAnimatorController(controller, remap);
|
ProcessVirtualAnimatorController(controller, remap);
|
||||||
@ -411,6 +411,17 @@ namespace nadena.dev.modular_avatar.core.editor
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
case ModularAvatarMergeBlendTree merger:
|
||||||
|
{
|
||||||
|
var motion = animServices.ControllerContext.GetVirtualizedMotion(merger);
|
||||||
|
if (motion is VirtualBlendTree bt)
|
||||||
|
{
|
||||||
|
ProcessBlendtree(bt, paramInfo.GetParameterRemappingsAt(obj));
|
||||||
|
}
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
case ModularAvatarMenuInstaller installer:
|
case ModularAvatarMenuInstaller installer:
|
||||||
{
|
{
|
||||||
if (installer.menuToAppend != null && installer.enabled)
|
if (installer.menuToAppend != null && installer.enabled)
|
||||||
|
@ -12,7 +12,6 @@ using Object = UnityEngine.Object;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
public class SyncParameterSequencePass : Pass<SyncParameterSequencePass>
|
public class SyncParameterSequencePass : Pass<SyncParameterSequencePass>
|
||||||
{
|
{
|
||||||
private static Platform? CurrentPlatform
|
private static Platform? CurrentPlatform
|
||||||
|
@ -4,7 +4,6 @@ using nadena.dev.ndmf;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class VRChatSettingsPass : Pass<VRChatSettingsPass>
|
internal class VRChatSettingsPass : Pass<VRChatSettingsPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
using nadena.dev.ndmf;
|
using nadena.dev.ndmf;
|
||||||
using UnityEditor;
|
using UnityEditor;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
#if MA_VRCSDK3_AVATARS
|
#if VRC_SDK_VRCSDK3
|
||||||
using VRC.Dynamics;
|
using VRC.Dynamics;
|
||||||
using VRC.SDK3.Dynamics.Constraint.Components;
|
using VRC.SDK3.Dynamics.Constraint.Components;
|
||||||
|
|
||||||
@ -12,7 +12,6 @@ using UnityEngine.Animations;
|
|||||||
|
|
||||||
namespace nadena.dev.modular_avatar.core.editor
|
namespace nadena.dev.modular_avatar.core.editor
|
||||||
{
|
{
|
||||||
[RunsOnPlatforms(WellKnownPlatforms.VRChatAvatar30)]
|
|
||||||
internal class WorldScaleObjectPass : Pass<WorldScaleObjectPass>
|
internal class WorldScaleObjectPass : Pass<WorldScaleObjectPass>
|
||||||
{
|
{
|
||||||
protected override void Execute(ndmf.BuildContext context)
|
protected override void Execute(ndmf.BuildContext context)
|
||||||
|
@ -58,8 +58,6 @@ namespace nadena.dev.modular_avatar.core
|
|||||||
public AvatarObjectReference relativePathRoot = new AvatarObjectReference();
|
public AvatarObjectReference relativePathRoot = new AvatarObjectReference();
|
||||||
public int layerPriority = 0;
|
public int layerPriority = 0;
|
||||||
public MergeAnimatorMode mergeAnimatorMode = MergeAnimatorMode.Append;
|
public MergeAnimatorMode mergeAnimatorMode = MergeAnimatorMode.Append;
|
||||||
|
|
||||||
internal bool _wasRelative;
|
|
||||||
|
|
||||||
public override void ResolveReferences()
|
public override void ResolveReferences()
|
||||||
{
|
{
|
||||||
@ -90,11 +88,7 @@ namespace nadena.dev.modular_avatar.core
|
|||||||
string IVirtualizeAnimatorController.GetMotionBasePath(object ndmfBuildContext, bool clearPath)
|
string IVirtualizeAnimatorController.GetMotionBasePath(object ndmfBuildContext, bool clearPath)
|
||||||
{
|
{
|
||||||
var path = GetMotionBasePathCallback(this, ndmfBuildContext);
|
var path = GetMotionBasePathCallback(this, ndmfBuildContext);
|
||||||
if (clearPath)
|
if (clearPath) pathMode = MergeAnimatorPathMode.Absolute;
|
||||||
{
|
|
||||||
_wasRelative = _wasRelative || pathMode == MergeAnimatorPathMode.Relative;
|
|
||||||
pathMode = MergeAnimatorPathMode.Absolute;
|
|
||||||
}
|
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
#if MA_VRCSDK3_AVATARS
|
#if MA_VRCSDK3_AVATARS
|
||||||
|
|
||||||
using System;
|
using System;
|
||||||
using nadena.dev.ndmf.animator;
|
using API;
|
||||||
using JetBrains.Annotations;
|
using JetBrains.Annotations;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using Object = UnityEngine.Object;
|
using Object = UnityEngine.Object;
|
||||||
|
@ -141,49 +141,6 @@ namespace modular_avatar_tests
|
|||||||
|
|
||||||
Assert.AreEqual(new[] {MergeBlendTreePass.BlendTreeLayerName, MMDRelayPass.ControlLayerName, MMDRelayPass.DummyLayerName, "m2", "Eyes", "FaceMood", "m1", "m3"}, layerNames);
|
Assert.AreEqual(new[] {MergeBlendTreePass.BlendTreeLayerName, MMDRelayPass.ControlLayerName, MMDRelayPass.DummyLayerName, "m2", "Eyes", "FaceMood", "m1", "m3"}, layerNames);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void BoolParameterConvertedToFloat()
|
|
||||||
{
|
|
||||||
// Create an animator controller with a bool parameter
|
|
||||||
var controller = new AnimatorController();
|
|
||||||
controller.AddParameter("testBool", AnimatorControllerParameterType.Bool);
|
|
||||||
|
|
||||||
// Create the root object and set the FX layer to the created controller
|
|
||||||
var root = CreateRoot("root");
|
|
||||||
var vrcDesc = root.GetComponent<VRCAvatarDescriptor>();
|
|
||||||
var baseLayers = vrcDesc.baseAnimationLayers;
|
|
||||||
|
|
||||||
for (int i = 0; i < baseLayers.Length; i++)
|
|
||||||
{
|
|
||||||
if (baseLayers[i].type == VRCAvatarDescriptor.AnimLayerType.FX)
|
|
||||||
{
|
|
||||||
baseLayers[i].animatorController = controller;
|
|
||||||
baseLayers[i].isDefault = false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
vrcDesc.customizeAnimationLayers = true;
|
|
||||||
|
|
||||||
// Add a Merge Blend Tree component using the same parameter
|
|
||||||
var child = CreateChild(root, "child");
|
|
||||||
var mergeComponent = child.AddComponent<ModularAvatarMergeBlendTree>();
|
|
||||||
var blendTree = new BlendTree
|
|
||||||
{
|
|
||||||
blendParameter = "testBool",
|
|
||||||
blendType = BlendTreeType.Simple1D
|
|
||||||
};
|
|
||||||
blendTree.AddChild(AnimationTestUtil.AnimationWithPath("a"));
|
|
||||||
mergeComponent.BlendTree = blendTree;
|
|
||||||
|
|
||||||
// Process the avatar
|
|
||||||
AvatarProcessor.ProcessAvatar(root);
|
|
||||||
|
|
||||||
// Verify that the parameter is converted to a float
|
|
||||||
var fxController = FindController(root, VRCAvatarDescriptor.AnimLayerType.FX).animatorController as AnimatorController;
|
|
||||||
Assert.IsTrue(fxController!.parameters.Any(p =>
|
|
||||||
p.name == "testBool" && p.type == AnimatorControllerParameterType.Float));
|
|
||||||
}
|
|
||||||
|
|
||||||
ModularAvatarMergeAnimator TestMerge(GameObject root, string mergeName, Motion motion = null)
|
ModularAvatarMergeAnimator TestMerge(GameObject root, string mergeName, Motion motion = null)
|
||||||
{
|
{
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1107 &-6982002469074649382
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: absolute
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 5394444500086494115}
|
|
||||||
m_Position: {x: 330, y: 60, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 5394444500086494115}
|
|
||||||
--- !u!91 &9100000
|
|
||||||
AnimatorController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: AbsoluteReference
|
|
||||||
serializedVersion: 5
|
|
||||||
m_AnimatorParameters: []
|
|
||||||
m_AnimatorLayers:
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: absolute
|
|
||||||
m_StateMachine: {fileID: -6982002469074649382}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
--- !u!114 &2414404072947734855
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 0}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 1859411423, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
Source: {fileID: 0}
|
|
||||||
SourcePath: Bone Proxy/Audio Source
|
|
||||||
PlaybackOrder: 0
|
|
||||||
ParameterName:
|
|
||||||
Volume: {x: 1, y: 1}
|
|
||||||
VolumeApplySettings: 1
|
|
||||||
Pitch: {x: 1, y: 1}
|
|
||||||
PitchApplySettings: 1
|
|
||||||
Clips: []
|
|
||||||
ClipsApplySettings: 1
|
|
||||||
Loop: 0
|
|
||||||
LoopApplySettings: 1
|
|
||||||
DelayInSeconds: 0
|
|
||||||
PlayOnEnter: 1
|
|
||||||
StopOnEnter: 1
|
|
||||||
PlayOnExit: 0
|
|
||||||
StopOnExit: 0
|
|
||||||
playbackIndex: 0
|
|
||||||
--- !u!1102 &5394444500086494115
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: New State
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours:
|
|
||||||
- {fileID: 2414404072947734855}
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 0}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 025d88351bb99eb4f8b38dbe071eaf2a
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 9100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -26,11 +26,6 @@ namespace modular_avatar_tests
|
|||||||
var subState = layer.stateMachine.stateMachines[0].stateMachine.states[0].state;
|
var subState = layer.stateMachine.stateMachines[0].stateMachine.states[0].state;
|
||||||
var playAudio2 = (VRCAnimatorPlayAudio) subState.behaviours[0];
|
var playAudio2 = (VRCAnimatorPlayAudio) subState.behaviours[0];
|
||||||
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio2.SourcePath);
|
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio2.SourcePath);
|
||||||
|
|
||||||
var absLayer = findFxLayer(prefab, "absolute");
|
|
||||||
state = absLayer.stateMachine.states[0].state;
|
|
||||||
playAudio = (VRCAnimatorPlayAudio) state.behaviours[0];
|
|
||||||
Assert.AreEqual("New Parent/Bone Proxy/Audio Source", playAudio.SourcePath);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -335,7 +335,6 @@ GameObject:
|
|||||||
m_Component:
|
m_Component:
|
||||||
- component: {fileID: 2374223349072045661}
|
- component: {fileID: 2374223349072045661}
|
||||||
- component: {fileID: 2173147159387031478}
|
- component: {fileID: 2173147159387031478}
|
||||||
- component: {fileID: 4651177154340700720}
|
|
||||||
m_Layer: 0
|
m_Layer: 0
|
||||||
m_Name: Bone Proxy
|
m_Name: Bone Proxy
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@ -374,28 +373,6 @@ MonoBehaviour:
|
|||||||
boneReference: 55
|
boneReference: 55
|
||||||
subPath: New Parent
|
subPath: New Parent
|
||||||
attachmentMode: 1
|
attachmentMode: 1
|
||||||
--- !u!114 &4651177154340700720
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6739982813768973813}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 1bb122659f724ebf85fe095ac02dc339, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
animator: {fileID: 9100000, guid: 025d88351bb99eb4f8b38dbe071eaf2a, type: 2}
|
|
||||||
layerType: 5
|
|
||||||
deleteAttachedAnimator: 1
|
|
||||||
pathMode: 0
|
|
||||||
matchAvatarWriteDefaults: 0
|
|
||||||
relativePathRoot:
|
|
||||||
referencePath:
|
|
||||||
targetObject: {fileID: 0}
|
|
||||||
layerPriority: 0
|
|
||||||
mergeAnimatorMode: 0
|
|
||||||
--- !u!1 &7552762365415873619
|
--- !u!1 &7552762365415873619
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
|
@ -1,30 +1,5 @@
|
|||||||
%YAML 1.1
|
%YAML 1.1
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
--- !u!1107 &-8503209154062428420
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: M_BlendTree_with_transitions
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 3206768364943963491}
|
|
||||||
m_Position: {x: 370, y: 170, z: 0}
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 8331571476920691053}
|
|
||||||
m_Position: {x: 390, y: 30, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 3206768364943963491}
|
|
||||||
--- !u!1102 &-8090073552076825221
|
--- !u!1102 &-8090073552076825221
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -73,21 +48,6 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!206 &-7204475951612894757
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
--- !u!1102 &-7082272376246755188
|
--- !u!1102 &-7082272376246755188
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -114,21 +74,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!206 &-4566774630235714795
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
--- !u!1107 &-4492345216862744995
|
--- !u!1107 &-4492345216862744995
|
||||||
AnimatorStateMachine:
|
AnimatorStateMachine:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -300,43 +245,6 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!206 &-1335452959490511230
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
--- !u!1107 &-540454885725092262
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: 1_BlendTree_InitialOff
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 5140747817625705091}
|
|
||||||
m_Position: {x: 319.11157, y: 32.108032, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 5140747817625705091}
|
|
||||||
--- !u!1101 &-493648842442313360
|
--- !u!1101 &-493648842442313360
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@ -359,32 +267,6 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1102 &-398412080201691195
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: blendtree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 20600000, guid: f2beba729514fc94eb1a78f8340a8738, type: 2}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!91 &9100000
|
--- !u!91 &9100000
|
||||||
AnimatorController:
|
AnimatorController:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@ -393,13 +275,7 @@ AnimatorController:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: TestSet_false
|
m_Name: TestSet_false
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
m_AnimatorParameters:
|
m_AnimatorParameters: []
|
||||||
- m_Name: Blend
|
|
||||||
m_Type: 1
|
|
||||||
m_DefaultFloat: 0
|
|
||||||
m_DefaultInt: 0
|
|
||||||
m_DefaultBool: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
m_AnimatorLayers:
|
m_AnimatorLayers:
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_Simple
|
m_Name: M_Simple
|
||||||
@ -426,7 +302,7 @@ AnimatorController:
|
|||||||
m_SyncedLayerAffectsTiming: 0
|
m_SyncedLayerAffectsTiming: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_SingleMotion
|
m_Name: X_SingleMotion
|
||||||
m_StateMachine: {fileID: 7425114331284477142}
|
m_StateMachine: {fileID: 7425114331284477142}
|
||||||
m_Mask: {fileID: 0}
|
m_Mask: {fileID: 0}
|
||||||
m_Motions: []
|
m_Motions: []
|
||||||
@ -437,42 +313,6 @@ AnimatorController:
|
|||||||
m_IKPass: 0
|
m_IKPass: 0
|
||||||
m_SyncedLayerAffectsTiming: 0
|
m_SyncedLayerAffectsTiming: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: 1_BlendTree_InitialOff
|
|
||||||
m_StateMachine: {fileID: -540454885725092262}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: 1_BlendTree_InitialOn
|
|
||||||
m_StateMachine: {fileID: 8678878570627476277}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: M_BlendTree_with_transitions
|
|
||||||
m_StateMachine: {fileID: -8503209154062428420}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_SubStateMachine
|
m_Name: M_SubStateMachine
|
||||||
m_StateMachine: {fileID: -2280786276023912264}
|
m_StateMachine: {fileID: -2280786276023912264}
|
||||||
@ -561,33 +401,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!1102 &3206768364943963491
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions:
|
|
||||||
- {fileID: 9087045955160975718}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: -1335452959490511230}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1101 &4984055083699384518
|
--- !u!1101 &4984055083699384518
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@ -610,32 +423,6 @@ AnimatorStateTransition:
|
|||||||
m_InterruptionSource: 0
|
m_InterruptionSource: 0
|
||||||
m_OrderedInterruption: 1
|
m_OrderedInterruption: 1
|
||||||
m_CanTransitionToSelf: 1
|
m_CanTransitionToSelf: 1
|
||||||
--- !u!1102 &5140747817625705091
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: -4566774630235714795}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1102 &5369915444104545634
|
--- !u!1102 &5369915444104545634
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -718,7 +505,7 @@ AnimatorStateMachine:
|
|||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: M_SingleMotion
|
m_Name: X_SingleMotion
|
||||||
m_ChildStates:
|
m_ChildStates:
|
||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: -2269384398499780410}
|
m_State: {fileID: -2269384398499780410}
|
||||||
@ -733,32 +520,6 @@ AnimatorStateMachine:
|
|||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: -2269384398499780410}
|
m_DefaultState: {fileID: -2269384398499780410}
|
||||||
--- !u!1102 &8331571476920691053
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree 0
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: -7204475951612894757}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1107 &8675606552853860353
|
--- !u!1107 &8675606552853860353
|
||||||
AnimatorStateMachine:
|
AnimatorStateMachine:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -781,47 +542,3 @@ AnimatorStateMachine:
|
|||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: 2924615304351484976}
|
m_DefaultState: {fileID: 2924615304351484976}
|
||||||
--- !u!1107 &8678878570627476277
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: 1_BlendTree_InitialOn
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -398412080201691195}
|
|
||||||
m_Position: {x: 410, y: 80, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: -398412080201691195}
|
|
||||||
--- !u!1101 &9087045955160975718
|
|
||||||
AnimatorStateTransition:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name:
|
|
||||||
m_Conditions: []
|
|
||||||
m_DstStateMachine: {fileID: 0}
|
|
||||||
m_DstState: {fileID: 8331571476920691053}
|
|
||||||
m_Solo: 0
|
|
||||||
m_Mute: 0
|
|
||||||
m_IsExit: 0
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransitionDuration: 0.25
|
|
||||||
m_TransitionOffset: 0
|
|
||||||
m_ExitTime: 0.75
|
|
||||||
m_HasExitTime: 1
|
|
||||||
m_HasFixedDuration: 1
|
|
||||||
m_InterruptionSource: 0
|
|
||||||
m_OrderedInterruption: 1
|
|
||||||
m_CanTransitionToSelf: 1
|
|
||||||
|
@ -150,32 +150,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!1102 &-4604261159886404567
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 8886809958447648451}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1102 &-3889880041459077057
|
--- !u!1102 &-3889880041459077057
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -202,21 +176,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!206 &-3697568682967374507
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
--- !u!1107 &-3544374717376554957
|
--- !u!1107 &-3544374717376554957
|
||||||
AnimatorStateMachine:
|
AnimatorStateMachine:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -298,13 +257,7 @@ AnimatorController:
|
|||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: TestSet_true
|
m_Name: TestSet_true
|
||||||
serializedVersion: 5
|
serializedVersion: 5
|
||||||
m_AnimatorParameters:
|
m_AnimatorParameters: []
|
||||||
- m_Name: Blend
|
|
||||||
m_Type: 1
|
|
||||||
m_DefaultFloat: 0
|
|
||||||
m_DefaultInt: 0
|
|
||||||
m_DefaultBool: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
m_AnimatorLayers:
|
m_AnimatorLayers:
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_Simple
|
m_Name: M_Simple
|
||||||
@ -331,7 +284,7 @@ AnimatorController:
|
|||||||
m_SyncedLayerAffectsTiming: 0
|
m_SyncedLayerAffectsTiming: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_SingleMotion
|
m_Name: X_SingleMotion
|
||||||
m_StateMachine: {fileID: 7425114331284477142}
|
m_StateMachine: {fileID: 7425114331284477142}
|
||||||
m_Mask: {fileID: 0}
|
m_Mask: {fileID: 0}
|
||||||
m_Motions: []
|
m_Motions: []
|
||||||
@ -342,42 +295,6 @@ AnimatorController:
|
|||||||
m_IKPass: 0
|
m_IKPass: 0
|
||||||
m_SyncedLayerAffectsTiming: 0
|
m_SyncedLayerAffectsTiming: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: 1_BlendTree_InitialOff
|
|
||||||
m_StateMachine: {fileID: 8798472560561482739}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: 1_BlendTree_InitialOn
|
|
||||||
m_StateMachine: {fileID: 723720481014261193}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: M_BlendTree_with_transitions
|
|
||||||
m_StateMachine: {fileID: 6073696076277274403}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
- serializedVersion: 5
|
- serializedVersion: 5
|
||||||
m_Name: M_SubStateMachine
|
m_Name: M_SubStateMachine
|
||||||
m_StateMachine: {fileID: -2280786276023912264}
|
m_StateMachine: {fileID: -2280786276023912264}
|
||||||
@ -414,70 +331,6 @@ AnimatorController:
|
|||||||
m_IKPass: 0
|
m_IKPass: 0
|
||||||
m_SyncedLayerAffectsTiming: 0
|
m_SyncedLayerAffectsTiming: 0
|
||||||
m_Controller: {fileID: 9100000}
|
m_Controller: {fileID: 9100000}
|
||||||
--- !u!1107 &723720481014261193
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: 1_BlendTree_InitialOn
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 4331185042199677927}
|
|
||||||
m_Position: {x: 618.3097, y: -44.39499, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 4331185042199677927}
|
|
||||||
--- !u!206 &1172723464858944439
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
--- !u!1102 &2773611772382125711
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions:
|
|
||||||
- {fileID: 6335697860175343713}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 1172723464858944439}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1101 &2826909083587646716
|
--- !u!1101 &2826909083587646716
|
||||||
AnimatorStateTransition:
|
AnimatorStateTransition:
|
||||||
m_ObjectHideFlags: 1
|
m_ObjectHideFlags: 1
|
||||||
@ -525,32 +378,6 @@ AnimatorStateMachine:
|
|||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: -3889880041459077057}
|
m_DefaultState: {fileID: -3889880041459077057}
|
||||||
--- !u!1102 &4331185042199677927
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: blendtree
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 20600000, guid: f2beba729514fc94eb1a78f8340a8738, type: 2}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1102 &5369915444104545634
|
--- !u!1102 &5369915444104545634
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -599,53 +426,6 @@ AnimatorStateMachine:
|
|||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: -8090073552076825221}
|
m_DefaultState: {fileID: -8090073552076825221}
|
||||||
--- !u!1107 &6073696076277274403
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: M_BlendTree_with_transitions
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 2773611772382125711}
|
|
||||||
m_Position: {x: 410, y: 60, z: 0}
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 6922646542478255825}
|
|
||||||
m_Position: {x: 440, y: -60, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 2773611772382125711}
|
|
||||||
--- !u!1101 &6335697860175343713
|
|
||||||
AnimatorStateTransition:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name:
|
|
||||||
m_Conditions: []
|
|
||||||
m_DstStateMachine: {fileID: 0}
|
|
||||||
m_DstState: {fileID: 6922646542478255825}
|
|
||||||
m_Solo: 0
|
|
||||||
m_Mute: 0
|
|
||||||
m_IsExit: 0
|
|
||||||
serializedVersion: 3
|
|
||||||
m_TransitionDuration: 0.25
|
|
||||||
m_TransitionOffset: 0
|
|
||||||
m_ExitTime: 0.75
|
|
||||||
m_HasExitTime: 1
|
|
||||||
m_HasFixedDuration: 1
|
|
||||||
m_InterruptionSource: 0
|
|
||||||
m_OrderedInterruption: 1
|
|
||||||
m_CanTransitionToSelf: 1
|
|
||||||
--- !u!1102 &6720833780093794278
|
--- !u!1102 &6720833780093794278
|
||||||
AnimatorState:
|
AnimatorState:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -672,32 +452,6 @@ AnimatorState:
|
|||||||
m_MirrorParameter:
|
m_MirrorParameter:
|
||||||
m_CycleOffsetParameter:
|
m_CycleOffsetParameter:
|
||||||
m_TimeParameter:
|
m_TimeParameter:
|
||||||
--- !u!1102 &6922646542478255825
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree 0
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: -3697568682967374507}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1107 &7425114331284477142
|
--- !u!1107 &7425114331284477142
|
||||||
AnimatorStateMachine:
|
AnimatorStateMachine:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
@ -705,7 +459,7 @@ AnimatorStateMachine:
|
|||||||
m_CorrespondingSourceObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInstance: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
m_PrefabAsset: {fileID: 0}
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: M_SingleMotion
|
m_Name: X_SingleMotion
|
||||||
m_ChildStates:
|
m_ChildStates:
|
||||||
- serializedVersion: 1
|
- serializedVersion: 1
|
||||||
m_State: {fileID: -2269384398499780410}
|
m_State: {fileID: -2269384398499780410}
|
||||||
@ -742,40 +496,3 @@ AnimatorStateMachine:
|
|||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
m_ExitPosition: {x: 800, y: 120, z: 0}
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
||||||
m_DefaultState: {fileID: -5198186050664669546}
|
m_DefaultState: {fileID: -5198186050664669546}
|
||||||
--- !u!1107 &8798472560561482739
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: 1_BlendTree_InitialOff
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -4604261159886404567}
|
|
||||||
m_Position: {x: 460, y: 60, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: -4604261159886404567}
|
|
||||||
--- !u!206 &8886809958447648451
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Blend Tree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
||||||
|
@ -63,7 +63,6 @@ namespace UnitTests.MergeAnimatorTests.WriteDefaults
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'X': expectedState = mergeAnimatorInitialState; break;
|
case 'X': expectedState = mergeAnimatorInitialState; break;
|
||||||
case '1': expectedState = true; break;
|
|
||||||
default: continue;
|
default: continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,17 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!206 &20600000
|
|
||||||
BlendTree:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: blendtree
|
|
||||||
m_Childs: []
|
|
||||||
m_BlendParameter: Blend
|
|
||||||
m_BlendParameterY: Blend
|
|
||||||
m_MinThreshold: 0
|
|
||||||
m_MaxThreshold: 1
|
|
||||||
m_UseAutomaticThresholds: 1
|
|
||||||
m_NormalizedBlendValues: 0
|
|
||||||
m_BlendType: 0
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: f2beba729514fc94eb1a78f8340a8738
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 20600000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 517a3e1b449bea941819c9902ce3de1b
|
|
||||||
folderAsset: yes
|
|
||||||
DefaultImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,36 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Collections.Generic;
|
|
||||||
using modular_avatar_tests;
|
|
||||||
using nadena.dev.modular_avatar.core.editor;
|
|
||||||
using NUnit.Framework;
|
|
||||||
using UnityEditor.Animations;
|
|
||||||
using UnityEngine;
|
|
||||||
using VRC.SDK3.Avatars.Components;
|
|
||||||
|
|
||||||
public class ReactiveComponentWriteDefaultsTest : TestBase
|
|
||||||
{
|
|
||||||
[Test]
|
|
||||||
public void RCObjectWriteDefaults([Values("rc_wd_on.controller", "rc_wd_off.controller")] string controllerPath)
|
|
||||||
{
|
|
||||||
var root = CreatePrefab("rc_wd.prefab");
|
|
||||||
var avDesc = root.GetComponent<VRCAvatarDescriptor>();
|
|
||||||
var controller = LoadAsset<AnimatorController>(controllerPath);
|
|
||||||
|
|
||||||
var baseLayers = avDesc.baseAnimationLayers;
|
|
||||||
for (int i = 0; i < baseLayers.Length; i++)
|
|
||||||
{
|
|
||||||
baseLayers[i].animatorController = controller;
|
|
||||||
baseLayers[i].isDefault = false;
|
|
||||||
}
|
|
||||||
avDesc.baseAnimationLayers = baseLayers;
|
|
||||||
avDesc.customizeAnimationLayers = true;
|
|
||||||
|
|
||||||
AvatarProcessor.ProcessAvatar(root);
|
|
||||||
|
|
||||||
var fx = findFxLayer(root, "RC MA Responsive: GameObject");
|
|
||||||
Assert.AreEqual(
|
|
||||||
controllerPath.StartsWith("rc_wd_on"),
|
|
||||||
fx.stateMachine.defaultState.writeDefaultValues
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
@ -1,11 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 8efec892da3ae3a45b810abf5cebad02
|
|
||||||
MonoImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
serializedVersion: 2
|
|
||||||
defaultReferences: []
|
|
||||||
executionOrder: 0
|
|
||||||
icon: {instanceID: 0}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,469 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1 &477583020495738404
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 9179158997175056572}
|
|
||||||
- component: {fileID: 29650048224569744}
|
|
||||||
- component: {fileID: 2852631459141447588}
|
|
||||||
- component: {fileID: 8587532856046952446}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject OFF
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &9179158997175056572
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 477583020495738404}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 1878023628084695976}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &29650048224569744
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 477583020495738404}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: a162bb8ec7e24a5abcf457887f1df3fa, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_inverted: 0
|
|
||||||
m_objects:
|
|
||||||
- Object:
|
|
||||||
referencePath: GameObject
|
|
||||||
targetObject: {fileID: 6320927576634437802}
|
|
||||||
Active: 0
|
|
||||||
--- !u!114 &2852631459141447588
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 477583020495738404}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 3b29d45007c5493d926d2cd45a489529, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
Control:
|
|
||||||
name: GameObject OFF
|
|
||||||
icon: {fileID: 0}
|
|
||||||
type: 102
|
|
||||||
parameter:
|
|
||||||
name:
|
|
||||||
value: 1
|
|
||||||
style: 0
|
|
||||||
subMenu: {fileID: 0}
|
|
||||||
subParameters: []
|
|
||||||
labels: []
|
|
||||||
MenuSource: 1
|
|
||||||
menuSource_otherObjectChildren: {fileID: 0}
|
|
||||||
isSynced: 1
|
|
||||||
isSaved: 1
|
|
||||||
isDefault: 0
|
|
||||||
automaticValue: 1
|
|
||||||
label:
|
|
||||||
--- !u!114 &8587532856046952446
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 477583020495738404}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 7ef83cb0c23d4d7c9d41021e544a1978, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
menuToAppend: {fileID: 0}
|
|
||||||
installTargetMenu: {fileID: 0}
|
|
||||||
--- !u!1 &5779388316383907521
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 1878023628084695976}
|
|
||||||
- component: {fileID: 7755083891606286594}
|
|
||||||
- component: {fileID: 586879300047358754}
|
|
||||||
- component: {fileID: 4246695544239537830}
|
|
||||||
- component: {fileID: 333680745927230906}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: rc_wd
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &1878023628084695976
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5779388316383907521}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: -0.22364601, y: 0.92672217, z: -1.631131}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 7508355110127128095}
|
|
||||||
- {fileID: 9179158997175056572}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!95 &7755083891606286594
|
|
||||||
Animator:
|
|
||||||
serializedVersion: 5
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5779388316383907521}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_Avatar: {fileID: 0}
|
|
||||||
m_Controller: {fileID: 0}
|
|
||||||
m_CullingMode: 0
|
|
||||||
m_UpdateMode: 0
|
|
||||||
m_ApplyRootMotion: 0
|
|
||||||
m_LinearVelocityBlending: 0
|
|
||||||
m_StabilizeFeet: 0
|
|
||||||
m_WarningMessage:
|
|
||||||
m_HasTransformHierarchy: 1
|
|
||||||
m_AllowConstantClipSamplingOptimization: 1
|
|
||||||
m_KeepAnimatorStateOnDisable: 0
|
|
||||||
m_WriteDefaultValuesOnDisable: 0
|
|
||||||
--- !u!114 &586879300047358754
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5779388316383907521}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 542108242, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
Name:
|
|
||||||
ViewPosition: {x: 0, y: 1.6, z: 0.2}
|
|
||||||
Animations: 0
|
|
||||||
ScaleIPD: 1
|
|
||||||
lipSync: 0
|
|
||||||
lipSyncJawBone: {fileID: 0}
|
|
||||||
lipSyncJawClosed: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
lipSyncJawOpen: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
VisemeSkinnedMesh: {fileID: 0}
|
|
||||||
MouthOpenBlendShapeName: Facial_Blends.Jaw_Down
|
|
||||||
VisemeBlendShapes: []
|
|
||||||
unityVersion:
|
|
||||||
portraitCameraPositionOffset: {x: 0, y: 0, z: 0}
|
|
||||||
portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139}
|
|
||||||
networkIDs: []
|
|
||||||
customExpressions: 0
|
|
||||||
expressionsMenu: {fileID: 0}
|
|
||||||
expressionParameters: {fileID: 0}
|
|
||||||
enableEyeLook: 0
|
|
||||||
customEyeLookSettings:
|
|
||||||
eyeMovement:
|
|
||||||
confidence: 0.5
|
|
||||||
excitement: 0.5
|
|
||||||
leftEye: {fileID: 0}
|
|
||||||
rightEye: {fileID: 0}
|
|
||||||
eyesLookingStraight:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingUp:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingDown:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingLeft:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingRight:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidType: 0
|
|
||||||
upperLeftEyelid: {fileID: 0}
|
|
||||||
upperRightEyelid: {fileID: 0}
|
|
||||||
lowerLeftEyelid: {fileID: 0}
|
|
||||||
lowerRightEyelid: {fileID: 0}
|
|
||||||
eyelidsDefault:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsClosed:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsLookingUp:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsLookingDown:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsSkinnedMesh: {fileID: 0}
|
|
||||||
eyelidsBlendshapes:
|
|
||||||
customizeAnimationLayers: 1
|
|
||||||
baseAnimationLayers:
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 0
|
|
||||||
animatorController: {fileID: 9100000, guid: bbe8f5d0b8aa75b46a8da9da84fca5f0,
|
|
||||||
type: 2}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 0
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 4
|
|
||||||
animatorController: {fileID: 9100000, guid: bbe8f5d0b8aa75b46a8da9da84fca5f0,
|
|
||||||
type: 2}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 0
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 5
|
|
||||||
animatorController: {fileID: 9100000, guid: bbe8f5d0b8aa75b46a8da9da84fca5f0,
|
|
||||||
type: 2}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 0
|
|
||||||
specialAnimationLayers:
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 6
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 7
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 8
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
AnimationPreset: {fileID: 0}
|
|
||||||
animationHashSet: []
|
|
||||||
autoFootsteps: 1
|
|
||||||
autoLocomotion: 1
|
|
||||||
collider_head:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_torso:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_footR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_footL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_handR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_handL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerIndexL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerMiddleL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerRingL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerLittleL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerIndexR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerMiddleR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerRingR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerLittleR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
--- !u!114 &4246695544239537830
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5779388316383907521}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
launchedFromSDKPipeline: 0
|
|
||||||
completedSDKPipeline: 0
|
|
||||||
blueprintId:
|
|
||||||
contentType: 0
|
|
||||||
assetBundleUnityVersion:
|
|
||||||
fallbackStatus: 0
|
|
||||||
--- !u!114 &333680745927230906
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 5779388316383907521}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 52fa21b17bc14dc294959f976e3e184f, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
--- !u!1 &6320927576634437802
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 7508355110127128095}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &7508355110127128095
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 6320927576634437802}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 1878023628084695976}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7b345973f37afde43945770cff0f468d
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,72 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1102 &-5675820832765795809
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: New State
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 0}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1107 &-1329585102462520777
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -5675820832765795809}
|
|
||||||
m_Position: {x: 370, y: 110, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: -5675820832765795809}
|
|
||||||
--- !u!91 &9100000
|
|
||||||
AnimatorController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: rc_wd_off
|
|
||||||
serializedVersion: 5
|
|
||||||
m_AnimatorParameters: []
|
|
||||||
m_AnimatorLayers:
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_StateMachine: {fileID: -1329585102462520777}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: bbe8f5d0b8aa75b46a8da9da84fca5f0
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 9100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,72 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1102 &-5675820832765795809
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: New State
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 0}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
||||||
--- !u!1107 &-1329585102462520777
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: -5675820832765795809}
|
|
||||||
m_Position: {x: 370, y: 110, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: -5675820832765795809}
|
|
||||||
--- !u!91 &9100000
|
|
||||||
AnimatorController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: rc_wd_on
|
|
||||||
serializedVersion: 5
|
|
||||||
m_AnimatorParameters: []
|
|
||||||
m_AnimatorLayers:
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: Base Layer
|
|
||||||
m_StateMachine: {fileID: -1329585102462520777}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 7fdfd4d33b132ab45b23f92ec3535b94
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 9100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -9,7 +9,6 @@ using nadena.dev.modular_avatar.core.editor;
|
|||||||
using nadena.dev.ndmf;
|
using nadena.dev.ndmf;
|
||||||
using nadena.dev.ndmf.animator;
|
using nadena.dev.ndmf.animator;
|
||||||
using NUnit.Framework;
|
using NUnit.Framework;
|
||||||
using UnityEditor;
|
|
||||||
using UnityEditor.Animations;
|
using UnityEditor.Animations;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using VRC.SDK3.Avatars.Components;
|
using VRC.SDK3.Avatars.Components;
|
||||||
@ -362,43 +361,6 @@ namespace modular_avatar_tests.RenameParametersTests
|
|||||||
|
|
||||||
Assert.IsFalse(expParams["a"].networkSynced);
|
Assert.IsFalse(expParams["a"].networkSynced);
|
||||||
}
|
}
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void RenamesParameterCurves_InMergeAnimator()
|
|
||||||
{
|
|
||||||
var prefab = CreatePrefab("RenamesParameterCurves.prefab");
|
|
||||||
AvatarProcessor.ProcessAvatar(prefab);
|
|
||||||
|
|
||||||
var fx = prefab.GetComponent<VRCAvatarDescriptor>().baseAnimationLayers
|
|
||||||
.First(l => l.type == VRCAvatarDescriptor.AnimLayerType.FX)
|
|
||||||
.animatorController as AnimatorController;
|
|
||||||
|
|
||||||
var state = fx.layers.First(l => l.name == "test").stateMachine.defaultState;
|
|
||||||
var motion = (AnimationClip)state.motion;
|
|
||||||
|
|
||||||
var bindings = AnimationUtility.GetCurveBindings(motion);
|
|
||||||
var theBinding = bindings[0];
|
|
||||||
Assert.AreEqual("test2", theBinding.propertyName);
|
|
||||||
}
|
|
||||||
|
|
||||||
[Test]
|
|
||||||
public void RenamesParameterCurves_InMergeMotion()
|
|
||||||
{
|
|
||||||
var prefab = CreatePrefab("RenamesParameterCurves.prefab");
|
|
||||||
AvatarProcessor.ProcessAvatar(prefab);
|
|
||||||
|
|
||||||
var fx = prefab.GetComponent<VRCAvatarDescriptor>().baseAnimationLayers
|
|
||||||
.First(l => l.type == VRCAvatarDescriptor.AnimLayerType.FX)
|
|
||||||
.animatorController as AnimatorController;
|
|
||||||
|
|
||||||
var state = fx.layers[0].stateMachine.defaultState;
|
|
||||||
var tree = (BlendTree)state.motion;
|
|
||||||
var motion = (AnimationClip)tree.children[0].motion;
|
|
||||||
|
|
||||||
var bindings = AnimationUtility.GetCurveBindings(motion);
|
|
||||||
var theBinding = bindings[0];
|
|
||||||
Assert.AreEqual("test2", theBinding.propertyName);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,122 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!74 &7400000
|
|
||||||
AnimationClip:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: RenamesParameterCurves
|
|
||||||
serializedVersion: 7
|
|
||||||
m_Legacy: 0
|
|
||||||
m_Compressed: 0
|
|
||||||
m_UseHighQualityCurve: 1
|
|
||||||
m_RotationCurves: []
|
|
||||||
m_CompressedRotationCurves: []
|
|
||||||
m_EulerCurves: []
|
|
||||||
m_PositionCurves: []
|
|
||||||
m_ScaleCurves: []
|
|
||||||
m_FloatCurves:
|
|
||||||
- serializedVersion: 2
|
|
||||||
curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: 0
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1
|
|
||||||
value: 0
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
attribute: test
|
|
||||||
path:
|
|
||||||
classID: 95
|
|
||||||
script: {fileID: 0}
|
|
||||||
flags: 16
|
|
||||||
m_PPtrCurves: []
|
|
||||||
m_SampleRate: 60
|
|
||||||
m_WrapMode: 0
|
|
||||||
m_Bounds:
|
|
||||||
m_Center: {x: 0, y: 0, z: 0}
|
|
||||||
m_Extent: {x: 0, y: 0, z: 0}
|
|
||||||
m_ClipBindingConstant:
|
|
||||||
genericBindings:
|
|
||||||
- serializedVersion: 2
|
|
||||||
path: 0
|
|
||||||
attribute: 3632233996
|
|
||||||
script: {fileID: 0}
|
|
||||||
typeID: 95
|
|
||||||
customType: 0
|
|
||||||
isPPtrCurve: 0
|
|
||||||
isIntCurve: 0
|
|
||||||
isSerializeReferenceCurve: 0
|
|
||||||
pptrCurveMapping: []
|
|
||||||
m_AnimationClipSettings:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_AdditiveReferencePoseClip: {fileID: 0}
|
|
||||||
m_AdditiveReferencePoseTime: 0
|
|
||||||
m_StartTime: 0
|
|
||||||
m_StopTime: 1
|
|
||||||
m_OrientationOffsetY: 0
|
|
||||||
m_Level: 0
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_HasAdditiveReferencePose: 0
|
|
||||||
m_LoopTime: 0
|
|
||||||
m_LoopBlend: 0
|
|
||||||
m_LoopBlendOrientation: 0
|
|
||||||
m_LoopBlendPositionY: 0
|
|
||||||
m_LoopBlendPositionXZ: 0
|
|
||||||
m_KeepOriginalOrientation: 0
|
|
||||||
m_KeepOriginalPositionY: 1
|
|
||||||
m_KeepOriginalPositionXZ: 0
|
|
||||||
m_HeightFromFeet: 0
|
|
||||||
m_Mirror: 0
|
|
||||||
m_EditorCurves:
|
|
||||||
- serializedVersion: 2
|
|
||||||
curve:
|
|
||||||
serializedVersion: 2
|
|
||||||
m_Curve:
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 0
|
|
||||||
value: 0
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
- serializedVersion: 3
|
|
||||||
time: 1
|
|
||||||
value: 0
|
|
||||||
inSlope: 0
|
|
||||||
outSlope: 0
|
|
||||||
tangentMode: 136
|
|
||||||
weightedMode: 0
|
|
||||||
inWeight: 0.33333334
|
|
||||||
outWeight: 0.33333334
|
|
||||||
m_PreInfinity: 2
|
|
||||||
m_PostInfinity: 2
|
|
||||||
m_RotationOrder: 4
|
|
||||||
attribute: test
|
|
||||||
path:
|
|
||||||
classID: 95
|
|
||||||
script: {fileID: 0}
|
|
||||||
flags: 16
|
|
||||||
m_EulerEditorCurves: []
|
|
||||||
m_HasGenericRootTransform: 0
|
|
||||||
m_HasMotionFloatCurves: 0
|
|
||||||
m_Events: []
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 3e634bde80c3a60459004323512f089f
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 7400000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,78 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1107 &-3650133622313043183
|
|
||||||
AnimatorStateMachine:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: test
|
|
||||||
m_ChildStates:
|
|
||||||
- serializedVersion: 1
|
|
||||||
m_State: {fileID: 1164923829880529754}
|
|
||||||
m_Position: {x: 400, y: 110, z: 0}
|
|
||||||
m_ChildStateMachines: []
|
|
||||||
m_AnyStateTransitions: []
|
|
||||||
m_EntryTransitions: []
|
|
||||||
m_StateMachineTransitions: {}
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_AnyStatePosition: {x: 50, y: 20, z: 0}
|
|
||||||
m_EntryPosition: {x: 50, y: 120, z: 0}
|
|
||||||
m_ExitPosition: {x: 800, y: 120, z: 0}
|
|
||||||
m_ParentStateMachinePosition: {x: 800, y: 20, z: 0}
|
|
||||||
m_DefaultState: {fileID: 1164923829880529754}
|
|
||||||
--- !u!91 &9100000
|
|
||||||
AnimatorController:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: RenamesParameterCurves
|
|
||||||
serializedVersion: 5
|
|
||||||
m_AnimatorParameters:
|
|
||||||
- m_Name: test
|
|
||||||
m_Type: 1
|
|
||||||
m_DefaultFloat: 0
|
|
||||||
m_DefaultInt: 0
|
|
||||||
m_DefaultBool: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
m_AnimatorLayers:
|
|
||||||
- serializedVersion: 5
|
|
||||||
m_Name: test
|
|
||||||
m_StateMachine: {fileID: -3650133622313043183}
|
|
||||||
m_Mask: {fileID: 0}
|
|
||||||
m_Motions: []
|
|
||||||
m_Behaviours: []
|
|
||||||
m_BlendingMode: 0
|
|
||||||
m_SyncedLayerIndex: -1
|
|
||||||
m_DefaultWeight: 0
|
|
||||||
m_IKPass: 0
|
|
||||||
m_SyncedLayerAffectsTiming: 0
|
|
||||||
m_Controller: {fileID: 9100000}
|
|
||||||
--- !u!1102 &1164923829880529754
|
|
||||||
AnimatorState:
|
|
||||||
serializedVersion: 6
|
|
||||||
m_ObjectHideFlags: 1
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_Name: RenamesParameterCurves
|
|
||||||
m_Speed: 1
|
|
||||||
m_CycleOffset: 0
|
|
||||||
m_Transitions: []
|
|
||||||
m_StateMachineBehaviours: []
|
|
||||||
m_Position: {x: 50, y: 50, z: 0}
|
|
||||||
m_IKOnFeet: 0
|
|
||||||
m_WriteDefaultValues: 1
|
|
||||||
m_Mirror: 0
|
|
||||||
m_SpeedParameterActive: 0
|
|
||||||
m_MirrorParameterActive: 0
|
|
||||||
m_CycleOffsetParameterActive: 0
|
|
||||||
m_TimeParameterActive: 0
|
|
||||||
m_Motion: {fileID: 7400000, guid: 3e634bde80c3a60459004323512f089f, type: 2}
|
|
||||||
m_Tag:
|
|
||||||
m_SpeedParameter:
|
|
||||||
m_MirrorParameter:
|
|
||||||
m_CycleOffsetParameter:
|
|
||||||
m_TimeParameter:
|
|
@ -1,8 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: e5e810f5227b26d4b9f073f3104d98c9
|
|
||||||
NativeFormatImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
mainObjectFileID: 9100000
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -1,421 +0,0 @@
|
|||||||
%YAML 1.1
|
|
||||||
%TAG !u! tag:unity3d.com,2011:
|
|
||||||
--- !u!1 &1286613399393800329
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 6360067973014650773}
|
|
||||||
- component: {fileID: 1169826671884431870}
|
|
||||||
- component: {fileID: 4500738523828848987}
|
|
||||||
- component: {fileID: 1948104033237066197}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: RenamesParameterCurves
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &6360067973014650773
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1286613399393800329}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: -0.3605362, y: 0.62606794, z: -0.29746842}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children:
|
|
||||||
- {fileID: 4505660406486375176}
|
|
||||||
m_Father: {fileID: 0}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!95 &1169826671884431870
|
|
||||||
Animator:
|
|
||||||
serializedVersion: 5
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1286613399393800329}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_Avatar: {fileID: 0}
|
|
||||||
m_Controller: {fileID: 9100000, guid: e5e810f5227b26d4b9f073f3104d98c9, type: 2}
|
|
||||||
m_CullingMode: 0
|
|
||||||
m_UpdateMode: 0
|
|
||||||
m_ApplyRootMotion: 0
|
|
||||||
m_LinearVelocityBlending: 0
|
|
||||||
m_StabilizeFeet: 0
|
|
||||||
m_WarningMessage:
|
|
||||||
m_HasTransformHierarchy: 1
|
|
||||||
m_AllowConstantClipSamplingOptimization: 1
|
|
||||||
m_KeepAnimatorStateOnDisable: 0
|
|
||||||
m_WriteDefaultValuesOnDisable: 0
|
|
||||||
--- !u!114 &4500738523828848987
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1286613399393800329}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 542108242, guid: 67cc4cb7839cd3741b63733d5adf0442, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
Name:
|
|
||||||
ViewPosition: {x: 0, y: 1.6, z: 0.2}
|
|
||||||
Animations: 0
|
|
||||||
ScaleIPD: 1
|
|
||||||
lipSync: 0
|
|
||||||
lipSyncJawBone: {fileID: 0}
|
|
||||||
lipSyncJawClosed: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
lipSyncJawOpen: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
VisemeSkinnedMesh: {fileID: 0}
|
|
||||||
MouthOpenBlendShapeName: Facial_Blends.Jaw_Down
|
|
||||||
VisemeBlendShapes: []
|
|
||||||
unityVersion:
|
|
||||||
portraitCameraPositionOffset: {x: 0, y: 0, z: 0}
|
|
||||||
portraitCameraRotationOffset: {x: 0, y: 1, z: 0, w: -0.00000004371139}
|
|
||||||
networkIDs: []
|
|
||||||
customExpressions: 0
|
|
||||||
expressionsMenu: {fileID: 0}
|
|
||||||
expressionParameters: {fileID: 0}
|
|
||||||
enableEyeLook: 0
|
|
||||||
customEyeLookSettings:
|
|
||||||
eyeMovement:
|
|
||||||
confidence: 0.5
|
|
||||||
excitement: 0.5
|
|
||||||
leftEye: {fileID: 0}
|
|
||||||
rightEye: {fileID: 0}
|
|
||||||
eyesLookingStraight:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingUp:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingDown:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingLeft:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyesLookingRight:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidType: 0
|
|
||||||
upperLeftEyelid: {fileID: 0}
|
|
||||||
upperRightEyelid: {fileID: 0}
|
|
||||||
lowerLeftEyelid: {fileID: 0}
|
|
||||||
lowerRightEyelid: {fileID: 0}
|
|
||||||
eyelidsDefault:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsClosed:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsLookingUp:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsLookingDown:
|
|
||||||
upper:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
lower:
|
|
||||||
linked: 1
|
|
||||||
left: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
right: {x: 0, y: 0, z: 0, w: 0}
|
|
||||||
eyelidsSkinnedMesh: {fileID: 0}
|
|
||||||
eyelidsBlendshapes:
|
|
||||||
customizeAnimationLayers: 0
|
|
||||||
baseAnimationLayers:
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 0
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 4
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 5
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
specialAnimationLayers:
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 6
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 7
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
- isEnabled: 0
|
|
||||||
type: 8
|
|
||||||
animatorController: {fileID: 0}
|
|
||||||
mask: {fileID: 0}
|
|
||||||
isDefault: 1
|
|
||||||
AnimationPreset: {fileID: 0}
|
|
||||||
animationHashSet: []
|
|
||||||
autoFootsteps: 1
|
|
||||||
autoLocomotion: 1
|
|
||||||
collider_head:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_torso:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_footR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_footL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_handR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_handL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerIndexL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerMiddleL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerRingL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerLittleL:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerIndexR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerMiddleR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerRingR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
collider_fingerLittleR:
|
|
||||||
isMirrored: 1
|
|
||||||
state: 0
|
|
||||||
transform: {fileID: 0}
|
|
||||||
radius: 0
|
|
||||||
height: 0
|
|
||||||
position: {x: 0, y: 0, z: 0}
|
|
||||||
rotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
--- !u!114 &1948104033237066197
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 1286613399393800329}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: -1427037861, guid: 4ecd63eff847044b68db9453ce219299, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
launchedFromSDKPipeline: 0
|
|
||||||
completedSDKPipeline: 0
|
|
||||||
blueprintId:
|
|
||||||
contentType: 0
|
|
||||||
assetBundleUnityVersion:
|
|
||||||
fallbackStatus: 0
|
|
||||||
--- !u!1 &7373036613593428732
|
|
||||||
GameObject:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
serializedVersion: 6
|
|
||||||
m_Component:
|
|
||||||
- component: {fileID: 4505660406486375176}
|
|
||||||
- component: {fileID: 8305268802043251198}
|
|
||||||
- component: {fileID: 7024896843461383305}
|
|
||||||
- component: {fileID: 1430232598996062774}
|
|
||||||
m_Layer: 0
|
|
||||||
m_Name: GameObject
|
|
||||||
m_TagString: Untagged
|
|
||||||
m_Icon: {fileID: 0}
|
|
||||||
m_NavMeshLayer: 0
|
|
||||||
m_StaticEditorFlags: 0
|
|
||||||
m_IsActive: 1
|
|
||||||
--- !u!4 &4505660406486375176
|
|
||||||
Transform:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7373036613593428732}
|
|
||||||
serializedVersion: 2
|
|
||||||
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
|
||||||
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
||||||
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
||||||
m_ConstrainProportionsScale: 0
|
|
||||||
m_Children: []
|
|
||||||
m_Father: {fileID: 6360067973014650773}
|
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
||||||
--- !u!114 &8305268802043251198
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7373036613593428732}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 71a96d4ea0c344f39e277d82035bf9bd, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
parameters:
|
|
||||||
- nameOrPrefix: test
|
|
||||||
remapTo: test2
|
|
||||||
internalParameter: 0
|
|
||||||
isPrefix: 0
|
|
||||||
syncType: 0
|
|
||||||
localOnly: 0
|
|
||||||
defaultValue: 0
|
|
||||||
saved: 0
|
|
||||||
hasExplicitDefaultValue: 0
|
|
||||||
m_overrideAnimatorDefaults: 0
|
|
||||||
--- !u!114 &7024896843461383305
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7373036613593428732}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 1bb122659f724ebf85fe095ac02dc339, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
animator: {fileID: 9100000, guid: e5e810f5227b26d4b9f073f3104d98c9, type: 2}
|
|
||||||
layerType: 5
|
|
||||||
deleteAttachedAnimator: 1
|
|
||||||
pathMode: 1
|
|
||||||
matchAvatarWriteDefaults: 0
|
|
||||||
relativePathRoot:
|
|
||||||
referencePath:
|
|
||||||
targetObject: {fileID: 0}
|
|
||||||
layerPriority: 0
|
|
||||||
mergeAnimatorMode: 0
|
|
||||||
--- !u!114 &1430232598996062774
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 7373036613593428732}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 229dd561ca024a6588e388160921a70f, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
BlendTree: {fileID: 7400000, guid: 3e634bde80c3a60459004323512f089f, type: 2}
|
|
||||||
PathMode: 0
|
|
||||||
RelativePathRoot:
|
|
||||||
referencePath:
|
|
||||||
targetObject: {fileID: 0}
|
|
@ -1,7 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 63b6943a609971c41b031752630990e5
|
|
||||||
PrefabImporter:
|
|
||||||
externalObjects: {}
|
|
||||||
userData:
|
|
||||||
assetBundleName:
|
|
||||||
assetBundleVariant:
|
|
@ -7286,11 +7286,11 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"estree-util-value-to-estree@npm:^3.0.1":
|
"estree-util-value-to-estree@npm:^3.0.1":
|
||||||
version: 3.3.3
|
version: 3.1.2
|
||||||
resolution: "estree-util-value-to-estree@npm:3.3.3"
|
resolution: "estree-util-value-to-estree@npm:3.1.2"
|
||||||
dependencies:
|
dependencies:
|
||||||
"@types/estree": ^1.0.0
|
"@types/estree": ^1.0.0
|
||||||
checksum: 73851f26715300046228cf8a36986c101d6741d7a2b024f684675e75d1191bc07b0dc069926876729efd5650343d23bffe76104221b7dc862965632302b05524
|
checksum: 31c4b9f3a2e64119b994a86d70070325b6ec238a21842669e79b0d6a7190150293616c8f38fee1c369c18bbef405064d883aa38c05311db5d0a211a30e9924d6
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
@ -8484,13 +8484,13 @@ __metadata:
|
|||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
"image-size@npm:^1.0.2":
|
"image-size@npm:^1.0.2":
|
||||||
version: 1.2.1
|
version: 1.1.1
|
||||||
resolution: "image-size@npm:1.2.1"
|
resolution: "image-size@npm:1.1.1"
|
||||||
dependencies:
|
dependencies:
|
||||||
queue: 6.0.2
|
queue: 6.0.2
|
||||||
bin:
|
bin:
|
||||||
image-size: bin/image-size.js
|
image-size: bin/image-size.js
|
||||||
checksum: 8601ddd4edc1db16f097f5cf585c23214e29c3b8f4d8a8f8d59b8e3bae2338c8a5073236bfff421d8541091a98a38b802ed049203c745286a69d1aac4e5bc4c7
|
checksum: 23b3a515dded89e7f967d52b885b430d6a5a903da954fce703130bfb6069d738d80e6588efd29acfaf5b6933424a56535aa7bf06867e4ebd0250c2ee51f19a4a
|
||||||
languageName: node
|
languageName: node
|
||||||
linkType: hard
|
linkType: hard
|
||||||
|
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
{
|
{
|
||||||
"name": "nadena.dev.modular-avatar",
|
"name": "nadena.dev.modular-avatar",
|
||||||
"displayName": "Modular Avatar",
|
"displayName": "Modular Avatar",
|
||||||
"version": "1.13.0-alpha.1",
|
"version": "1.12.0",
|
||||||
"unity": "2022.3",
|
"unity": "2022.3",
|
||||||
"description": "A suite of tools for assembling your avatar out of reusable components",
|
"description": "A suite of tools for assembling your avatar out of reusable components",
|
||||||
"author": {
|
"author": {
|
||||||
@ -16,6 +16,6 @@
|
|||||||
},
|
},
|
||||||
"vpmDependencies": {
|
"vpmDependencies": {
|
||||||
"com.vrchat.avatars": ">=3.7.4",
|
"com.vrchat.avatars": ">=3.7.4",
|
||||||
"nadena.dev.ndmf": ">=1.8.0-alpha.4 <2.0.0-a"
|
"nadena.dev.ndmf": ">=1.7.0 <2.0.0-a"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user