improve chunk based spawning

improve animator setup
This commit is contained in:
minenice55 2024-03-08 14:17:19 -05:00
parent 7d94e52522
commit 5c0261b494
9 changed files with 178 additions and 51 deletions

View file

@ -682,7 +682,7 @@ MonoBehaviour:
baseLongNail: {fileID: 4122843866948130824}
baseSweet: {fileID: 7846700753925185796}
Carpenter: {fileID: 2757472879240741117}
EyeAnim: {fileID: 2857868484672891618}
EyeAnim: {fileID: 0}
EffectExclamRed: {fileID: 5086085623578673087}
EffectExclamBlue: {fileID: 7922870834249946850}
scrollingHolder: {fileID: 5348239490659111460}
@ -1596,7 +1596,6 @@ GameObject:
m_Component:
- component: {fileID: 6501104041238814201}
- component: {fileID: 3042055459301008586}
- component: {fileID: 2857868484672891618}
m_Layer: 0
m_Name: eye
m_TagString: Untagged
@ -1671,27 +1670,6 @@ SpriteRenderer:
m_WasSpriteAssigned: 1
m_MaskInteraction: 0
m_SpriteSortPoint: 0
--- !u!95 &2857868484672891618
Animator:
serializedVersion: 5
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5887142951187249997}
m_Enabled: 1
m_Avatar: {fileID: 0}
m_Controller: {fileID: 9100000, guid: 512906a2493039b4b8487da89d6a68de, 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!1 &6083823790040367567
GameObject:
m_ObjectHideFlags: 0

View file

@ -1,5 +1,85 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-7121934739219216110
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: eyeBlink
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: 06b1b3a4e8dcee547a9edc5dc3bf2548, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1107 &-1930493925547852623
AnimatorStateMachine:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Eyes
m_ChildStates:
- serializedVersion: 1
m_State: {fileID: -7121934739219216110}
m_Position: {x: 300, y: 40, z: 0}
- serializedVersion: 1
m_State: {fileID: -925516020150419531}
m_Position: {x: 330, y: 100, z: 0}
- serializedVersion: 1
m_State: {fileID: 7586799867838041638}
m_Position: {x: 370, y: 170, 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: -925516020150419531}
--- !u!1102 &-925516020150419531
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: eyeOpen
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: aa83a522fc67ea645b2116a174ba1fca, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!91 &9100000
AnimatorController:
m_ObjectHideFlags: 0
@ -22,6 +102,18 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
- serializedVersion: 5
m_Name: Eyes
m_StateMachine: {fileID: -1930493925547852623}
m_Mask: {fileID: 0}
m_Motions: []
m_Behaviours: []
m_BlendingMode: 0
m_SyncedLayerIndex: -1
m_DefaultWeight: 1
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1107 &276946297870919793
AnimatorStateMachine:
serializedVersion: 6
@ -157,3 +249,29 @@ AnimatorState:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &7586799867838041638
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: eyeSmile
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: f66b4c7a373cc7d43a24327564f0ae67, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:

View file

@ -24,7 +24,7 @@ AnimationClip:
- time: 0.16666667
value: {fileID: 288899377, guid: 99d6a57b351ee2046b9af317c31f4a05, type: 3}
attribute: m_Sprite
path:
path: Head/Face/eye
classID: 212
script: {fileID: 0}
m_SampleRate: 60
@ -35,7 +35,7 @@ AnimationClip:
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
path: 620517349
attribute: 0
script: {fileID: 0}
typeID: 212

View file

@ -17,21 +17,36 @@ AnimationClip:
m_PositionCurves: []
m_ScaleCurves: []
m_FloatCurves: []
m_PPtrCurves: []
m_PPtrCurves:
- curve:
- time: 0
value: {fileID: 288899377, guid: 99d6a57b351ee2046b9af317c31f4a05, type: 3}
attribute: m_Sprite
path: Head/Face/eye
classID: 212
script: {fileID: 0}
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: []
pptrCurveMapping: []
genericBindings:
- serializedVersion: 2
path: 620517349
attribute: 0
script: {fileID: 0}
typeID: 212
customType: 23
isPPtrCurve: 1
pptrCurveMapping:
- {fileID: 288899377, guid: 99d6a57b351ee2046b9af317c31f4a05, type: 3}
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 1
m_StopTime: 0.016666668
m_OrientationOffsetY: 0
m_Level: 0
m_CycleOffset: 0

View file

@ -26,7 +26,7 @@ AnimationClip:
- time: 0.5
value: {fileID: 288899377, guid: 99d6a57b351ee2046b9af317c31f4a05, type: 3}
attribute: m_Sprite
path:
path: Head/Face/eye
classID: 212
script: {fileID: 0}
m_SampleRate: 60
@ -37,7 +37,7 @@ AnimationClip:
m_ClipBindingConstant:
genericBindings:
- serializedVersion: 2
path: 0
path: 620517349
attribute: 0
script: {fileID: 0}
typeID: 212

View file

@ -44,7 +44,7 @@ namespace HeavenStudio.Games.Scripts_NailCarpenter
}
SoundByte.PlayOneShotGame("nailCarpenter/HammerStrong");
nailAnim.DoScaledAnimationAsync("longNailHammered", 0.25f);
game.EyeAnim.DoScaledAnimationAsync("eyeSmile", 0.25f);
game.Carpenter.DoScaledAnimationAsync("eyeSmile", 0.25f, animLayer: 1);
}
private void WeakHammmerJust(PlayerActionEvent caller, float state)
@ -64,7 +64,7 @@ namespace HeavenStudio.Games.Scripts_NailCarpenter
private void HammmerMiss(PlayerActionEvent caller)
{
game.EyeAnim.DoScaledAnimationAsync("eyeBlink", 0.25f);
game.Carpenter.DoScaledAnimationAsync("eyeBlink", 0.25f, animLayer: 1);
}
private void Update()

