2026-04-27 대화 선택지 시스템

This commit is contained in:
2026-04-27 13:10:26 +09:00
parent 6c6cf63668
commit 5ed3f9f750
37 changed files with 918 additions and 181 deletions

Binary file not shown.

View File

@@ -1,5 +1,5 @@
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
[CreateAssetMenu(menuName = "Communication/Dialog Node")]
@@ -25,4 +25,7 @@ public class DialogNode : ScriptableObject
[Header("Flow")]
public DialogNode Next; // 선택지 없을 때 자동으로 갈 노드
public List<DialogChoice> Choices; // 있으면 플레이어 선택 대기
[Header("ChoiceQuestion")]
[TextArea(2,5)] public string ChoiceQuestion;
}

View File

@@ -1,6 +1,7 @@
using System.Collections.Generic;
using UnityEngine.InputSystem;
using UnityEngine;
using VRShopping.UI;
[RequireComponent(typeof(CharacterVoiceObject))]
public class DialogPlayer : MonoBehaviour
@@ -174,10 +175,12 @@ private async Awaitable PlayNode(DialogNode node)
private async Awaitable<int> WaitForChoice(DialogNode node)
{
// TODO: 선택지 UI 띄우기. 일단은 첫 번째 선택지 자동 선택 (테스트용)
Debug.Log("[DialogPlayer] 선택지 대기 — 일단 0번 자동 선택");
await Awaitable.WaitForSecondsAsync(0.5f);
return 0;
if (ChoiceHud.Instance == null)
{
Debug.LogWarning("[DialogPlayer] ChoiceHud 없음 — 0번 자동 선택");
return 0;
}
return await ChoiceHud.Instance.Show(node.Speaker, node.ChoiceQuestion ,node.Choices);
}
private async Awaitable WaitForAdvanceInput()

View File

