2026-07-08 이벤트존 추가

This commit is contained in:
2026-07-08 18:15:44 +09:00
parent f00da071ff
commit 27a0dfcd44
11 changed files with 1177 additions and 5 deletions

Binary file not shown.

View File

@@ -19,6 +19,9 @@ public class DialogCondition
[Tooltip("골랐어야 하는 선택지 Code들 (전부 필요)")]
public List<string> RequiredChoiceCodes = new();
[Tooltip("밟았어야 하는 이벤트존 Id들 (전부 필요)")]
public List<string> RequiredZoneIds = new();
// affectionTarget: 호감도 조건을 검사할 캐릭터 (보통 대화를 거는 NPC 자신)
public bool IsMet(CharacterData affectionTarget)
{
@@ -38,6 +41,10 @@ public bool IsMet(CharacterData affectionTarget)
if (!string.IsNullOrEmpty(code) && !story.HasChosen(code))
return false;
foreach (var zoneId in RequiredZoneIds)
if (!string.IsNullOrEmpty(zoneId) && !story.HasTriggeredZone(zoneId))
return false;
return true;
}
}

View File

@@ -73,6 +73,15 @@ public void RecordChoice(string code)
Changed?.Invoke();
}
// ── 이벤트존 이력 ────────────────────────────────────────────
public bool HasTriggeredZone(string zoneId) => _state.TriggeredZones.Contains(zoneId);
public void RecordZoneTriggered(string zoneId)
{
if (string.IsNullOrEmpty(zoneId) || !_state.TriggeredZones.Add(zoneId)) return;
Changed?.Invoke();
}
// ── 저장 / 로드 ──────────────────────────────────────────────
// 플레이 시작 시엔 항상 빈 상태로 시작한다 (테스트 반복이 꼬이지 않게).
// 이어하기를 만들 때 타이틀 화면 등에서 Load()를 호출하면 된다.

View File