View file

@ -62,7 +62,7 @@ namespace HeavenStudio.Games.Scripts_NailCarpenter
private void HammmerMiss(PlayerActionEvent caller)
{
game.EyeAnim.DoScaledAnimationAsync("eyeBlink", 0.25f);
game.Carpenter.DoScaledAnimationAsync("eyeBlink", 0.25f, animLayer: 1);
}
private void Update()

View file

@ -118,7 +118,7 @@ namespace HeavenStudio.Games
public GameObject baseLongNail;
public GameObject baseSweet;
public Animator Carpenter;
public Animator EyeAnim;
// public Animator EyeAnim;
public Animator EffectExclamRed;
public Animator EffectExclamBlue;
@ -193,7 +193,7 @@ namespace HeavenStudio.Games
List<ScheduledPattern> scheduledPatterns = new List<ScheduledPattern>();
double patternStartBeat, gameStartBeat;
PatternType patternType, lastPatternType;
int patternIndex;
int patternIndex, lastPatternIndex = -1;
double slideBeat = double.MaxValue;
double slideLength;
@ -259,20 +259,26 @@ namespace HeavenStudio.Games
patternIndex = 0;
foreach (var evt in events)
{
var pattern = new ScheduledPattern
if (evt.length == 0) continue;
int patternDivisions = (int)Math.Ceiling(evt.length / PATTERN_SEEK_TIME);
PatternType patternType = evt.datamodel switch
{
beat = evt.beat,
length = evt.length,
type = evt.datamodel switch
{
"nailCarpenter/puddingNail" => PatternType.Pudding,
"nailCarpenter/cherryNail" => PatternType.Cherry,
"nailCarpenter/cakeNail" => PatternType.Cake,
"nailCarpenter/cakeLongNail" => PatternType.CakeLong,
_ => throw new NotImplementedException()
}
"nailCarpenter/puddingNail" => PatternType.Pudding,
"nailCarpenter/cherryNail" => PatternType.Cherry,
"nailCarpenter/cakeNail" => PatternType.Cake,
"nailCarpenter/cakeLongNail" => PatternType.CakeLong,
_ => throw new NotImplementedException()
};
scheduledPatterns.Add(pattern);
for (int i = 0; i < patternDivisions; i++)
{
var pattern = new ScheduledPattern
{
beat = evt.beat + (PATTERN_SEEK_TIME * i),
length = Math.Min(evt.length - (PATTERN_SEEK_TIME * i), PATTERN_SEEK_TIME),
type = patternType
};
scheduledPatterns.Add(pattern);
}
}
}
@ -289,9 +295,19 @@ namespace HeavenStudio.Games
if (patternIndex < scheduledPatterns.Count)
{
var pattern = scheduledPatterns[patternIndex];
if (pattern.beat + pattern.length < patternStartBeat) continue;
if (pattern.type == PatternType.None)
{
patternIndex++;
continue;
}
if (pattern.beat + pattern.length < patternStartBeat)
{
patternIndex++;
continue;
}
SpawnPattern(pattern.beat, pattern.length, pattern.type);
patternStartBeat += pattern.length;
patternStartBeat = pattern.beat + pattern.length;
lastPatternIndex = patternIndex;
patternIndex++;
}
else

View file

@ -86,7 +86,7 @@ namespace HeavenStudio.Games.Scripts_NailCarpenter
{
game.ScoreMiss();
BreakAnim();
game.EyeAnim.DoScaledAnimationAsync("eyeBlink", 0.25f);
game.Carpenter.DoScaledAnimationAsync("eyeBlink", 0.25f, animLayer: 1);
}
private void Update()