@@ -0,0 +1,123 @@
using System.Collections.Generic;
using TMPro;
using UnityEngine;
namespace VRShopping.UI
{
// 화자 몸통 앞에 떠 있는 World-space 선택지 UI 싱글턴
// DialogPlayer가 Show()를 await해서 선택된 인덱스를 받아감
public class ChoiceHud : MonoBehaviour
{
public static ChoiceHud Instance { get; private set; }
[Header("Refs")]
[SerializeField] private GameObject _root;
[SerializeField] private Transform _rowContainer;
[SerializeField] private DialogChoiceRow _rowPrefab;
[SerializeField] private TMP_Text ChoiceQuestion;
[Header("Placement")]
[SerializeField] private float _chestHeight = 1.2f; // 화자 발 기준 가슴 높이
[SerializeField] private float _forwardOffset = 0.5f; // 화자→플레이어 방향으로 띄울 거리
private Transform _speakerTransform;
private readonly List<DialogChoiceRow> _rows = new();
private AwaitableCompletionSource<int> _completion;
private void Awake()
{
if (Instance != null && Instance != this) { Destroy(gameObject); return; }
Instance = this;
if (_root == null) _root = gameObject;
Hide();
}
private void OnDestroy()
{
if (Instance == this) Instance = null;
}
private void OnDisable()
{
// 진행 중 대기 정리 (씬 전환 등으로 비활성화될 때)
_completion?.TrySetCanceled();
_completion = null;
}
public async Awaitable<int> Show(CharacterData speaker,string choiceQuestion, List<DialogChoice> choices)
{
if (choices == null || choices.Count == 0) return 0;
_speakerTransform = speaker != null ? CharacterVoiceObject.Find(speaker)?.transform : null;
ChoiceQuestion.text = choiceQuestion;
ClearRows();
for (int i = 0; i < choices.Count; i++)
{
var row = Instantiate(_rowPrefab, _rowContainer);
row.Bind(i, choices[i].ChoiceText);
row.OnClicked += HandleClicked;
_rows.Add(row);
}
_root.SetActive(true);
_completion = new AwaitableCompletionSource<int>();
int result;
try
{
result = await _completion.Awaitable;
}
finally
{
_completion = null;
Hide();
}
return result;
}
private void HandleClicked(int index)
{
_completion?.TrySetResult(index);
}
private void Hide()
{
ChoiceQuestion.text = "";
ClearRows();
if (_root != null) _root.SetActive(false);
_speakerTransform = null;
}
private void ClearRows()
{
foreach (var row in _rows)
{
if (row == null) continue;
row.OnClicked -= HandleClicked;
Destroy(row.gameObject);
}
_rows.Clear();
}
private void LateUpdate()
{
if (_root == null || !_root.activeSelf) return;
if (_speakerTransform == null || Camera.main == null) return;
var camTr = Camera.main.transform;
// 화자에서 플레이어 카메라로 향하는 수평 방향 (yaw만)
Vector3 toCam = camTr.position - _speakerTransform.position;
toCam.y = 0f;
if (toCam.sqrMagnitude < 0.0001f) return;
Vector3 dir = toCam.normalized;
Vector3 chestWorld = _speakerTransform.position + Vector3.up * _chestHeight;
_root.transform.position = chestWorld + dir * _forwardOffset;
// 빌보드 — 캔버스의 -Z(읽는 면)가 카메라를 향하도록 +Z를 카메라 반대로
_root.transform.rotation = Quaternion.LookRotation(-dir);
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 81f70ce051c83414a8ea1e501a3001e0

View File

@@ -0,0 +1,29 @@
using System;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
namespace VRShopping.UI
{
public class DialogChoiceRow : MonoBehaviour
{
[SerializeField] private TMP_Text _text;
[SerializeField] private Button _button;
public event Action<int> OnClicked;
private int _index;
private void Awake()
{
if (_button != null)
_button.onClick.AddListener(() => OnClicked?.Invoke(_index));
}
public void Bind(int index, string text)
{
_index = index;
if (_text != null) _text.text = text;
}
}
}

View File

@@ -0,0 +1,2 @@
fileFormatVersion: 2
guid: 7a8265dea4c74384c92089a937f1ff9d

View File

@@ -1,7 +1,14 @@
fileFormatVersion: 2
guid: 4c352a1d4be7c5f4ea44b4b46f11f177
AssetOrigin:
serializedVersion: 1
productId: 277585
packageName: KAWAII ANIMATIONS 100
packageVersion: 1.10.3
assetPath: Assets/KAWAII_ANIMATIOMS_100/Assets/Animations/Speak/@KA_Speak10_Shy_Loop.FBX
uploadId: 903416
ModelImporter:
serializedVersion: 22200
serializedVersion: 24200
internalIDToNameTable: []
externalObjects: {}
materials:
@@ -16,8 +23,6 @@ ModelImporter:
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
@@ -31,7 +36,36 @@ ModelImporter:
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
clipAnimations:
- serializedVersion: 16
name: FeMale_Shy
takeName: Unreal Take
internalID: 8993902097722301239
firstFrame: 0
lastFrame: 150
wrapMode: 0
orientationOffsetY: 0
level: 0
cycleOffset: 0
loop: 0
hasAdditiveReferencePose: 0
loopTime: 1
loopBlend: 0
loopBlendOrientation: 1
loopBlendPositionY: 1
loopBlendPositionXZ: 1
keepOriginalOrientation: 1
keepOriginalPositionY: 1
keepOriginalPositionXZ: 0
heightFromFeet: 0
mirror: 0
bodyMask: 01000000010000000100000001000000010000000100000001000000010000000100000001000000010000000100000001000000
curves: []
events: []
transformMask: []
maskType: 3
maskSource: {instanceID: 0}
additiveReferencePoseFrame: 0
isReadable: 0
meshes:
lODScreenPercentages: []
@@ -58,6 +92,9 @@ ModelImporter:
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
@@ -786,8 +823,7 @@ ModelImporter:
hasTranslationDoF: 1
hasExtraRoot: 1
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: d5317c42c7d79dd41b326383ba7a0871,
type: 3}
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: d5317c42c7d79dd41b326383ba7a0871, type: 3}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 3
humanoidOversampling: 1
@@ -799,10 +835,3 @@ ModelImporter:
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 277585
packageName: KAWAII ANIMATIONS 100
packageVersion: 1.10.3
assetPath: Assets/KAWAII_ANIMATIOMS_100/Assets/Animations/Speak/@KA_Speak10_Shy_Loop.FBX
uploadId: 903416

View File

@@ -1,149 +1,432 @@
fileFormatVersion: 2
guid: 3ff1a565fcb7813489347e2a9ef14d23
AssetOrigin:
serializedVersion: 1
productId: 150397
packageName: Anime Girl Idle Animations
packageVersion: 1.2.1
assetPath: Assets/AnimeGirlIdleAnimations/Animations/01_Idles/AGIA_Idle_surprise_01_hands_open_front.fbx
uploadId: 440789
ModelImporter:
serializedVersion: 22
fileIDToRecycleName:
100000: //RootNode
100002: Ankle_L
100004: Ankle_R
100006: Chest_M
100008: Cup_L
100010: Cup_R
100012: Elbow_L
100014: Elbow_R
100016: Head_M
100018: HeadEnd_M
100020: Hip_L
100022: Hip_R
100024: IndexFinger1_L
100026: IndexFinger1_R
100028: IndexFinger2_L
100030: IndexFinger2_R
100032: IndexFinger3_L
100034: IndexFinger3_R
100036: IndexFinger4_L
100038: IndexFinger4_R
100040: Knee_L
100042: Knee_R
100044: MiddleFinger1_L
100046: MiddleFinger1_R
100048: MiddleFinger2_L
100050: MiddleFinger2_R
100052: MiddleFinger3_L
100054: MiddleFinger3_R
100056: MiddleFinger4_L
100058: MiddleFinger4_R
100060: Neck_M
100062: PinkyFinger1_L
100064: PinkyFinger1_R
100066: PinkyFinger2_L
100068: PinkyFinger2_R
100070: PinkyFinger3_L
100072: PinkyFinger3_R
100074: PinkyFinger4_L
100076: PinkyFinger4_R
100078: RingFinger1_L
100080: RingFinger1_R
100082: RingFinger2_L
100084: RingFinger2_R
100086: RingFinger3_L
100088: RingFinger3_R
100090: RingFinger4_L
100092: RingFinger4_R
100094: Root
100096: Root_M
100098: Scapula_L
100100: Scapula_R
100102: Shoulder_L
100104: Shoulder_R
100106: Spine1_M
100108: ThumbFinger1_L
100110: ThumbFinger1_R
100112: ThumbFinger2_L
100114: ThumbFinger2_R
100116: ThumbFinger3_L
100118: ThumbFinger3_R
100120: ThumbFinger4_L
100122: ThumbFinger4_R
100124: Toes_L
100126: Toes_R
100128: ToesEnd_L
100130: ToesEnd_R
100132: Wrist_L
100134: Wrist_R
400000: //RootNode
400002: Ankle_L
400004: Ankle_R
400006: Chest_M
400008: Cup_L
400010: Cup_R
400012: Elbow_L
400014: Elbow_R
400016: Head_M
400018: HeadEnd_M
400020: Hip_L
400022: Hip_R
400024: IndexFinger1_L
400026: IndexFinger1_R
400028: IndexFinger2_L
400030: IndexFinger2_R
400032: IndexFinger3_L
400034: IndexFinger3_R
400036: IndexFinger4_L
400038: IndexFinger4_R
400040: Knee_L
400042: Knee_R
400044: MiddleFinger1_L
400046: MiddleFinger1_R
400048: MiddleFinger2_L
400050: MiddleFinger2_R
400052: MiddleFinger3_L
400054: MiddleFinger3_R
400056: MiddleFinger4_L
400058: MiddleFinger4_R
400060: Neck_M
400062: PinkyFinger1_L
400064: PinkyFinger1_R
400066: PinkyFinger2_L
400068: PinkyFinger2_R
400070: PinkyFinger3_L
400072: PinkyFinger3_R
400074: PinkyFinger4_L
400076: PinkyFinger4_R
400078: RingFinger1_L
400080: RingFinger1_R
400082: RingFinger2_L
400084: RingFinger2_R
400086: RingFinger3_L
400088: RingFinger3_R
400090: RingFinger4_L
400092: RingFinger4_R
400094: Root
400096: Root_M
400098: Scapula_L
400100: Scapula_R
400102: Shoulder_L
400104: Shoulder_R
400106: Spine1_M
400108: ThumbFinger1_L
400110: ThumbFinger1_R
400112: ThumbFinger2_L
400114: ThumbFinger2_R
400116: ThumbFinger3_L
400118: ThumbFinger3_R
400120: ThumbFinger4_L
400122: ThumbFinger4_R
400124: Toes_L
400126: Toes_R
400128: ToesEnd_L
400130: ToesEnd_R
400132: Wrist_L
400134: Wrist_R
7400000: AGIA_Idle_surprise_01_hands_open_front
9500000: //RootNode
serializedVersion: 24200
internalIDToNameTable:
- first:
1: 100000
second: //RootNode
- first:
1: 100002
second: Ankle_L
- first:
1: 100004
second: Ankle_R
- first:
1: 100006
second: Chest_M
- first:
1: 100008
second: Cup_L
- first:
1: 100010
second: Cup_R
- first:
1: 100012
second: Elbow_L
- first:
1: 100014
second: Elbow_R
- first:
1: 100016
second: Head_M
- first:
1: 100018
second: HeadEnd_M
- first:
1: 100020
second: Hip_L
- first:
1: 100022
second: Hip_R
- first:
1: 100024
second: IndexFinger1_L
- first:
1: 100026
second: IndexFinger1_R
- first:
1: 100028
second: IndexFinger2_L
- first:
1: 100030
second: IndexFinger2_R
- first:
1: 100032
second: IndexFinger3_L
- first:
1: 100034
second: IndexFinger3_R
- first:
1: 100036
second: IndexFinger4_L
- first:
1: 100038
second: IndexFinger4_R
- first:
1: 100040
second: Knee_L
- first:
1: 100042
second: Knee_R
- first:
1: 100044
second: MiddleFinger1_L
- first:
1: 100046
second: MiddleFinger1_R
- first:
1: 100048
second: MiddleFinger2_L
- first:
1: 100050
second: MiddleFinger2_R
- first:
1: 100052
second: MiddleFinger3_L
- first:
1: 100054
second: MiddleFinger3_R
- first:
1: 100056
second: MiddleFinger4_L
- first:
1: 100058
second: MiddleFinger4_R
- first:
1: 100060
second: Neck_M
- first:
1: 100062
second: PinkyFinger1_L
- first:
1: 100064
second: PinkyFinger1_R
- first:
1: 100066
second: PinkyFinger2_L
- first:
1: 100068
second: PinkyFinger2_R
- first:
1: 100070
second: PinkyFinger3_L
- first:
1: 100072
second: PinkyFinger3_R
- first:
1: 100074
second: PinkyFinger4_L
- first:
1: 100076
second: PinkyFinger4_R
- first:
1: 100078
second: RingFinger1_L
- first:
1: 100080
second: RingFinger1_R
- first:
1: 100082
second: RingFinger2_L
- first:
1: 100084
second: RingFinger2_R
- first:
1: 100086
second: RingFinger3_L
- first:
1: 100088
second: RingFinger3_R
- first:
1: 100090
second: RingFinger4_L
- first:
1: 100092
second: RingFinger4_R
- first:
1: 100094
second: Root
- first:
1: 100096
second: Root_M
- first:
1: 100098
second: Scapula_L
- first:
1: 100100
second: Scapula_R
- first:
1: 100102
second: Shoulder_L
- first:
1: 100104
second: Shoulder_R
- first:
1: 100106
second: Spine1_M
- first:
1: 100108
second: ThumbFinger1_L
- first:
1: 100110
second: ThumbFinger1_R
- first:
1: 100112
second: ThumbFinger2_L
- first:
1: 100114
second: ThumbFinger2_R
- first:
1: 100116
second: ThumbFinger3_L
- first:
1: 100118
second: ThumbFinger3_R
- first:
1: 100120
second: ThumbFinger4_L
- first:
1: 100122
second: ThumbFinger4_R
- first:
1: 100124
second: Toes_L
- first:
1: 100126
second: Toes_R
- first:
1: 100128
second: ToesEnd_L
- first:
1: 100130
second: ToesEnd_R
- first:
1: 100132
second: Wrist_L
- first:
1: 100134
second: Wrist_R
- first:
4: 400000
second: //RootNode
- first:
4: 400002
second: Ankle_L
- first:
4: 400004
second: Ankle_R
- first:
4: 400006
second: Chest_M
- first:
4: 400008
second: Cup_L
- first:
4: 400010
second: Cup_R
- first:
4: 400012
second: Elbow_L
- first:
4: 400014
second: Elbow_R
- first:
4: 400016
second: Head_M
- first:
4: 400018
second: HeadEnd_M
- first:
4: 400020
second: Hip_L
- first:
4: 400022
second: Hip_R
- first:
4: 400024
second: IndexFinger1_L
- first:
4: 400026
second: IndexFinger1_R
- first:
4: 400028
second: IndexFinger2_L
- first:
4: 400030
second: IndexFinger2_R
- first:
4: 400032
second: IndexFinger3_L
- first:
4: 400034
second: IndexFinger3_R
- first:
4: 400036
second: IndexFinger4_L
- first:
4: 400038
second: IndexFinger4_R
- first:
4: 400040
second: Knee_L
- first:
4: 400042
second: Knee_R
- first:
4: 400044
second: MiddleFinger1_L
- first:
4: 400046
second: MiddleFinger1_R
- first:
4: 400048
second: MiddleFinger2_L
- first:
4: 400050
second: MiddleFinger2_R
- first:
4: 400052
second: MiddleFinger3_L
- first:
4: 400054
second: MiddleFinger3_R
- first:
4: 400056
second: MiddleFinger4_L
- first:
4: 400058
second: MiddleFinger4_R
- first:
4: 400060
second: Neck_M
- first:
4: 400062
second: PinkyFinger1_L
- first:
4: 400064
second: PinkyFinger1_R
- first:
4: 400066
second: PinkyFinger2_L
- first:
4: 400068
second: PinkyFinger2_R
- first:
4: 400070
second: PinkyFinger3_L
- first:
4: 400072
second: PinkyFinger3_R
- first:
4: 400074
second: PinkyFinger4_L
- first:
4: 400076
second: PinkyFinger4_R
- first:
4: 400078
second: RingFinger1_L
- first:
4: 400080
second: RingFinger1_R
- first:
4: 400082
second: RingFinger2_L
- first:
4: 400084
second: RingFinger2_R
- first:
4: 400086
second: RingFinger3_L
- first:
4: 400088
second: RingFinger3_R
- first:
4: 400090
second: RingFinger4_L
- first:
4: 400092
second: RingFinger4_R
- first:
4: 400094
second: Root
- first:
4: 400096
second: Root_M
- first:
4: 400098
second: Scapula_L
- first:
4: 400100
second: Scapula_R
- first:
4: 400102
second: Shoulder_L
- first:
4: 400104
second: Shoulder_R
- first:
4: 400106
second: Spine1_M
- first:
4: 400108
second: ThumbFinger1_L
- first:
4: 400110
second: ThumbFinger1_R
- first:
4: 400112
second: ThumbFinger2_L
- first:
4: 400114
second: ThumbFinger2_R
- first:
4: 400116
second: ThumbFinger3_L
- first:
4: 400118
second: ThumbFinger3_R
- first:
4: 400120
second: ThumbFinger4_L
- first:
4: 400122
second: ThumbFinger4_R
- first:
4: 400124
second: Toes_L
- first:
4: 400126
second: Toes_R
- first:
4: 400128
second: ToesEnd_L
- first:
4: 400130
second: ToesEnd_R
- first:
4: 400132
second: Wrist_L
- first:
4: 400134
second: Wrist_R
- first:
74: 7400000
second: FeMale_Surprise
- first:
95: 9500000
second: //RootNode
externalObjects: {}
materials:
importMaterials: 1
materialImportMode: 1
materialName: 0
materialSearch: 1
materialLocation: 1
@@ -152,14 +435,14 @@ ModelImporter:
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
removeConstantScaleCurves: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 0
animationRotationError: 0.5
animationPositionError: 0.5
@@ -169,8 +452,9 @@ ModelImporter:
extraUserProperties: []
clipAnimations:
- serializedVersion: 16
name: AGIA_Idle_surprise_01_hands_open_front
name: FeMale_Surprise
takeName: Take 001
internalID: 0
firstFrame: 0
lastFrame: 204
wrapMode: 0
@@ -202,32 +486,52 @@ ModelImporter:
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
sortHierarchyByName: 1
importPhysicalCameras: 0
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
nodeNameCollisionStrategy: 0
fileIdsGeneration: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
bakeAxisConversion: 0
preserveHierarchy: 0
skinWeightsMode: 0
maxBonesPerVertex: 4
minBoneWeight: 0.001
optimizeBones: 1
generateMeshLods: 0
meshLodGenerationFlags: 0
maximumMeshLod: -1
meshOptimizationFlags: -1
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVMarginMethod: 0
secondaryUVMinLightmapResolution: 40
secondaryUVMinObjectScale: 1
secondaryUVPackMargin: 4
useFileScale: 1
strictVertexDataChecks: 0
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
referencedClips: []
importAnimation: 1
copyAvatar: 1
humanDescription:
serializedVersion: 2
serializedVersion: 3
human:
- boneName: Root_M
humanName: Hips
@@ -990,23 +1294,20 @@ ModelImporter:
armStretch: 0.02
legStretch: 0.02
feetSpacing: 0
globalScale: 1
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
hasTranslationDoF: 0
hasExtraRoot: 1
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 9088f5532f81dbc498f53c047c65e3a0,
type: 3}
lastHumanDescriptionAvatarSource: {fileID: 9000000, guid: 9088f5532f81dbc498f53c047c65e3a0, type: 3}
autoGenerateAvatarMappingIfUnspecified: 1
animationType: 3
humanoidOversampling: 1
avatarSetup: 2
addHumanoidExtraRootOnlyWhenUsingAvatar: 0
importBlendShapeDeformPercent: 0
remapMaterialsIfMaterialImportModeIsNone: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:
AssetOrigin:
serializedVersion: 1
productId: 150397
packageName: Anime Girl Idle Animations
packageVersion: 1.2.1
assetPath: Assets/AnimeGirlIdleAnimations/Animations/01_Idles/AGIA_Idle_surprise_01_hands_open_front.fbx
uploadId: 440789

