diff --git a/Assets/01_Scenes/Hischool_Chapter1.unity b/Assets/01_Scenes/Hischool_Chapter1.unity index 683ab76c..1ce4ae98 100644 --- a/Assets/01_Scenes/Hischool_Chapter1.unity +++ b/Assets/01_Scenes/Hischool_Chapter1.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:c84bfcd0f9d815d6c11ad85386c2013b5578544d2db9b43bc92160151d4ce8e4 -size 4040356 +oid sha256:6b45c9b4262eba992b7320325dbd2a0151180dd533ee6dcc0d8853e1ad7b504c +size 4202174 diff --git a/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs b/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs index 090a4392..9522f46a 100644 --- a/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs +++ b/Assets/02_Scripts/Communication/Dialog/DialogPlayer.cs @@ -82,7 +82,7 @@ public async Awaitable Play() // 이벤트존 타임라인(컷씬) 재생 중에도 무시 — 컷씬이 NPC 루트를 직접 움직이는 동안 // 대화를 시작하면 회전 캡처/복원이 타임라인과 충돌해서 방향이 꼬인다 - if (EventZone.IsAnyPlaying) return; + if (EventZoneTimeline.IsAnyPlaying) return; // 다른 NPC의 선택 메뉴가 떠 있으면 먼저 취소한다. // (취소된 쪽의 Play가 이 자리에서 HUD 숨김 등 정리를 마친 뒤에 이쪽이 시작된다) @@ -131,6 +131,56 @@ public async Awaitable Play() } } + // 조건/선택 메뉴를 건너뛰고 특정 대화 그룹을 강제로 시작한다 (EventZoneTrigger 등 UnityEvent 연결용). + // _dialogs에 등록된 그룹이면 그 항목의 설정(진행도 보상 등)을 그대로 쓰고, 없으면 임시 항목으로 재생한다. + // 완료 여부는 검사하지 않으므로(강제) 1회성이 필요하면 호출하는 쪽(존의 Trigger Once)에서 보장할 것. + public void PlayGroup(DialogGroup group) + { + _ = PlayGroupForced(group); + } + + private async Awaitable PlayGroupForced(DialogGroup group) + { + if (group == null || IsPlaying) return; + if (_entryInProgress != null) return; // 다른 NPC가 대사 재생 중 + if (EventZoneTimeline.IsAnyPlaying) return; // 컷씬 중엔 시작하지 않음 (Play()와 동일한 이유) + + // 다른 NPC의 선택 메뉴가 떠 있으면 먼저 취소 + if (ChoiceHud.Instance != null) + ChoiceHud.Instance.CancelPending(); + + IsPlaying = true; + try + { + // 등록된 항목이 있으면 Repeatable/ProgressOnComplete 설정을 그대로 사용 + DialogEntry entry = _dialogs.Find(e => e.Group == group); + if (entry.Group == null) + entry = new DialogEntry { Group = group }; + + _originalRotations.TryAdd(transform, GetOriginalRotation(transform)); + RotateTowardPlayer(transform); + + if (_dialogStartDelay > 0f) + { + await Awaitable.WaitForSecondsAsync(_dialogStartDelay, destroyCancellationToken); + if (_entryInProgress != null) return; // 기다리는 사이 다른 NPC의 대화가 시작됨 + } + + _entryInProgress = this; + await PlayEntry(entry); + } + catch (OperationCanceledException) + { + // 씬 전환 등으로 취소됨 — PlayEntry의 finally에서 정리됨 + } + finally + { + RestoreRotations(); + if (_entryInProgress == this) _entryInProgress = null; + IsPlaying = false; + } + } + // 조건을 만족하고 (반복 가능하거나 아직 안 한) 대화들의 인덱스. 리스트 순서 유지. private List FindPlayableIndices() { diff --git a/Assets/02_Scripts/Managers/SceneBgm.cs b/Assets/02_Scripts/Managers/SceneBgm.cs index d4652396..3c51d7ca 100644 --- a/Assets/02_Scripts/Managers/SceneBgm.cs +++ b/Assets/02_Scripts/Managers/SceneBgm.cs @@ -3,7 +3,7 @@ // 씬별 BGM 관리 (이벤트 구동). 씬마다 하나 배치한다. // - 씬 시작 시 Default Bgm 재생 -// - EventZone이 발동하거나 StoryTrigger가 켜지는 순간, 그 Id에 매핑된 곡이 있으면 교체 (크로스페이드) +// - 이벤트 존(EventZoneTimeline/EventZoneTrigger)이 발동하거나 StoryTrigger가 켜지는 순간, 그 Id에 매핑된 곡이 있으면 교체 (크로스페이드) // - 매핑에 없는 Id는 무시. 나중에 발동한 항목이 이긴다 // - 대화 전용 BGM(Override) 재생 중이면 곡은 보류됐다가 대화가 끝나면 반영된다 public class SceneBgm : MonoBehaviour @@ -11,7 +11,7 @@ public class SceneBgm : MonoBehaviour [System.Serializable] public class BgmEntry { - [Tooltip("EventZone의 Zone Id 또는 StoryTrigger의 Trigger Id")] + [Tooltip("이벤트 존의 Zone Id 또는 StoryTrigger의 Trigger Id")] public string Id; [Tooltip("해당 Id 발동 시 재생할 BGM. 비우면 무음")] @@ -32,13 +32,15 @@ private void Start() private void OnEnable() { - EventZone.OnZoneTriggered += HandleId; + EventZoneTimeline.OnZoneTriggered += HandleId; + EventZoneTrigger.OnZoneTriggered += HandleId; StoryTrigger.OnActivated += HandleId; } private void OnDisable() { - EventZone.OnZoneTriggered -= HandleId; + EventZoneTimeline.OnZoneTriggered -= HandleId; + EventZoneTrigger.OnZoneTriggered -= HandleId; StoryTrigger.OnActivated -= HandleId; } diff --git a/Assets/02_Scripts/Story/EventZone.cs b/Assets/02_Scripts/Story/EventZoneTimeline.cs similarity index 91% rename from Assets/02_Scripts/Story/EventZone.cs rename to Assets/02_Scripts/Story/EventZoneTimeline.cs index fae58e2e..004b8605 100644 --- a/Assets/02_Scripts/Story/EventZone.cs +++ b/Assets/02_Scripts/Story/EventZoneTimeline.cs @@ -4,10 +4,11 @@ using UnityEngine.Playables; using UnityEngine.XR.Interaction.Toolkit.Locomotion; -// 트리거 존: Player 태그가 들어오면 등록된 타임라인을 재생. +// 트리거 존(타임라인): Player 태그가 들어오면 등록된 타임라인을 재생. // 옵션으로 재생 동안 플레이어 로코모션(이동/회전)을 잠글 수 있다. +// (UnityEvent를 실행하는 존은 EventZoneTrigger) [RequireComponent(typeof(Collider))] -public class EventZone : MonoBehaviour +public class EventZoneTimeline : MonoBehaviour { [Tooltip("플레이어 진입 시 재생할 타임라인")] [SerializeField] private PlayableDirector _timeline; @@ -25,7 +26,7 @@ public class EventZone : MonoBehaviour private bool _hasPlayed; private bool _isPlaying; - // 어떤 EventZone이든 타임라인(컷씬)이 재생 중이면 true. + // 어떤 EventZoneTimeline이든 타임라인(컷씬)이 재생 중이면 true. // 컷씬이 NPC의 루트를 직접 움직일 수 있으므로, 재생 중엔 대화 시작을 막는 데 쓴다. public static bool IsAnyPlaying => _playingCount > 0; private static int _playingCount; @@ -60,7 +61,7 @@ private void OnTriggerEnter(Collider other) if (_timeline == null) { - Debug.LogWarning($"[EventZone] 타임라인이 등록되지 않음 (기록만 됨): {name}"); + Debug.LogWarning($"[EventZoneTimeline] 타임라인이 등록되지 않음 (기록만 됨): {name}"); return; } diff --git a/Assets/02_Scripts/Story/EventZone.cs.meta b/Assets/02_Scripts/Story/EventZoneTimeline.cs.meta similarity index 100% rename from Assets/02_Scripts/Story/EventZone.cs.meta rename to Assets/02_Scripts/Story/EventZoneTimeline.cs.meta diff --git a/Assets/02_Scripts/Story/EventZoneTrigger.cs b/Assets/02_Scripts/Story/EventZoneTrigger.cs new file mode 100644 index 00000000..88b0cf44 --- /dev/null +++ b/Assets/02_Scripts/Story/EventZoneTrigger.cs @@ -0,0 +1,110 @@ +using System; +using System.Collections.Generic; +using UnityEngine; +using UnityEngine.Events; +using UnityEngine.XR.Interaction.Toolkit.Locomotion; + +// 트리거 존(이벤트): Player 태그가 들어오면 등록된 UnityEvent를 실행. +// (타임라인을 재생하는 존은 EventZoneTimeline) +[RequireComponent(typeof(Collider))] +public class EventZoneTrigger : MonoBehaviour +{ + [Tooltip("StoryState에 기록되는 Id. 비워두면 오브젝트 이름 사용 (DialogCondition의 RequiredZoneIds에서 참조)")] + [SerializeField] private string _zoneId; + + [Tooltip("한 번만 발동. 끄면 나갔다 다시 들어오면 또 발동한다")] + [SerializeField] private bool _triggerOnce = true; + + [Tooltip("플레이어 진입 시 실행할 이벤트")] + [SerializeField] private UnityEvent _onEnter; + + [Header("플레이어 잠금")] + [Tooltip("발동 시 플레이어 조작(로코모션)을 잠글지 여부. HMD 트래킹은 유지된다. " + + "타임라인이 없으므로 잠금 시간은 아래 초로 지정")] + [SerializeField] private bool _lockPlayerControl = false; + + [Tooltip("잠금 유지 시간(초). 시간이 지나면 자동으로 풀린다")] + [SerializeField, Min(0f)] private float _lockDuration = 3f; + + private bool _hasTriggered; + private bool _isLocking; + + // 존이 실제로 발동(기록)되는 순간 ZoneId와 함께 호출 (SceneBgm 등에서 구독) + public static event Action OnZoneTriggered; + + public string ZoneId => string.IsNullOrEmpty(_zoneId) ? name : _zoneId; + + // 잠글 때 켜져 있던 프로바이더만 기록해서, 해제 시 원래 꺼져 있던 것까지 켜지 않도록 한다. + private readonly List _lockedProviders = new(); + + private void Reset() + { + GetComponent().isTrigger = true; + } + + private void OnTriggerEnter(Collider other) + { + if (!other.CompareTag("Player")) return; + + // 이어하기 로드 후에도 한 번 밟은 존은 다시 발동하지 않도록 StoryState 기록도 함께 본다. + var story = StoryManager.Instance; // 매니저 없는 테스트 씬에서도 동작하도록 null 허용 + if (_triggerOnce && (_hasTriggered || (story != null && story.HasTriggeredZone(ZoneId)))) + return; + + // 밟은 사실은 대화 활성화 조건(RequiredZoneIds) 판정에 쓰이므로 기록 + if (story != null) + story.RecordZoneTriggered(ZoneId); + _hasTriggered = true; + OnZoneTriggered?.Invoke(ZoneId); + + if (_lockPlayerControl && _lockDuration > 0f && !_isLocking) + _ = LockPlayerFor(other.transform, _lockDuration); + + _onEnter?.Invoke(); + } + + // 지정 시간 동안 플레이어 로코모션을 잠갔다가 자동 해제 + private async Awaitable LockPlayerFor(Transform playerRoot, float duration) + { + _isLocking = true; + LockPlayer(playerRoot); + try + { + await Awaitable.WaitForSecondsAsync(duration, destroyCancellationToken); + } + catch (OperationCanceledException) + { + return; // 파괴(씬 전환)로 취소됨 — OnDestroy가 해제를 처리 + } + UnlockPlayer(); + _isLocking = false; + } + + // Player 태그 루트(XR Origin) 아래의 로코모션 프로바이더를 전부 꺼서 이동/회전을 막는다. + private void LockPlayer(Transform playerRoot) + { + _lockedProviders.Clear(); + foreach (var provider in playerRoot.GetComponentsInChildren()) + { + 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() + { + // 잠금 중에 파괴돼도 플레이어 잠금이 남지 않도록 + UnlockPlayer(); + } +} diff --git a/Assets/02_Scripts/Story/EventZoneTrigger.cs.meta b/Assets/02_Scripts/Story/EventZoneTrigger.cs.meta new file mode 100644 index 00000000..9b7a4062 --- /dev/null +++ b/Assets/02_Scripts/Story/EventZoneTrigger.cs.meta @@ -0,0 +1,2 @@ +fileFormatVersion: 2 +guid: 49e091b92a028374893b434f10a66451 \ No newline at end of file diff --git a/Assets/02_Scripts/Story/StoryState.cs b/Assets/02_Scripts/Story/StoryState.cs index 524b426b..cbe7b41f 100644 --- a/Assets/02_Scripts/Story/StoryState.cs +++ b/Assets/02_Scripts/Story/StoryState.cs @@ -10,7 +10,7 @@ public class StoryState public readonly Dictionary Affection = new(); // 캐릭터 Id → 호감도 public readonly HashSet CompletedDialogs = new(); // 완료한 DialogGroup 이름 public readonly HashSet ChosenCodes = new(); // 골랐던 선택지 Code - public readonly HashSet TriggeredZones = new(); // 밟았던 EventZone Id + public readonly HashSet TriggeredZones = new(); // 밟았던 이벤트 존(Timeline/Trigger) Id public void Clear() { diff --git a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus2.dlg b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus2.dlg index 14e98dc3..e07a30d9 100644 --- a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus2.dlg +++ b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus2.dlg @@ -197,6 +197,7 @@ MonoBehaviour: - SpeakerNameOverride - ForcePlayerLook - HudAnchor + - Affection m_ValueList: - rid: 4848514365209968924 - rid: 4848514365209968925 @@ -213,6 +214,7 @@ MonoBehaviour: - rid: 4848514453388656928 - rid: 4848514453388656841 - rid: 4848514455607443586 + - rid: 4848514549877047424 m_InputPortInfos: expandedPortsById: m_KeyList: [] @@ -346,6 +348,7 @@ MonoBehaviour: - SpeakerNameOverride - ForcePlayerLook - HudAnchor + - Affection m_ValueList: - rid: 4848514365209968940 - rid: 4848514365209968941 @@ -362,6 +365,7 @@ MonoBehaviour: - rid: 4848514453388656929 - rid: 4848514453388656843 - rid: 4848514455607443587 + - rid: 4848514549877047425 m_InputPortInfos: expandedPortsById: m_KeyList: [] @@ -495,6 +499,7 @@ MonoBehaviour: - SpeakerNameOverride - ForcePlayerLook - HudAnchor + - Affection m_ValueList: - rid: 4848514430811767025 - rid: 4848514430811767026 @@ -511,6 +516,7 @@ MonoBehaviour: - rid: 4848514453388656930 - rid: 4848514453388656845 - rid: 4848514455607443588 + - rid: 4848514549877047426 m_InputPortInfos: expandedPortsById: m_KeyList: [] @@ -649,3 +655,15 @@ MonoBehaviour: type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} data: m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2} + - rid: 4848514549877047424 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047425 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047426 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 diff --git a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus3.dlg b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus3.dlg index 40c09731..9c269c07 100644 --- a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus3.dlg +++ b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Carnotaurus3.dlg @@ -161,6 +161,7 @@ MonoBehaviour: - SpeakerNameOverride - ForcePlayerLook - HudAnchor + - Affection m_ValueList: - rid: 4848514365209968924 - rid: 4848514365209968925 @@ -177,6 +178,7 @@ MonoBehaviour: - rid: 4848514453388656939 - rid: 4848514453388656863 - rid: 4848514455607443610 + - rid: 4848514549877047423 m_InputPortInfos: expandedPortsById: m_KeyList: [] @@ -289,3 +291,7 @@ MonoBehaviour: type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} data: m_Value: {fileID: 11400000, guid: b7c3c52c4e4e9fc49bf084eae180835b, type: 2} + - rid: 4848514549877047423 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 diff --git a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg new file mode 100644 index 00000000..c74ce676 --- /dev/null +++ b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg @@ -0,0 +1,484 @@ +%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: Chapter1_Yuna_Guide + 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: Chapter1_Yuna2 + m_GraphNodeModels: + - rid: 4848514365209968921 + - rid: 4848514365209968923 + - rid: 4848514549877047404 + m_GraphWireModels: + - rid: 4848514365209968937 + - rid: 4848514549877047405 + m_GraphStickyNoteModels: [] + m_GraphPlacematModels: [] + m_GraphVariableModels: [] + m_GraphPortalModels: [] + m_SectionModels: + - rid: 4848514365209968919 + m_LocalSubgraphs: [] + m_LastKnownBounds: + serializedVersion: 2 + x: -86 + y: 92 + width: 1113 + height: 537 + 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: 17936280678794318702 + m_Value1: 15061202379157129207 + m_HashGuid: + serializedVersion: 2 + Hash: 6ed33c333f78eaf8f7c7ed23c42304d1 + m_Category: 0 + m_Index: 2 + - m_Guid: + m_Value0: 3953321808817849542 + m_Value1: 14102672433391882361 + m_HashGuid: + serializedVersion: 2 + Hash: c68464513d05dd36795004e8dbc1b6c3 + 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 + - SpeakerNameOverride + - ForcePlayerLook + - HudAnchor + - Affection + 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 + - rid: 4848514453388656931 + - rid: 4848514453388656847 + - rid: 4848514455607443601 + - rid: 4848514549877047403 + 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: ccaea1cd59b6def4e93764f1965fe26f, 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: "\uC794\uB514\uC57C! \uCCAB\uB0A0\uBD80\uD130 \uB9CC\uB098\uB2E4\uB2C8 + \uC6B4\uBA85\uC778\uAC00\uBD10!" + - 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: 3 + - 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: 4848514453388656847 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 1 + - rid: 4848514453388656931 + type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogShortText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + Value: + - rid: 4848514455607443601 + type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 11400000, guid: ccaea1cd59b6def4e93764f1965fe26f, type: 2} + - rid: 4848514549877047403 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047404 + type: {class: UserNodeModelImp, ns: Unity.GraphToolkit.Editor.Implementation, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 17936280678794318702 + m_Value1: 15061202379157129207 + m_HashGuid: + serializedVersion: 2 + Hash: 6ed33c333f78eaf8f7c7ed23c42304d1 + m_Version: 2 + m_Position: {x: 657.58, y: 100.58413} + m_Title: + m_Tooltip: + m_NodePreviewModel: + rid: -2 + m_State: 0 + m_InputConstantsById: + m_KeyList: + - __option_ChoiceCount + - __option_EventKey + - Speaker + - SpeakerNameOverride + - HudAnchor + - TalkText + - Gesture + - Expression + - Voice + - Bgm + - Vfx + - LineDuration + - LookAtPlayer + - ForcePlayerLook + - WaitForInput + - Affection + m_ValueList: + - rid: 4848514549877047406 + - rid: 4848514549877047407 + - rid: 4848514549877047408 + - rid: 4848514549877047409 + - rid: 4848514549877047410 + - rid: 4848514549877047411 + - rid: 4848514549877047412 + - rid: 4848514549877047413 + - rid: 4848514549877047414 + - rid: 4848514549877047415 + - rid: 4848514549877047416 + - rid: 4848514549877047417 + - rid: 4848514549877047418 + - rid: 4848514549877047419 + - rid: 4848514549877047420 + - rid: 4848514549877047421 + 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: 4848514549877047422 + - rid: 4848514549877047405 + type: {class: WireModel, ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Guid: + m_Value0: 3953321808817849542 + m_Value1: 14102672433391882361 + m_HashGuid: + serializedVersion: 2 + Hash: c68464513d05dd36795004e8dbc1b6c3 + 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: 17936280678794318702 + m_Value1: 15061202379157129207 + m_NodeModelHashGuid: + serializedVersion: 2 + Hash: 6ed33c333f78eaf8f7c7ed23c42304d1 + m_UniqueId: In + m_PortDirection: 1 + m_PortOrientation: 0 + m_Title: + - rid: 4848514549877047406 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047407 + type: {class: 'Constant`1[[System.String, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: PlayTimelineChapter1_Guide + - rid: 4848514549877047408 + type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 11400000, guid: ccaea1cd59b6def4e93764f1965fe26f, type: 2} + - rid: 4848514549877047409 + type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogShortText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + Value: + - rid: 4848514549877047410 + type: {class: 'Constant`1[[CharacterData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 11400000, guid: ccaea1cd59b6def4e93764f1965fe26f, type: 2} + - rid: 4848514549877047411 + type: {class: 'Constant`1[[DinoLove.Dialog.GraphTool.Editor.DialogText, Assembly-CSharp-Editor]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: + Value: "\uC6B0\uB9AC \uAC19\uC740 \uBC18\uC774\uC5C8\uC9C0? \uB098\uB97C + \uB530\uB77C\uC624\uBA74 \uB3FC!" + - rid: 4848514549877047412 + type: {class: 'Constant`1[[GestureData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514549877047413 + type: {class: 'Constant`1[[ExpressionData, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514549877047414 + type: {class: 'Constant`1[[VoiceClip, Assembly-CSharp]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514549877047415 + type: {class: 'Constant`1[[UnityEngine.AudioClip, UnityEngine.AudioModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514549877047416 + type: {class: 'Constant`1[[UnityEngine.GameObject, UnityEngine.CoreModule]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: {fileID: 0} + - rid: 4848514549877047417 + type: {class: 'Constant`1[[System.Single, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 3 + - rid: 4848514549877047418 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047419 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047420 + type: {class: 'Constant`1[[System.Boolean, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047421 + type: {class: 'Constant`1[[System.Int32, mscorlib]]', ns: Unity.GraphToolkit.Editor, asm: UnityEditor.GraphToolkitModule} + data: + m_Value: 0 + - rid: 4848514549877047422 + type: {class: DialogLineNode, ns: DinoLove.Dialog.GraphTool.Editor, asm: Assembly-CSharp-Editor} + data: diff --git a/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg.meta b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg.meta new file mode 100644 index 00000000..8a3317ef --- /dev/null +++ b/Assets/07_Data/DialogGraph/Chapter1/Chapter1_Yuna_Guide.dlg.meta @@ -0,0 +1,10 @@ +fileFormatVersion: 2 +guid: 4203e94588f986f4ebac68f57c0f5e91 +ScriptedImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 2 + userData: + assetBundleName: + assetBundleVariant: + script: {fileID: 11500000, guid: 2ae5ca89bbed445479d9023586f0c041, type: 3} diff --git a/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable b/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable new file mode 100644 index 00000000..caa7e902 --- /dev/null +++ b/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable @@ -0,0 +1,689 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &-8440551103167014591 +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: [] + m_Clips: [] + m_Markers: + m_Objects: [] + m_InfiniteClipPreExtrapolation: 1 + m_InfiniteClipPostExtrapolation: 1 + m_InfiniteClipOffsetPosition: {x: 25.36, y: 0, z: -16.67} + m_InfiniteClipOffsetEulerAngles: {x: 0, y: 164.38145, 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: 1 + m_InfiniteClip: {fileID: -1760281697074970425} + m_OpenClipOffsetRotation: {x: 0, y: 0, z: 0, w: 1} + m_Rotation: {x: 0, y: 0, z: 0, w: 1} + m_ApplyOffsets: 0 +--- !u!74 &-1760281697074970425 +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: 195.6186, 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: 0.33333334 + value: {x: 0, y: 210.6186, 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: 1.1666666 + value: {x: 0, y: 210.6186, 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: 1.5 + value: {x: 0, y: 300.6186, 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: 5 + value: {x: 0, y: 300.6186, 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: 5.4166665 + value: {x: 0, y: 390.6186, 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: 6.9166665 + value: {x: 0, y: 390.6186, 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: 19.946568, y: 0, z: -22.83992} + 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: 1.1666666 + value: {x: 19.061054, y: 0, z: -24.340065} + inSlope: {x: -0.7084107, y: 0, z: 0} + outSlope: {x: -0.7084107, 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: 1.7833333 + value: {x: 17.46686, y: 0, z: -23.857382} + inSlope: {x: -4.2296553, y: 0, z: 1.5037922} + outSlope: {x: -4.2296553, y: 0, z: 1.5037922} + 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: 1.8 + value: {x: 17.395733, y: 0.14, z: -23.832022} + inSlope: {x: -4.30548, y: 0, z: 1.5392997} + outSlope: {x: -4.30548, y: 0, z: 1.5392997} + 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: 5 + value: {x: 0.49841022, y: 0.14, z: -13.354021} + inSlope: {x: 0, y: 0, z: 3.3487787} + outSlope: {x: 0, y: 0, z: 3.3487787} + 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: 6.9166665 + value: {x: 4.7069654, y: 0.14, z: -5.084588} + 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: [] + 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 + pptrCurveMapping: [] + m_AnimationClipSettings: + serializedVersion: 2 + m_AdditiveReferencePoseClip: {fileID: 0} + m_AdditiveReferencePoseTime: 0 + m_StartTime: 0 + m_StopTime: 6.9166665 + 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: 19.946568 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.1666666 + value: 19.061054 + inSlope: -0.7084107 + outSlope: -0.7084107 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: 0.49841022 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + value: 4.7069654 + 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: 1.1666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.7833333 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.8 + value: 0.14 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: 0.14 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + value: 0.14 + 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: -22.83992 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.1666666 + value: -24.340065 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: -13.354021 + inSlope: 3.3487787 + outSlope: 3.3487787 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + value: -5.084588 + 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: 0.33333334 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.1666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5.4166665 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + 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: 195.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 0.33333334 + value: 210.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.1666666 + value: 210.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 300.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: 300.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5.4166665 + value: 390.6186 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + value: 390.6186 + 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: 0.33333334 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.1666666 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 1.5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 5.4166665 + value: 0 + inSlope: 0 + outSlope: 0 + tangentMode: 136 + weightedMode: 0 + inWeight: 0.33333334 + outWeight: 0.33333334 + - serializedVersion: 3 + time: 6.9166665 + 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: [] +--- !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: Chapter1_Guide + m_EditorClassIdentifier: Unity.Timeline::UnityEngine.Timeline.TimelineAsset + m_Version: 0 + m_Tracks: + - {fileID: -8440551103167014591} + m_FixedDuration: 0 + m_EditorSettings: + m_Framerate: 60 + m_ScenePreview: 1 + m_DurationMode: 0 + m_MarkerTrack: {fileID: 0} diff --git a/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable.meta b/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable.meta new file mode 100644 index 00000000..249acf78 --- /dev/null +++ b/Assets/08_Timeline/Chapter1/Chapter1_Guide.playable.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 076c18dc27df1774db19063bab9dafaa +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/XR/Settings/OpenXR Package Settings.asset b/Assets/XR/Settings/OpenXR Package Settings.asset index d12e88ea..ce70e690 100644 --- a/Assets/XR/Settings/OpenXR Package Settings.asset +++ b/Assets/XR/Settings/OpenXR Package Settings.asset @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a2b77a6790e5eb39641bcaa1336479182c4dca11501eee0f09fa6df3dd39f666 -size 131327 +oid sha256:2f7daf5e5bfd7ee16d33ffb1f61c7640721ba381c01f01afa64f23d1a40f88c5 +size 133771