@@ -0,0 +1,104 @@
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.Playables;
using UnityEngine.XR.Interaction.Toolkit.Locomotion;
// 트리거 존: Player 태그가 들어오면 등록된 타임라인을 재생.
// 옵션으로 재생 동안 플레이어 로코모션(이동/회전)을 잠글 수 있다.
[RequireComponent(typeof(Collider))]
public class EventZone : MonoBehaviour
{
[Tooltip("플레이어 진입 시 재생할 타임라인")]
[SerializeField] private PlayableDirector _timeline;
[Tooltip("StoryState에 기록되는 Id. 비워두면 오브젝트 이름 사용 (DialogCondition의 RequiredZoneIds에서 참조)")]
[SerializeField] private string _zoneId;
[Header("옵션")]
[Tooltip("재생 동안 플레이어 조작(로코모션)을 잠글지 여부. HMD 트래킹은 유지된다")]
[SerializeField] private bool _lockPlayerControl = true;
[Tooltip("한 번만 재생. 끄면 재생이 끝난 뒤 다시 들어오면 또 재생된다")]
[SerializeField] private bool _playOnce = true;
private bool _hasPlayed;
private bool _isPlaying;
public string ZoneId => string.IsNullOrEmpty(_zoneId) ? name : _zoneId;
// 잠글 때 켜져 있던 프로바이더만 기록해서, 해제 시 원래 꺼져 있던 것까지 켜지 않도록 한다.
private readonly List<LocomotionProvider> _lockedProviders = new();
private void Reset()
{
GetComponent<Collider>().isTrigger = true;
}
private void OnTriggerEnter(Collider other)
{
if (!other.CompareTag("Player")) return;
// 이어하기 로드 후에도 한 번 밟은 존은 다시 재생되지 않도록 StoryState 기록도 함께 본다.
var story = StoryManager.Instance; // 매니저 없는 테스트 씬에서도 재생은 되도록 null 허용
if (_isPlaying || (_playOnce && (_hasPlayed || (story != null && story.HasTriggeredZone(ZoneId)))))
return;
// 밟은 사실은 대화 활성화 조건(RequiredZoneIds) 판정에 쓰이므로 타임라인 유무와 무관하게 기록
if (story != null)
story.RecordZoneTriggered(ZoneId);
_hasPlayed = true;
if (_timeline == null)
{
Debug.LogWarning($"[EventZone] 타임라인이 등록되지 않음 (기록만 됨): {name}");
return;
}
_isPlaying = true;
if (_lockPlayerControl)
LockPlayer(other.transform);
_timeline.stopped += OnTimelineStopped;
_timeline.Play();
}
// 타임라인이 끝(또는 외부에서 Stop)나면 호출됨. Extrapolation이 Hold면 stopped가 오지 않으니 None 권장.
private void OnTimelineStopped(PlayableDirector director)
{
director.stopped -= OnTimelineStopped;
_isPlaying = false;
UnlockPlayer();
}
// Player 태그 루트(XR Origin) 아래의 로코모션 프로바이더를 전부 꺼서 이동/회전을 막는다.
private void LockPlayer(Transform playerRoot)
{
_lockedProviders.Clear();
foreach (var provider in playerRoot.GetComponentsInChildren<LocomotionProvider>())
{
if (!provider.enabled) continue;
provider.enabled = false;
_lockedProviders.Add(provider);
}
}
private void UnlockPlayer()
{
foreach (var provider in _lockedProviders)
{
if (provider != null)
provider.enabled = true;
}
_lockedProviders.Clear();
}
private void OnDestroy()
{
if (_timeline != null)
_timeline.stopped -= OnTimelineStopped;
// 존이 재생 중에 파괴돼도 플레이어가 잠긴 채 남지 않도록
UnlockPlayer();
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 0a1da05e6a37ca14db9e919cb2293e49

View File

@@ -10,6 +10,7 @@ public class StoryState
public readonly Dictionary<string, int> Affection = new(); // 캐릭터 Id → 호감도
public readonly HashSet<string> CompletedDialogs = new(); // 완료한 DialogGroup 이름
public readonly HashSet<string> ChosenCodes = new(); // 골랐던 선택지 Code
public readonly HashSet<string> TriggeredZones = new(); // 밟았던 EventZone Id
public void Clear()
{
@@ -17,6 +18,7 @@ public void Clear()
Affection.Clear();
CompletedDialogs.Clear();
ChosenCodes.Clear();
TriggeredZones.Clear();
}
// ── JSON 변환 ────────────────────────────────────────────────
@@ -29,6 +31,7 @@ private class JsonData
public List<int> AffectionValues = new();
public List<string> CompletedDialogs = new();
public List<string> ChosenCodes = new();
public List<string> TriggeredZones = new();
}
public string ToJson()
@@ -41,6 +44,7 @@ public string ToJson()
}
data.CompletedDialogs.AddRange(CompletedDialogs);
data.ChosenCodes.AddRange(ChosenCodes);
data.TriggeredZones.AddRange(TriggeredZones);
return JsonUtility.ToJson(data, prettyPrint: true);
}
@@ -55,6 +59,7 @@ public static StoryState FromJson(string json)
state.Affection[data.AffectionIds[i]] = data.AffectionValues[i];
state.CompletedDialogs.UnionWith(data.CompletedDialogs);
state.ChosenCodes.UnionWith(data.ChosenCodes);
state.TriggeredZones.UnionWith(data.TriggeredZones);
return state;
}
}

View File

@@ -0,0 +1,432 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &1
MonoBehaviour:
m_ObjectHideFlags: 61
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: 12501, guid: 0000000000000000e000000000000000, type: 0}
m_Name: Carnotaurus_Dialog3
m_EditorClassIdentifier: UnityEditor.dll::Unity.GraphToolkit.Editor.Implementation.GraphObjectImp
m_GraphModel:
rid: 4848514365209968918
references:
version: 2
RefIds:
- rid: -2
type: {class: , ns: , asm: }
- rid: 4848514365209968918
type: {class: GraphModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 14743801598135559126
m_Value1: 14874423988134968649
m_HashGuid:
serializedVersion: 2
Hash: d6e3b4ff6f819ccc497d5523cf916cce
m_Name: Carnotaurus_Dialog3
m_GraphNodeModels:
- rid: 4848514365209968921
- rid: 4848514365209968923
- rid: 4848514365209968938
m_GraphWireModels:
- rid: 4848514365209968937
- rid: 4848514365209968939
m_GraphStickyNoteModels: []
m_GraphPlacematModels: []
m_GraphVariableModels: []
m_GraphPortalModels: []
m_SectionModels:
- rid: 4848514365209968919
m_LocalSubgraphs: []
m_LastKnownBounds:
serializedVersion: 2
x: -86
y: 92
width: 1095
height: 432
m_GraphElementMetaData:
- m_Guid:
m_Value0: 11886921906498108818
m_Value1: 1241276629292152157
m_HashGuid:
serializedVersion: 2
Hash: 92fda08d7ed4f6a45df5f38c84e63911
m_Category: 0
m_Index: 0
- m_Guid:
m_Value0: 5760401696664917696
m_Value1: 5304284838533059046
m_HashGuid:
serializedVersion: 2
Hash: c01645bdd20ef14fe6d14014f59a9c49
m_Category: 0
m_Index: 1
- m_Guid:
m_Value0: 12075701744894930101
m_Value1: 8354277098249585595
m_HashGuid:
serializedVersion: 2
Hash: b5ec06d6c18295a7bb03590cc25af073
m_Category: 2
m_Index: 0
- m_Guid:
m_Value0: 18033278169514442201
m_Value1: 7595949161354533057
m_HashGuid:
serializedVersion: 2
Hash: d9fdb665f31243fac1987666843b6a69
m_Category: 0
m_Index: 2
- m_Guid:
m_Value0: 1372665982324540530
m_Value1: 4413923243976307164
m_HashGuid:
serializedVersion: 2
Hash: 7284b72f70b00c13dc310cefcd67413d
m_Category: 2
m_Index: 1
m_EntryPoint:
rid: 4848514365209968921
m_Graph:
rid: 4848514365209968920
- rid: 4848514365209968919
type: {class: SectionModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 17677551595292556901
m_Value1: 13576497333533336155
m_HashGuid:
serializedVersion: 2
Hash: 657e0d28844753f55be24abb646869bc
m_Version: 2
m_Items: []
m_Title:
- rid: 4848514365209968920
type: {class: DialogGraph, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 4848514365209968921
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 11886921906498108818
m_Value1: 1241276629292152157
m_HashGuid:
serializedVersion: 2
Hash: 92fda08d7ed4f6a45df5f38c84e63911
m_Version: 2
m_Position: {x: -86.250015, y: 147.20003}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList: []
m_ValueList: []
m_InputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_OutputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_Collapsed: 0
m_CurrentModeIndex: 0
m_ElementColor:
m_Color: {r: 0, g: 0, b: 0, a: 0}
m_HasUserColor: 0
m_Node:
rid: 4848514365209968922
- rid: 4848514365209968922
type: {class: DialogStartNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 4848514365209968923
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 5760401696664917696
m_Value1: 5304284838533059046
m_HashGuid:
serializedVersion: 2
Hash: c01645bdd20ef14fe6d14014f59a9c49
m_Version: 2
m_Position: {x: 180.505, y: 92.442505}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- __option_EventKey
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- Bgm
- Vfx
- LineDuration
- LookAtPlayer
- WaitForInput
m_ValueList:
- rid: 4848514365209968924
- rid: 4848514365209968925
- rid: 4848514365209968926
- rid: 4848514365209968927
- rid: 4848514365209968928
- rid: 4848514365209968929
- rid: 4848514365209968930
- rid: 4848514365209968931
- rid: 4848514365209968932
- rid: 4848514365209968933
- rid: 4848514365209968934
- rid: 4848514365209968935
m_InputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_OutputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_Collapsed: 0
m_CurrentModeIndex: 0
m_ElementColor:
m_Color: {r: 0, g: 0, b: 0, a: 0}
m_HasUserColor: 0
m_Node:
rid: 4848514365209968936
- rid: 4848514365209968924
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 4848514365209968925
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 4848514365209968926
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2}
- rid: 4848514365209968927
type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
Value: "\uB108 \uAC10\uD788 \uBC29\uAE08 \uB0B4 \uAF2C\uB9AC\uB97C \uBC1F\uC740\uAC70\uC57C?"
- rid: 4848514365209968928
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968929
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968930
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968931
type: {class: 'Constant`1[[UnityEngine.AudioClip, UnityEngine.AudioModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968932
type: {class: 'Constant`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968933
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 5
- rid: 4848514365209968934
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 1
- rid: 4848514365209968935
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 4848514365209968936
type: {class: DialogLineNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:
- rid: 4848514365209968937
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 12075701744894930101
m_Value1: 8354277098249585595
m_HashGuid:
serializedVersion: 2
Hash: b5ec06d6c18295a7bb03590cc25af073
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 11886921906498108818
m_Value1: 1241276629292152157
m_NodeModelHashGuid:
serializedVersion: 2
Hash: 92fda08d7ed4f6a45df5f38c84e63911
m_UniqueId: Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title:
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 5760401696664917696
m_Value1: 5304284838533059046
m_NodeModelHashGuid:
serializedVersion: 2
Hash: c01645bdd20ef14fe6d14014f59a9c49
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 4848514365209968938
type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 18033278169514442201
m_Value1: 7595949161354533057
m_HashGuid:
serializedVersion: 2
Hash: d9fdb665f31243fac1987666843b6a69
m_Version: 2
m_Position: {x: 617.28503, y: 92}
m_Title:
m_Tooltip:
m_NodePreviewModel:
rid: -2
m_State: 0
m_InputConstantsById:
m_KeyList:
- __option_ChoiceCount
- __option_EventKey
- Speaker
- TalkText
- Gesture
- Expression
- Voice
- Bgm
- Vfx
- LineDuration
- LookAtPlayer
- WaitForInput
m_ValueList:
- rid: 4848514365209968940
- rid: 4848514365209968941
- rid: 4848514365209968942
- rid: 4848514365209968943
- rid: 4848514365209968944
- rid: 4848514365209968945
- rid: 4848514365209968946
- rid: 4848514365209968947
- rid: 4848514365209968948
- rid: 4848514365209968949
- rid: 4848514365209968950
- rid: 4848514365209968951
m_InputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_OutputPortInfos:
expandedPortsById:
m_KeyList: []
m_ValueList:
m_Collapsed: 0
m_CurrentModeIndex: 0
m_ElementColor:
m_Color: {r: 0, g: 0, b: 0, a: 0}
m_HasUserColor: 0
m_Node:
rid: 4848514365209968952
- rid: 4848514365209968939
type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Guid:
m_Value0: 1372665982324540530
m_Value1: 4413923243976307164
m_HashGuid:
serializedVersion: 2
Hash: 7284b72f70b00c13dc310cefcd67413d
m_Version: 2
m_FromPortReference:
m_NodeModelGuid:
m_Value0: 5760401696664917696
m_Value1: 5304284838533059046
m_NodeModelHashGuid:
serializedVersion: 2
Hash: c01645bdd20ef14fe6d14014f59a9c49
m_UniqueId: Out
m_PortDirection: 2
m_PortOrientation: 0
m_Title:
m_ToPortReference:
m_NodeModelGuid:
m_Value0: 18033278169514442201
m_Value1: 7595949161354533057
m_NodeModelHashGuid:
serializedVersion: 2
Hash: d9fdb665f31243fac1987666843b6a69
m_UniqueId: In
m_PortDirection: 1
m_PortOrientation: 0
m_Title:
- rid: 4848514365209968940
type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 4848514365209968941
type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
- rid: 4848514365209968942
type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2}
- rid: 4848514365209968943
type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value:
Value: "\uAC00\uB9CC\uB450\uC9C0 \uC54A\uACA0\uC5B4."
- rid: 4848514365209968944
type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968945
type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968946
type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968947
type: {class: 'Constant`1[[UnityEngine.AudioClip, UnityEngine.AudioModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968948
type: {class: 'Constant`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: {fileID: 0}
- rid: 4848514365209968949
type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 5
- rid: 4848514365209968950
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 4848514365209968951
type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule}
data:
m_Value: 0
- rid: 4848514365209968952
type: {class: DialogLineNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor}
data:

View File

@@ -0,0 +1,10 @@
fileFormatVersion: 2
guid: f685f43bf3bc9d7408fbe71bd34f6207
ScriptedImporter:
internalIDToNameTable: []
externalObjects: {}
serializedVersion: 2
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 2ae5ca89bbed445479d9023586f0c041, type: 3}

View File

@@ -0,0 +1,603 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &-5079099715544588089
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: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Animation Track
m_EditorClassIdentifier: Unity.Timeline::UnityEngine.Timeline.AnimationTrack
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: 11400000}
m_Children:
- {fileID: -217082101412507945}
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 0
m_InfiniteClipPostExtrapolation: 0
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: 0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 0}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &-217082101412507945
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: 11500000, guid: d21dcc2386d650c4597f3633c75a1f98, type: 3}
m_Name: Override 0
m_EditorClassIdentifier: Unity.Timeline::UnityEngine.Timeline.AnimationTrack
m_Version: 3
m_AnimClip: {fileID: 0}
m_Locked: 0
m_Muted: 0
m_CustomPlayableFullTypename:
m_Curves: {fileID: 0}
m_Parent: {fileID: -5079099715544588089}
m_Children: []
m_Clips: []
m_Markers:
m_Objects: []
m_InfiniteClipPreExtrapolation: 1
m_InfiniteClipPostExtrapolation: 1
m_InfiniteClipOffsetPosition: {x: 0, y: 0, z: 0}
m_InfiniteClipOffsetEulerAngles: {x: -0, y: 0, z: 0}
m_InfiniteClipTimeOffset: 0
m_InfiniteClipRemoveOffset: 0
m_InfiniteClipApplyFootIK: 1
mInfiniteClipLoop: 0
m_MatchTargetFields: 63
m_Position: {x: 0, y: 0, z: 0}
m_EulerAngles: {x: 0, y: 0, z: 0}
m_AvatarMask: {fileID: 0}
m_ApplyAvatarMask: 1
m_TrackOffset: 0
m_InfiniteClip: {fileID: 2058698922817219297}
m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1}
m_Rotation: {x: 0, y: 0, z: 0, w: 1}
m_ApplyOffsets: 0
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
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: 11500000, guid: bfda56da833e2384a9677cd3c976a436, type: 3}
m_Name: Test_TailStepTimeline
m_EditorClassIdentifier: Unity.Timeline::UnityEngine.Timeline.TimelineAsset
m_Version: 0
m_Tracks:
- {fileID: -5079099715544588089}
m_FixedDuration: 0
m_EditorSettings:
m_Framerate: 60
m_ScenePreview: 1
m_DurationMode: 0
m_MarkerTrack: {fileID: 0}
--- !u!74 &2058698922817219297
AnimationClip:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Recorded
serializedVersion: 8
m_Legacy: 0
m_Compressed: 0
m_UseHighQualityCurve: 1
m_RotationCurves: []
m_CompressedRotationCurves: []
m_EulerCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 0, y: -7.231, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 3.0166667
value: {x: 0, y: -85.733, z: 0}
inSlope: {x: 0, y: -43.0481, z: 0}
outSlope: {x: 0, y: -43.0481, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 3.95
value: {x: 0, y: -177.271, z: 0}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_PositionCurves:
- curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: {x: 1.05, y: 0, z: -1.49}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 2
value: {x: 0, y: 0, z: 1.813}
inSlope: {x: -0.5599515, y: 0, z: 0}
outSlope: {x: -0.5599515, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 3.0166667
value: {x: -0.6391871, y: 0, z: 1.303619}
inSlope: {x: 0, y: 0, z: -0.611997}
outSlope: {x: 0, y: 0, z: -0.611997}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
- serializedVersion: 3
time: 3.95
value: {x: -0.11853152, y: 0, z: 0.6196057}
inSlope: {x: 0, y: 0, z: 0}
outSlope: {x: 0, y: 0, z: 0}
tangentMode: 0
weightedMode: 0
inWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
outWeight: {x: 0.33333334, y: 0.33333334, z: 0.33333334}
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
path:
m_ScaleCurves: []
m_FloatCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 0.99832714
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: MinDistance
path:
classID: 82
script: {fileID: 0}
flags: 0
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: 1
script: {fileID: 0}
typeID: 4
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
metaData: 0
- serializedVersion: 2
path: 0
attribute: 4
script: {fileID: 0}
typeID: 4
customType: 4
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
metaData: 0
- serializedVersion: 2
path: 0
attribute: 1338947382
script: {fileID: 0}
typeID: 82
customType: 0
isPPtrCurve: 0
isIntCurve: 0
isSerializeReferenceCurve: 0
metaData: 0
pptrCurveMapping: []
m_AnimationClipSettings:
serializedVersion: 2
m_AdditiveReferencePoseClip: {fileID: 0}
m_AdditiveReferencePoseTime: 0
m_StartTime: 0
m_StopTime: 3.95
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.99832714
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: MinDistance
path:
classID: 82
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1.05
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 0
inSlope: -0.5599515
outSlope: -0.5599515
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.0166667
value: -0.6391871
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
value: -0.11853152
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- 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: 2
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.0166667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
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: m_LocalPosition.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -1.49
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 2
value: 1.813
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.0166667
value: 1.303619
inSlope: -0.611997
outSlope: -0.611997
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
value: 0.6196057
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalPosition.z
path:
classID: 4
script: {fileID: 0}
flags: 0
- 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: 3.0166667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
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: localEulerAnglesRaw.x
path:
classID: 4
script: {fileID: 0}
flags: 16
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: -7.231
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.0166667
value: -85.733
inSlope: -43.0481
outSlope: -43.0481
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
value: -177.271
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: localEulerAnglesRaw.y
path:
classID: 4
script: {fileID: 0}
flags: 16
- 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: 3.0166667
value: 0
inSlope: 0
outSlope: 0
tangentMode: 136
weightedMode: 0
inWeight: 0.33333334
outWeight: 0.33333334
- serializedVersion: 3
time: 3.95
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: localEulerAnglesRaw.z
path:
classID: 4
script: {fileID: 0}
flags: 16
m_EulerEditorCurves:
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.x
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.y
path:
classID: 4
script: {fileID: 0}
flags: 0
- serializedVersion: 2
curve:
serializedVersion: 2
m_Curve: []
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
attribute: m_LocalEulerAngles.z
path:
classID: 4
script: {fileID: 0}
flags: 0
m_HasGenericRootTransform: 1
m_HasMotionFloatCurves: 0
m_Events: []

View File

@@ -1,7 +1,8 @@
fileFormatVersion: 2
guid: e35daa69cbd7faa47834846f94957b83
TextScriptImporter:
guid: 20902f4f436c76b479c1062c0081ff75
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1 +0,0 @@
dumy