Binary file not shown.

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: b356ae8855af2144d89b3a11b25fd34f
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 73c32f1a5740eaf49bc3a241be0cfaa0
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 7400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,5 +1,57 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1102 &-7552510971962398583
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Gesture_FeMale_Surprise
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: 73c32f1a5740eaf49bc3a241be0cfaa0, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-4899768494292645098
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Expression_Smile
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: 57bc236eb99ee73409211f0e6f13955d, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &-3983800366607558593
AnimatorState:
serializedVersion: 6
@@ -66,6 +118,32 @@ AnimatorController:
m_IKPass: 0
m_SyncedLayerAffectsTiming: 0
m_Controller: {fileID: 9100000}
--- !u!1102 &428507685955758133
AnimatorState:
serializedVersion: 6
m_ObjectHideFlags: 1
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Gesture_FeMale_Shy
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: b356ae8855af2144d89b3a11b25fd34f, type: 2}
m_Tag:
m_SpeedParameter:
m_MirrorParameter:
m_CycleOffsetParameter:
m_TimeParameter:
--- !u!1102 &1761552763063545065
AnimatorState:
serializedVersion: 6
@@ -136,6 +214,9 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: 3348004442176354053}
m_Position: {x: 290, y: 160, z: 0}
- serializedVersion: 1
m_State: {fileID: -4899768494292645098}
m_Position: {x: 290, y: 240, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []
@@ -190,6 +271,12 @@ AnimatorStateMachine:
- serializedVersion: 1
m_State: {fileID: -3983800366607558593}
m_Position: {x: 310, y: 180, z: 0}
- serializedVersion: 1
m_State: {fileID: -7552510971962398583}
m_Position: {x: 310, y: 250, z: 0}
- serializedVersion: 1
m_State: {fileID: 428507685955758133}
m_Position: {x: 310, y: 320, z: 0}
m_ChildStateMachines: []
m_AnyStateTransitions: []
m_EntryTransitions: []

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 34eb895e85f254e4a951bcc4eedf2532
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,7 @@
fileFormatVersion: 2
guid: 184fcfa1f3207ba4dbb2a782b970f7e2
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: aa4ecd54d5ee3344e8067c242852dbed
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: d808d61a50bf6e949997136d7a7d1966
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c3799ce97420560458820a6c4e93b6b1
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: c16b13b38456411409a7a9851c632fa9
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 5afca953f16de514db1fb66b31784b05
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: e3dee2ae57e19374392c765bcf54d826
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: d3ef311f6f96dd945bd5e6e2e9049c93
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant:

Binary file not shown.

View File

@@ -0,0 +1,23 @@
fileFormatVersion: 2
guid: d17c7e03f67a1a447b370944bcc585e0
AudioImporter:
externalObjects: {}
serializedVersion: 8
defaultSettings:
serializedVersion: 2
loadType: 0
sampleRateSetting: 0
sampleRateOverride: 44100
compressionFormat: 1
quality: 1
conversionMode: 0
preloadAudioData: 0
platformSettingOverrides: {}
forceToMono: 0
normalize: 1
loadInBackground: 0
ambisonic: 0
3D: 1
userData:
assetBundleName:
assetBundleVariant: