master 682d29c0768a cached
383 files
186.0 MB
11.7M tokens
551 symbols
1 requests
Copy disabled (too large) Download .txt
Showing preview only (46,951K chars total). Download the full file to get everything.
Repository: resemble-ai/resemble-unity-text-to-speech
Branch: master
Commit: 682d29c0768a
Files: 383
Total size: 186.0 MB

Directory structure:
gitextract_qga2v5u8/

├── .gitignore
├── Assets/
│   ├── Plugins/
│   │   ├── Resemble/
│   │   │   ├── Assets/
│   │   │   │   ├── AudioClip Icon.psd
│   │   │   │   ├── AudioClip Icon.psd.meta
│   │   │   │   ├── BoxBloc.shader
│   │   │   │   ├── BoxBloc.shader.meta
│   │   │   │   ├── Break.png.meta
│   │   │   │   ├── Doc/
│   │   │   │   │   ├── AddEmotion.png.meta
│   │   │   │   │   ├── BindProject.png.meta
│   │   │   │   │   ├── CreateResembleSpeech.png.meta
│   │   │   │   │   ├── MakeAClip.png.meta
│   │   │   │   │   ├── OneShots.png.meta
│   │   │   │   │   ├── Path_Abs.png.meta
│   │   │   │   │   ├── Path_AbsSub.png.meta
│   │   │   │   │   ├── Path_Mir.png.meta
│   │   │   │   │   ├── Path_MirSub.png.meta
│   │   │   │   │   ├── Path_Rel.png.meta
│   │   │   │   │   ├── Path_RelSub.png.meta
│   │   │   │   │   ├── SetupProject.png.meta
│   │   │   │   │   └── Userdata.png.meta
│   │   │   │   ├── Doc.meta
│   │   │   │   ├── ExternalLink.psd
│   │   │   │   ├── ExternalLink.psd.meta
│   │   │   │   ├── Helvetica.ttf.meta
│   │   │   │   ├── Icon.psd
│   │   │   │   ├── Icon.psd.meta
│   │   │   │   ├── Loading.png.meta
│   │   │   │   ├── Loading.shader
│   │   │   │   ├── Loading.shader.meta
│   │   │   │   ├── PhonemesTable.psd
│   │   │   │   ├── PhonemesTable.psd.meta
│   │   │   │   ├── Pod.psd
│   │   │   │   ├── Pod.psd.meta
│   │   │   │   ├── ProcessAudioclip
│   │   │   │   ├── ProcessAudioclip.meta
│   │   │   │   ├── TextBloc.shader
│   │   │   │   ├── TextBloc.shader.meta
│   │   │   │   └── logo.png.meta
│   │   │   ├── Assets.meta
│   │   │   ├── Editor/
│   │   │   │   ├── API/
│   │   │   │   │   ├── APIBridge.cs
│   │   │   │   │   ├── APIBridge.cs.meta
│   │   │   │   │   ├── Task.cs
│   │   │   │   │   └── Task.cs.meta
│   │   │   │   ├── API.meta
│   │   │   │   ├── AudioPreview.cs
│   │   │   │   ├── AudioPreview.cs.meta
│   │   │   │   ├── ClipExtend.cs
│   │   │   │   ├── ClipExtend.cs.meta
│   │   │   │   ├── GUI/
│   │   │   │   │   ├── CustomEditors/
│   │   │   │   │   │   ├── Clip_Editor.cs
│   │   │   │   │   │   ├── Clip_Editor.cs.meta
│   │   │   │   │   │   ├── Phonemes_Editor.cs
│   │   │   │   │   │   ├── Phonemes_Editor.cs.meta
│   │   │   │   │   │   ├── Speech_Editor.cs
│   │   │   │   │   │   ├── Speech_Editor.cs.meta
│   │   │   │   │   │   ├── Text_Editor.cs
│   │   │   │   │   │   └── Text_Editor.cs.meta
│   │   │   │   │   ├── CustomEditors.meta
│   │   │   │   │   ├── Popups/
│   │   │   │   │   │   ├── ClipPopup.cs
│   │   │   │   │   │   ├── ClipPopup.cs.meta
│   │   │   │   │   │   ├── DeletePopup.cs
│   │   │   │   │   │   ├── DeletePopup.cs.meta
│   │   │   │   │   │   ├── ImportPopup.cs
│   │   │   │   │   │   ├── ImportPopup.cs.meta
│   │   │   │   │   │   ├── NotificationsPopup.cs
│   │   │   │   │   │   ├── NotificationsPopup.cs.meta
│   │   │   │   │   │   ├── PopupButton.cs
│   │   │   │   │   │   ├── PopupButton.cs.meta
│   │   │   │   │   │   ├── StringPopup.cs
│   │   │   │   │   │   ├── StringPopup.cs.meta
│   │   │   │   │   │   ├── TagPopup.cs
│   │   │   │   │   │   ├── TagPopup.cs.meta
│   │   │   │   │   │   ├── VoicePopup.cs
│   │   │   │   │   │   └── VoicePopup.cs.meta
│   │   │   │   │   ├── Popups.meta
│   │   │   │   │   ├── Settings/
│   │   │   │   │   │   ├── Settings_Help.cs
│   │   │   │   │   │   ├── Settings_Help.cs.meta
│   │   │   │   │   │   ├── Settings_Options.cs
│   │   │   │   │   │   ├── Settings_Options.cs.meta
│   │   │   │   │   │   ├── Settings_Project.cs
│   │   │   │   │   │   ├── Settings_Project.cs.meta
│   │   │   │   │   │   ├── Settings_Window.cs
│   │   │   │   │   │   ├── Settings_Window.cs.meta
│   │   │   │   │   │   ├── WelcomePopup.cs
│   │   │   │   │   │   └── WelcomePopup.cs.meta
│   │   │   │   │   ├── Settings.meta
│   │   │   │   │   ├── Utils/
│   │   │   │   │   │   ├── AsyncRequest.cs
│   │   │   │   │   │   ├── AsyncRequest.cs.meta
│   │   │   │   │   │   ├── Callbacks.cs
│   │   │   │   │   │   ├── Callbacks.cs.meta
│   │   │   │   │   │   ├── Dropdown.cs
│   │   │   │   │   │   ├── Dropdown.cs.meta
│   │   │   │   │   │   ├── EditorProgressBar.cs
│   │   │   │   │   │   ├── EditorProgressBar.cs.meta
│   │   │   │   │   │   ├── TextExtend.cs
│   │   │   │   │   │   ├── TextExtend.cs.meta
│   │   │   │   │   │   ├── Updates.cs
│   │   │   │   │   │   ├── Updates.cs.meta
│   │   │   │   │   │   ├── Utils.cs
│   │   │   │   │   │   └── Utils.cs.meta
│   │   │   │   │   ├── Utils.meta
│   │   │   │   │   ├── Window/
│   │   │   │   │   │   ├── OneShot_Window.cs
│   │   │   │   │   │   ├── OneShot_Window.cs.meta
│   │   │   │   │   │   ├── Pool_Window.cs
│   │   │   │   │   │   ├── Pool_Window.cs.meta
│   │   │   │   │   │   ├── Resemble_Window.cs
│   │   │   │   │   │   └── Resemble_Window.cs.meta
│   │   │   │   │   └── Window.meta
│   │   │   │   ├── GUI.meta
│   │   │   │   ├── Plugin Resources/
│   │   │   │   │   ├── Resources.asset
│   │   │   │   │   ├── Resources.asset.meta
│   │   │   │   │   ├── Resources.cs
│   │   │   │   │   ├── Resources.cs.meta
│   │   │   │   │   ├── Settings.asset
│   │   │   │   │   ├── Settings.asset.meta
│   │   │   │   │   ├── Settings.cs
│   │   │   │   │   ├── Settings.cs.meta
│   │   │   │   │   ├── Styles.cs
│   │   │   │   │   ├── Styles.cs.meta
│   │   │   │   │   ├── WebPage.cs
│   │   │   │   │   └── WebPage.cs.meta
│   │   │   │   ├── Plugin Resources.meta
│   │   │   │   ├── Serializables/
│   │   │   │   │   ├── ClipPatch.cs
│   │   │   │   │   ├── ClipPatch.cs.meta
│   │   │   │   │   ├── ClipStatus.cs
│   │   │   │   │   ├── ClipStatus.cs.meta
│   │   │   │   │   ├── CreateClipRequest.cs
│   │   │   │   │   ├── CreateClipRequest.cs.meta
│   │   │   │   │   ├── CreateClipResponse.cs
│   │   │   │   │   ├── CreateClipResponse.cs.meta
│   │   │   │   │   ├── Error.cs
│   │   │   │   │   ├── Error.cs.meta
│   │   │   │   │   ├── GetClipResponse.cs
│   │   │   │   │   ├── GetClipResponse.cs.meta
│   │   │   │   │   ├── Project.cs
│   │   │   │   │   ├── Project.cs.meta
│   │   │   │   │   ├── ProjectStatus.cs
│   │   │   │   │   ├── ProjectStatus.cs.meta
│   │   │   │   │   ├── ResembleClip.cs
│   │   │   │   │   ├── ResembleClip.cs.meta
│   │   │   │   │   ├── Voice.cs
│   │   │   │   │   └── Voice.cs.meta
│   │   │   │   └── Serializables.meta
│   │   │   ├── Editor.meta
│   │   │   ├── Examples/
│   │   │   │   ├── Phonemes/
│   │   │   │   │   ├── Animations/
│   │   │   │   │   │   ├── Talking.controller
│   │   │   │   │   │   ├── Talking.controller.meta
│   │   │   │   │   │   ├── xbot@Talking.fbx
│   │   │   │   │   │   └── xbot@Talking.fbx.meta
│   │   │   │   │   ├── Animations.meta
│   │   │   │   │   ├── Audio/
│   │   │   │   │   │   ├── BlendShape/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── BlendShape.meta
│   │   │   │   │   │   ├── Example_BlendShape/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── Example_BlendShape.asset
│   │   │   │   │   │   ├── Example_BlendShape.asset.meta
│   │   │   │   │   │   ├── Example_BlendShape.meta
│   │   │   │   │   │   ├── Example_Shader/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── Example_Shader.asset
│   │   │   │   │   │   ├── Example_Shader.asset.meta
│   │   │   │   │   │   ├── Example_Shader.meta
│   │   │   │   │   │   ├── Shader/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   └── Shader.meta
│   │   │   │   │   ├── Audio.meta
│   │   │   │   │   ├── Materials/
│   │   │   │   │   │   ├── Ground _Shader.mat
│   │   │   │   │   │   ├── Ground _Shader.mat.meta
│   │   │   │   │   │   ├── Ground_BlendShapes.mat
│   │   │   │   │   │   ├── Ground_BlendShapes.mat.meta
│   │   │   │   │   │   ├── Terraformer/
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Glass.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Glass.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Eyes.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Eyes.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Hair.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Hair.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Face.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Face.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Glass.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Glass.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Skin.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Skin.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Suit.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Suit.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Suit_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Suit_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Teeth.mat
│   │   │   │   │   │   │   └── Terraformer_A_Teeth.mat.meta
│   │   │   │   │   │   └── Terraformer.meta
│   │   │   │   │   ├── Materials.meta
│   │   │   │   │   ├── Miscs/
│   │   │   │   │   │   ├── PhonemeExample_PP.asset
│   │   │   │   │   │   └── PhonemeExample_PP.asset.meta
│   │   │   │   │   ├── Miscs.meta
│   │   │   │   │   ├── Models/
│   │   │   │   │   │   ├── Terraformer_Blendshapes.fbx
│   │   │   │   │   │   ├── Terraformer_Blendshapes.fbx.meta
│   │   │   │   │   │   ├── Terraformer_Shader.fbx
│   │   │   │   │   │   └── Terraformer_Shader.fbx.meta
│   │   │   │   │   ├── Models.meta
│   │   │   │   │   ├── Scenes/
│   │   │   │   │   │   ├── ResembleExample_Blendshapes.unity
│   │   │   │   │   │   ├── ResembleExample_Blendshapes.unity.meta
│   │   │   │   │   │   ├── ResembleExample_Shader.unity
│   │   │   │   │   │   └── ResembleExample_Shader.unity.meta
│   │   │   │   │   ├── Scenes.meta
│   │   │   │   │   ├── Scripts/
│   │   │   │   │   │   ├── CameraOrbit.cs
│   │   │   │   │   │   ├── CameraOrbit.cs.meta
│   │   │   │   │   │   ├── Editor/
│   │   │   │   │   │   │   ├── PhonemeReader_Editor.cs
│   │   │   │   │   │   │   ├── PhonemeReader_Editor.cs.meta
│   │   │   │   │   │   │   ├── PhonemesToBlendShapes_Editor.cs
│   │   │   │   │   │   │   ├── PhonemesToBlendShapes_Editor.cs.meta
│   │   │   │   │   │   │   ├── PhonemesToShader_Editor.cs
│   │   │   │   │   │   │   └── PhonemesToShader_Editor.cs.meta
│   │   │   │   │   │   ├── Editor.meta
│   │   │   │   │   │   ├── EyesFocus.cs
│   │   │   │   │   │   ├── EyesFocus.cs.meta
│   │   │   │   │   │   ├── PhonemeReader.cs
│   │   │   │   │   │   ├── PhonemeReader.cs.meta
│   │   │   │   │   │   ├── PhonemesToBlendShapes.cs
│   │   │   │   │   │   ├── PhonemesToBlendShapes.cs.meta
│   │   │   │   │   │   ├── PhonemesToShader.cs
│   │   │   │   │   │   ├── PhonemesToShader.cs.meta
│   │   │   │   │   │   ├── ProceduralEyes.cs
│   │   │   │   │   │   ├── ProceduralEyes.cs.meta
│   │   │   │   │   │   ├── SpaceToPlay.cs
│   │   │   │   │   │   └── SpaceToPlay.cs.meta
│   │   │   │   │   ├── Scripts.meta
│   │   │   │   │   ├── Shaders/
│   │   │   │   │   │   ├── TerraformerCutout.shader
│   │   │   │   │   │   ├── TerraformerCutout.shader.meta
│   │   │   │   │   │   ├── TerraformerEye.shader
│   │   │   │   │   │   ├── TerraformerEye.shader.meta
│   │   │   │   │   │   ├── TerraformerFace.shader
│   │   │   │   │   │   ├── TerraformerFace.shader.meta
│   │   │   │   │   │   ├── TerraformerOpaque.shader
│   │   │   │   │   │   ├── TerraformerOpaque.shader.meta
│   │   │   │   │   │   ├── TerraformerWax.shader
│   │   │   │   │   │   └── TerraformerWax.shader.meta
│   │   │   │   │   ├── Shaders.meta
│   │   │   │   │   ├── Textures/
│   │   │   │   │   │   ├── GridGround.asset
│   │   │   │   │   │   ├── GridGround.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_FaceMask.psd
│   │   │   │   │   │   ├── Terraformer_FaceMask.psd.meta
│   │   │   │   │   │   ├── Terraformer_Face_Eyes.psd
│   │   │   │   │   │   ├── Terraformer_Face_Eyes.psd.meta
│   │   │   │   │   │   ├── Terraformer_Faces.psd
│   │   │   │   │   │   ├── Terraformer_Faces.psd.meta
│   │   │   │   │   │   ├── Terraformer_Mouth_AA_UU_AE.psd
│   │   │   │   │   │   ├── Terraformer_Mouth_AA_UU_AE.psd.meta
│   │   │   │   │   │   ├── Terraformer_Mouth_OO_FV_EE_BM.psd
│   │   │   │   │   │   └── Terraformer_Mouth_OO_FV_EE_BM.psd.meta
│   │   │   │   │   └── Textures.meta
│   │   │   │   ├── Phonemes.meta
│   │   │   │   ├── Userdata/
│   │   │   │   │   ├── Audio/
│   │   │   │   │   │   ├── Speech/
│   │   │   │   │   │   │   └── AskForTavern.wav.meta
│   │   │   │   │   │   ├── Speech.asset
│   │   │   │   │   │   ├── Speech.asset.meta
│   │   │   │   │   │   └── Speech.meta
│   │   │   │   │   ├── Audio.meta
│   │   │   │   │   ├── Wheel/
│   │   │   │   │   │   ├── Scenes/
│   │   │   │   │   │   │   ├── ResembleExample_Wheel.unity
│   │   │   │   │   │   │   └── ResembleExample_Wheel.unity.meta
│   │   │   │   │   │   ├── Scenes.meta
│   │   │   │   │   │   ├── Textures/
│   │   │   │   │   │   │   ├── CornerButton.psd
│   │   │   │   │   │   │   ├── CornerButton.psd.meta
│   │   │   │   │   │   │   ├── MidButton.psd
│   │   │   │   │   │   │   ├── MidButton.psd.meta
│   │   │   │   │   │   │   ├── WheelCenter.psd
│   │   │   │   │   │   │   └── WheelCenter.psd.meta
│   │   │   │   │   │   └── Textures.meta
│   │   │   │   │   └── Wheel.meta
│   │   │   │   └── Userdata.meta
│   │   │   ├── Examples.meta
│   │   │   ├── PhonemesTables/
│   │   │   │   ├── APIGraph_Example.asset
│   │   │   │   ├── APIGraph_Example.asset.meta
│   │   │   │   ├── BlendShape_Example.asset
│   │   │   │   ├── BlendShape_Example.asset.meta
│   │   │   │   ├── Shader_Example.asset
│   │   │   │   └── Shader_Example.asset.meta
│   │   │   ├── PhonemesTables.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── Clip.cs
│   │   │   │   ├── Clip.cs.meta
│   │   │   │   ├── Emotion.cs
│   │   │   │   ├── Emotion.cs.meta
│   │   │   │   ├── Label.cs
│   │   │   │   ├── Label.cs.meta
│   │   │   │   ├── PhonemeData.cs
│   │   │   │   ├── PhonemeData.cs.meta
│   │   │   │   ├── PhonemeTables/
│   │   │   │   │   ├── APIGraph.cs
│   │   │   │   │   ├── APIGraph.cs.meta
│   │   │   │   │   ├── Editor/
│   │   │   │   │   │   ├── APIGraph_Editor.cs
│   │   │   │   │   │   └── APIGraph_Editor.cs.meta
│   │   │   │   │   ├── Editor.meta
│   │   │   │   │   ├── PhonemeTable.cs
│   │   │   │   │   ├── PhonemeTable.cs.meta
│   │   │   │   │   ├── SimpleRemap.cs
│   │   │   │   │   ├── SimpleRemap.cs.meta
│   │   │   │   │   ├── iPhonemeTable.cs
│   │   │   │   │   └── iPhonemeTable.cs.meta
│   │   │   │   ├── PhonemeTables.meta
│   │   │   │   ├── Phonemes.cs
│   │   │   │   ├── Phonemes.cs.meta
│   │   │   │   ├── PhonemesTimeStamps.cs
│   │   │   │   ├── PhonemesTimeStamps.cs.meta
│   │   │   │   ├── Speech.cs
│   │   │   │   ├── Speech.cs.meta
│   │   │   │   ├── Tag.cs
│   │   │   │   ├── Tag.cs.meta
│   │   │   │   ├── Text.cs
│   │   │   │   └── Text.cs.meta
│   │   │   └── Scripts.meta
│   │   └── Resemble.meta
│   └── Plugins.meta
├── Output/
│   ├── ResemblePlugin.unitypackage
│   └── Version
├── ProjectSettings/
│   ├── AudioManager.asset
│   ├── ClusterInputManager.asset
│   ├── DynamicsManager.asset
│   ├── EditorBuildSettings.asset
│   ├── EditorSettings.asset
│   ├── GraphicsSettings.asset
│   ├── InputManager.asset
│   ├── NavMeshAreas.asset
│   ├── Physics2DSettings.asset
│   ├── PresetManager.asset
│   ├── ProjectSettings.asset
│   ├── QualitySettings.asset
│   ├── TagManager.asset
│   ├── TimeManager.asset
│   ├── UnityConnectSettings.asset
│   ├── VFXManager.asset
│   └── XRSettings.asset
├── README.md
└── UserSettings/
    └── EditorUserSettings.asset

================================================
FILE CONTENTS
================================================

================================================
FILE: .gitignore
================================================
[Ll]ibrary/
[Tt]emp/
[Oo]bj/
[Bb]uild/
[Pp]rojectSettings/ProjectVersion.txt
[Tt]emp/
[Bb]uilds/
[Bb]ackups/
[Ll]ogs/
[Rr]esemblePackages/
Assets/Demo/
Assets/Demo.meta
Assets/Plugins/Miscs/
Assets/Plugins/Miscs.meta

# Visual Studio cache directory
.vs/

# Autogenerated VS/MD/Consulo solution and project files
*.csproj
*.unityproj
*.sln
*.suo
*.tmp
*.user
*.userprefs
*.pidb
*.booproj
*.svd
*.pdb
*.opendb

# Unity3D generated meta files
*.pidb.meta
*.pdb.meta

Packages/manifest.json
Packages/manifest.json


================================================
FILE: Assets/Plugins/Resemble/Assets/AudioClip Icon.psd.meta
================================================
fileFormatVersion: 2
guid: d8a065e12dabe9c418b51525994ad985
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/BoxBloc.shader
================================================
Shader "Hidden/Ressemble/BoxBloc" 
{
	Properties
	{
		_StencilComp("Stencil Comparison", Float) = 8
		_Stencil("Stencil ID", Float) = 0
		_StencilOp("Stencil Operation", Float) = 0
		_StencilWriteMask("Stencil Write Mask", Float) = 255
		_StencilReadMask("Stencil Read Mask", Float) = 255
		_ColorMask("Color Mask", Float) = 15
	}

	SubShader
	{
		Tags
		{
			"Queue" = "Transparent"
			"IgnoreProjector" = "True"
			"RenderType" = "Transparent"
			"PreviewType" = "Plane"
			"CanUseSpriteAtlas" = "True"
		}

		Stencil
		{
			Ref[_Stencil]
			Comp[_StencilComp]
			Pass[_StencilOp]
			ReadMask[_StencilReadMask]
			WriteMask[_StencilWriteMask]
		}

		Cull Off
		Lighting Off
		ZWrite Off
		ZTest[unity_GUIZTestMode]
		Blend SrcAlpha OneMinusSrcAlpha
		ColorMask[_ColorMask]

		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct appdata_t 
			{
				float4 vertex : POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_INPUT_INSTANCE_ID
			};

			struct v2f 
			{
				float4 vertex : SV_POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_OUTPUT_STEREO
			};

			sampler2D _MainTex;
			uniform float4 _MainTex_ST;
			uniform float4 _HeaderColor;
			uniform float4 _BackColor;
			uniform float4 _Sizes;

			v2f vert(appdata_t v)
			{
				v2f o;
				UNITY_SETUP_INSTANCE_ID(v);
				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.color = v.color;
				o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
				return o;
			}

			float sdRoundedBox(float2 p, float2 b, float4 r )
			{
				r.xy = (p.x>0.0)?r.xy : r.zw;
				r.x  = (p.y>0.0)?r.x  : r.y;
				float2 q = abs(p)-b+r.x;
				return min(max(q.x,q.y),0.0) + length(max(q,0.0)) - r.x;
			}

			fixed4 frag(v2f i) : SV_Target
			{
				float2 center = float2(clamp(i.texcoord.x * _Sizes.x, _Sizes.z, _Sizes.x - _Sizes.z), clamp(i.texcoord.y * _Sizes.y, _Sizes.z, _Sizes.y - _Sizes.z));
				float dist = distance(center, i.texcoord * _Sizes.xy) / _Sizes.z;

				float border = 0.7 + smoothstep(0.97, 0.92, dist) * 0.3;
				dist = smoothstep(1.0, 0.95, dist);
				float header = step(_Sizes.y - _Sizes.w, i.texcoord.y * _Sizes.y);
				float4 color = _HeaderColor * header + _BackColor * (1.0 - header);
				return float4(color.rgb * border, dist);
			}
			ENDCG
		}
	}
}

================================================
FILE: Assets/Plugins/Resemble/Assets/BoxBloc.shader.meta
================================================
fileFormatVersion: 2
guid: 141736c3605ea5f409d75ef3bca5121f
ShaderImporter:
  externalObjects: {}
  defaultTextures: []
  nonModifiableTextures: []
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Break.png.meta
================================================
fileFormatVersion: 2
guid: 93cc70252f68a75468a611368c24d614
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 64
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 64
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 64
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/AddEmotion.png.meta
================================================
fileFormatVersion: 2
guid: 3e8522b9eabe65d4aa6405db73e09103
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/BindProject.png.meta
================================================
fileFormatVersion: 2
guid: 2c11940a86037df41bb4a9f5ca3cb73d
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/CreateResembleSpeech.png.meta
================================================
fileFormatVersion: 2
guid: 8176c9826fd11bd4587b9f98fd9cb77a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/MakeAClip.png.meta
================================================
fileFormatVersion: 2
guid: 074ccc5427b9f6c48a6fbdd48befbd79
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/OneShots.png.meta
================================================
fileFormatVersion: 2
guid: 6525a74c61ba67e4eac16230eec098e6
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_Abs.png.meta
================================================
fileFormatVersion: 2
guid: 237953bde200936429fe5d0d0fde09c7
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_AbsSub.png.meta
================================================
fileFormatVersion: 2
guid: 9c3d1032e1d1a0e41bd86b20f852f9a4
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_Mir.png.meta
================================================
fileFormatVersion: 2
guid: f6ffec570336e4f4ea56bae6391e5f39
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_MirSub.png.meta
================================================
fileFormatVersion: 2
guid: 9665fcaa158bfa14fa392325833e5faa
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_Rel.png.meta
================================================
fileFormatVersion: 2
guid: 57d39843de203d74ca3634b4eceee81d
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Path_RelSub.png.meta
================================================
fileFormatVersion: 2
guid: 7c1021d79290c234c97c54fe71f102c7
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/SetupProject.png.meta
================================================
fileFormatVersion: 2
guid: b79a668b552455c4a9fe2dc06360208e
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc/Userdata.png.meta
================================================
fileFormatVersion: 2
guid: aaa29409a4024194bb8fda287773d62e
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Doc.meta
================================================
fileFormatVersion: 2
guid: d54588f07923ff34abcf76efc67af50e
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/ExternalLink.psd.meta
================================================
fileFormatVersion: 2
guid: 0955e96553cadfb48b293dd1f99aff1a
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Helvetica.ttf.meta
================================================
fileFormatVersion: 2
guid: be60bfb435fff2b4ab8d2cf748a1b25c
TrueTypeFontImporter:
  externalObjects: {}
  serializedVersion: 4
  fontSize: 16
  forceTextureCase: -2
  characterSpacing: 0
  characterPadding: 1
  includeFontData: 1
  fontName: Helvetica
  fontNames:
  - Helvetica
  fallbackFontReferences: []
  customCharacters: 
  fontRenderingMode: 0
  ascentCalculationMode: 1
  useLegacyBoundsCalculation: 0
  shouldRoundAdvanceValue: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Icon.psd.meta
================================================
fileFormatVersion: 2
guid: 95588b7c499ae544589ae4b2d9576341
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: 1
    aniso: 0
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 256
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 2
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 256
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 2
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 256
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 2
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Loading.png.meta
================================================
fileFormatVersion: 2
guid: 50f4a889468b9db4cad1d994bb14d853
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 0
    sRGBTexture: 0
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: 1
    aniso: -1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: 1
  nPOTScale: 1
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 0
  alphaIsTransparency: 0
  spriteTessellationDetail: -1
  textureType: 0
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Loading.shader
================================================
Shader "Hidden/Ressemble/Loading" 
{
	Properties
	{
		_MainTex("Font Texture", 2D) = "white" {}
		_Color("Text Color", Color) = (1,1,1,1)

		_StencilComp("Stencil Comparison", Float) = 8
		_Stencil("Stencil ID", Float) = 0
		_StencilOp("Stencil Operation", Float) = 0
		_StencilWriteMask("Stencil Write Mask", Float) = 255
		_StencilReadMask("Stencil Read Mask", Float) = 255

		_ColorMask("Color Mask", Float) = 15

		[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip("Use Alpha Clip", Float) = 0
	}

	SubShader
	{
		Tags
		{
			"Queue" = "Transparent"
			"IgnoreProjector" = "True"
			"RenderType" = "Transparent"
			"PreviewType" = "Plane"
			"CanUseSpriteAtlas" = "True"
		}

		Stencil
		{
			Ref[_Stencil]
			Comp[_StencilComp]
			Pass[_StencilOp]
			ReadMask[_StencilReadMask]
			WriteMask[_StencilWriteMask]
		}

		Cull Off
		Lighting Off
		ZWrite Off
		ZTest[unity_GUIZTestMode]
		Blend SrcAlpha OneMinusSrcAlpha
		ColorMask[_ColorMask]

		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct appdata_t 
			{
				float4 vertex : POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_INPUT_INSTANCE_ID
			};

			struct v2f 
			{
				float4 vertex : SV_POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_OUTPUT_STEREO
			};

			sampler2D _MainTex;
			uniform float4 _MainTex_ST;
			uniform fixed4 _Color;
			uniform float _Progress;

			v2f vert(appdata_t v)
			{
				v2f o;
				UNITY_SETUP_INSTANCE_ID(v);
				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.color = v.color * _Color;
				o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
				return o;
			}

			fixed4 frag(v2f i) : SV_Target
			{
				float2 uv = i.texcoord;
				float x = floor(uv.x * 3) * 0.333;

				float off = (0.95 + sin(-_Progress * 5 + x * 4) * 0.2 + 0.2);
				off *= off;
				off *= off;

				uv -= 0.5;
				uv.y *= off;
				uv += 0.5;

				float4 tex = tex2D(_MainTex, uv);

				float dist = smoothstep(0.2, 0.31, tex.r);
				return float4(_Color.rgb, dist);
			}
			ENDCG
		}
	}
}

================================================
FILE: Assets/Plugins/Resemble/Assets/Loading.shader.meta
================================================
fileFormatVersion: 2
guid: 78bca071a80ca914c94dee0727d7fe32
ShaderImporter:
  externalObjects: {}
  defaultTextures:
  - _MainTex: {fileID: 2800000, guid: 50f4a889468b9db4cad1d994bb14d853, type: 3}
  nonModifiableTextures: []
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/PhonemesTable.psd.meta
================================================
fileFormatVersion: 2
guid: 26bb277a4d1c3474db1228b17292330d
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/Pod.psd.meta
================================================
fileFormatVersion: 2
guid: 7141f17c8c84bd14c92d3f7dc06219f3
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 1
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/ProcessAudioclip.meta
================================================
fileFormatVersion: 2
guid: 5bc78681a20100349a602d423bb35862
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/TextBloc.shader
================================================
Shader "Hidden/Ressemble/TextBloc" 
{
	Properties
	{
		_MainTex("Font Texture", 2D) = "white" {}
		_Color("Text Color", Color) = (1,1,1,1)

		_StencilComp("Stencil Comparison", Float) = 8
		_Stencil("Stencil ID", Float) = 0
		_StencilOp("Stencil Operation", Float) = 0
		_StencilWriteMask("Stencil Write Mask", Float) = 255
		_StencilReadMask("Stencil Read Mask", Float) = 255

		_ColorMask("Color Mask", Float) = 15

		[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip("Use Alpha Clip", Float) = 0
	}

	SubShader
	{
		Tags
		{
			"Queue" = "Transparent"
			"IgnoreProjector" = "True"
			"RenderType" = "Transparent"
			"PreviewType" = "Plane"
			"CanUseSpriteAtlas" = "True"
		}

		Stencil
		{
			Ref[_Stencil]
			Comp[_StencilComp]
			Pass[_StencilOp]
			ReadMask[_StencilReadMask]
			WriteMask[_StencilWriteMask]
		}

		Cull Off
		Lighting Off
		ZWrite Off
		ZTest[unity_GUIZTestMode]
		Blend SrcAlpha OneMinusSrcAlpha
		ColorMask[_ColorMask]

		Pass 
		{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			#include "UnityCG.cginc"

			struct appdata_t 
			{
				float4 vertex : POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_INPUT_INSTANCE_ID
			};

			struct v2f 
			{
				float4 vertex : SV_POSITION;
				fixed4 color : COLOR;
				float2 texcoord : TEXCOORD0;
				UNITY_VERTEX_OUTPUT_STEREO
			};

			sampler2D _MainTex;
			uniform float4 _MainTex_ST;
			uniform fixed4 _Color;
			uniform float _Ratio;
			uniform float _Roundness;
			uniform float _BorderOnly;

			v2f vert(appdata_t v)
			{
				v2f o;
				UNITY_SETUP_INSTANCE_ID(v);
				UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
				o.vertex = UnityObjectToClipPos(v.vertex);
				o.color = v.color * _Color;
				o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex);
				return o;
			}

			float sdRoundedBox(float2 p, float2 b, float4 r )
			{
				r.xy = (p.x>0.0)?r.xy : r.zw;
				r.x  = (p.y>0.0)?r.x  : r.y;
				float2 q = abs(p)-b+r.x;
				return min(max(q.x,q.y),0.0) + length(max(q,0.0)) - r.x;
			}

			fixed4 frag(v2f i) : SV_Target
			{
				i.texcoord.x *= _Ratio;
				float r = _Roundness * 0.6 + 0.4;

				float2 center = float2(clamp(i.texcoord.x, 0.5 * r, _Ratio - 0.5 * r), clamp(i.texcoord.y, 0.5 * r, 1.0 - 0.5 * r));
				float dist = ((distance(center, i.texcoord)) * 2) / r;
				float offset = (1.0 / r) * 0.05;
				dist = smoothstep(0.9, 0.9 - offset, dist) * (1.0 - smoothstep(0.8, 0.8 - offset, dist) * _BorderOnly);
				return float4(_Color.rgb, dist * _Color.a);
			}
			ENDCG
		}
	}
}

================================================
FILE: Assets/Plugins/Resemble/Assets/TextBloc.shader.meta
================================================
fileFormatVersion: 2
guid: 9baa43913a7fbab4ebcfa075b0183455
ShaderImporter:
  externalObjects: {}
  defaultTextures: []
  nonModifiableTextures: []
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets/logo.png.meta
================================================
fileFormatVersion: 2
guid: f6424b8c8c299204291c5e86a2049d1f
TextureImporter:
  internalIDToNameTable: []
  externalObjects: {}
  serializedVersion: 10
  mipmaps:
    mipMapMode: 0
    enableMipMap: 1
    sRGBTexture: 1
    linearTexture: 0
    fadeOut: 0
    borderMipMap: 0
    mipMapsPreserveCoverage: 0
    alphaTestReferenceValue: 0.5
    mipMapFadeDistanceStart: 1
    mipMapFadeDistanceEnd: 3
  bumpmap:
    convertToNormalMap: 0
    externalNormalMap: 0
    heightScale: 0.25
    normalMapFilter: 0
  isReadable: 0
  streamingMipmaps: 0
  streamingMipmapsPriority: 0
  grayScaleToAlpha: 0
  generateCubemap: 6
  cubemapConvolution: 0
  seamlessCubemap: 0
  textureFormat: 1
  maxTextureSize: 2048
  textureSettings:
    serializedVersion: 2
    filterMode: -1
    aniso: 1
    mipBias: -100
    wrapU: 1
    wrapV: 1
    wrapW: -1
  nPOTScale: 0
  lightmap: 0
  compressionQuality: 50
  spriteMode: 0
  spriteExtrude: 1
  spriteMeshType: 1
  alignment: 0
  spritePivot: {x: 0.5, y: 0.5}
  spritePixelsToUnits: 100
  spriteBorder: {x: 0, y: 0, z: 0, w: 0}
  spriteGenerateFallbackPhysicsShape: 1
  alphaUsage: 1
  alphaIsTransparency: 1
  spriteTessellationDetail: -1
  textureType: 2
  textureShape: 1
  singleChannelComponent: 0
  maxTextureSizeSet: 0
  compressionQualitySet: 0
  textureFormatSet: 0
  platformSettings:
  - serializedVersion: 3
    buildTarget: DefaultTexturePlatform
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Standalone
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  - serializedVersion: 3
    buildTarget: Android
    maxTextureSize: 2048
    resizeAlgorithm: 0
    textureFormat: -1
    textureCompression: 1
    compressionQuality: 50
    crunchedCompression: 0
    allowsAlphaSplitting: 0
    overridden: 0
    androidETC2FallbackOverride: 0
    forceMaximumCompressionQuality_BC6H_BC7: 0
  spriteSheet:
    serializedVersion: 2
    sprites: []
    outline: []
    physicsShape: []
    bones: []
    spriteID: 
    internalID: 0
    vertices: []
    indices: 
    edges: []
    weights: []
    secondaryTextures: []
  spritePackingTag: 
  pSDRemoveMatte: 0
  pSDShowRemoveMatteOption: 0
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Assets.meta
================================================
fileFormatVersion: 2
guid: 3f5dd42bd43b7854b95351dfc43eb41f
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/API/APIBridge.cs
================================================
using System;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEngine.Networking;
using Resemble.Structs;
using Resemble.GUIEditor;

namespace Resemble
{
    public static partial class APIBridge
    {
        /// <summary> Max request count per seconds. </summary>
        private const int mv = 9;
        /// <summary> Timout for a request without response. </summary>
        private const float timout = 10.0f;
        /// <summary> API base url. </summary>
        private const string apiUri = "https://app.resemble.ai/api/v1";

        //Execution queue for tasks (Guaranteed a max limit of tasks at the same time)
        private static Queue<Task> tasks = new Queue<Task>();
        private static List<Task> executionLoop = new List<Task>();
        private static bool receiveUpdates;

        //Functions used by the plugin.
        #region Basics Methodes
        public static Task GetProjects(Callback.GetProject callback)
        {
            string uri = apiUri + "/projects/";
            return EnqueueTask(uri, Task.Type.Get, (string content, Error error) =>
            {
                Project[] projects = error ? null : Project.FromJson(content);
                callback.Method.Invoke(callback.Target, new object[] { projects, error });
            });
        }

        public static Task GetProject(string uuid)
        {
            string uri = apiUri + "/projects/" + uuid;
            return EnqueueTask(uri, Task.Type.Get, (string content, Error error) =>
            {
                Debug.Log(content);
            });
        }

        public static Task DeleteProject(Project project)
        {
            string uri = apiUri + "/projects/" + project.uuid;
            return EnqueueTask(uri, Task.Type.Delete, (string content, Error error) => {});
        }

        public static Task DeleteClip(string uuid)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/" + uuid;
            return EnqueueTask(uri, Task.Type.Delete, (string content, Error error) => { });
        }

        public static Task DeleteClip(string uuid, Callback.Simple callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/" + uuid;
            return EnqueueTask(uri, Task.Type.Delete, callback);
        }

        public static Task CreateProject(Project project, Callback.CreateProject callback)
        {
            string uri = apiUri + "/projects/";
            string data = "{\"data\":" + JsonUtility.ToJson(project) + "}";

            return EnqueueTask(uri, data, Task.Type.Post, (string content, Error error) =>
            {
                ProjectStatus status = error ? null : JsonUtility.FromJson<ProjectStatus>(content);
                callback.Method.Invoke(callback.Target, new object[] { status, error });
            });
        }

        public static Task CreateClipSync(ClipPatch.Data clipData, bool includePhonemes, Callback.Simple callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/sync";
            string data = new CreateClipRequest(clipData, "high", false, includePhonemes).Json();

            return EnqueueTask(uri, data, Task.Type.Post, (string content, Error error) =>
            {
                if (error)
                {
                    callback.Method.Invoke(callback.Target, new object[] { null, error });
                }
                else
                {
                    callback.Invoke(content, Error.None);
                }
            });
        }

        public static Task CreateClip(ClipPatch.Data clipData, bool includePhonemes, Callback.CreateClip callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips";
            string data = new CreateClipRequest(clipData, "high", false, includePhonemes).Json();

            return EnqueueTask(uri, data, Task.Type.Post, (string content, Error error) =>
            {
                if (error)
                {
                    callback.Method.Invoke(callback.Target, new object[] { null, error });
                }
                else
                {
                    callback.Invoke(JsonUtility.FromJson<ClipStatus>(content), Error.None);
                }
            });
        }

        public static Task GetClip(string uuid, Callback.GetClip callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/" + uuid;
            return EnqueueTask(uri, Task.Type.Get, (string content, Error error) =>
            {
                callback.Method.Invoke(callback.Target, error ? new object[] { null, error } :
                    new object[] { ResembleClip.FromJson(content), Error.None });
            });
        }

        public static Task GetClips(Callback.GetClips callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/";

            return EnqueueTask(uri, Task.Type.Get, (string content, Error error) =>
            {
                if (error)
                    callback.Method.Invoke(callback.Target, new object[] { null, error });
                else
                    callback.Method.Invoke(callback.Target, new object[] { ResembleClip.ArrayFromJson(content), Error.None }) ;
            });
        }

        public static Task DownloadClip(string uri, Callback.Download callback)
        {
            return Task.DownloadTask(uri, callback);
        }

        public static Task GetVoices(Callback.GetVoices callback)
        {
            return EnqueueTask(apiUri + "/voices/", Task.Type.Get, (string content, Error error) => {
                callback.Method.Invoke(callback.Target, error ?
                new object[] { null, error } : 
                new object[] { Voice.FromJson(content), Error.None });});
        }

        public static Task UpdateClip(string clipUUID, ClipPatch patch, Callback.Simple callback)
        {
            string uri = apiUri + "/projects/" + Settings.projectUUID + "/clips/" + clipUUID;
            string data = patch.ToJson();
            return EnqueueTask(uri, data, Task.Type.Patch, (string content, Error error) =>
            {
                if (error)
                    callback.Method.Invoke(callback.Target, new object[] { null, error });
                else
                    callback.Method.Invoke(callback.Target, new object[] { content, Error.None });
            });
        }

        #endregion

        #region Request execution
        /// <summary> Called at each editor frame when a task is waiting to be executed. </summary>
        public static void Update()
        {
            //Remove completed tasks from execution loop
            int exeCount = executionLoop.Count;
            double time = EditorApplication.timeSinceStartup;
            for (int i = 0; i < exeCount; i++)
            {
                Task task = executionLoop[i];

                //Tag completed tasks waiting response for more tan 10 seconds
                if (time - task.time > timout)
                {
                    task.error = Error.Timeout;
                    task.time = time;
                    task.status = Task.Status.Completed;
                }

                //Remove completed tasks
                if (task.status == Task.Status.Completed)
                {
                    executionLoop.RemoveAt(i);
                    exeCount--;
                    i--;
                }
            }

            //There's nothing left to execute, end of updates.
            if (tasks.Count == 0 && executionLoop.Count == 0)
            {
                EditorApplication.update -= Update;
                receiveUpdates = false;
                return;
            }

            //Send tasks from waiting queue to execution loop queue if fit.
            if (executionLoop.Count < mv)
            {
                int count = Mathf.Clamp(mv - executionLoop.Count, 0, tasks.Count);
                for (int i = 0; i < count; i++)
                    executionLoop.Add(tasks.Dequeue());
            }

            //Execute tasks in execution loop queue. 
            for (int i = 0; i < executionLoop.Count; i++)
            {
                Task task = executionLoop[i];
                if (task.status == Task.Status.InQueue)
                {
                    SendRequest(task);
                    task.status = Task.Status.Processing;
                    task.time = EditorApplication.timeSinceStartup;
                }
            }
        }

        /// <summary> Enqueue a web request to the task list. This task will be executed as soon as possible. </summary>
        public static Task EnqueueTask(string uri, Task.Type type, Callback.Simple resultProcessor)
        {
            return EnqueueTask(uri, "", type, resultProcessor);
        }

        /// <summary> Enqueue a web request to the task list. This task will be executed as soon as possible. </summary>
        public static Task EnqueueTask(string uri, string data, Task.Type type, Callback.Simple resultProcessor)
        {
            if (type == Task.Type.Download)
            {
                Debug.LogError("Download tasks start automatically, there is no need to put them in the queue.");
                return null;
            }

            Task task = new Task(uri, data, resultProcessor, type);
            tasks.Enqueue(task);
            if (!receiveUpdates)
            {
                EditorApplication.update += Update;
                receiveUpdates = true;
            }
            return task;
        }

        /// <summary> Send a web request now. Call the callback with the response processed by the resultProcessor. </summary>
        public static void SendRequest(Task task)
        {
            UnityWebRequest request;
            switch (task.type)              //https://forum.unity.com/threads/posting-raw-json-into-unitywebrequest.397871/
            {
                default:
                case Task.Type.Get:
                    request = UnityWebRequest.Get(task.uri);
                    break;
                case Task.Type.Post:
                    request = UnityWebRequest.Put(task.uri, task.data);
                    request.method = "POST";
                    break;
                case Task.Type.Delete:
                    request = UnityWebRequest.Delete(task.uri);
                    break;
                case Task.Type.Patch:
                    request = UnityWebRequest.Put(task.uri, task.data);
                    request.method = "PATCH";
                    break;
            }

            request.SetRequestHeader("Authorization", string.Format("Token token=\"{0}\"", Settings.token));
            request.SetRequestHeader("content-type", "application/json; charset=UTF-8");
            request.SendWebRequest().completed += (asyncOp) => { CompleteAsyncOperation(asyncOp, request, task); };
        }

        /// <summary> Responses from requests are received here. The content of the response is process by the resultProcessor and then the callback is executed with the result. </summary>
        private static void CompleteAsyncOperation(AsyncOperation asyncOp, UnityWebRequest webRequest, Task task)
        {
            task.status = Task.Status.Completed;

            if (task.resultProcessor == null)
                return;

            //Fail - Network error
            if (webRequest.isNetworkError)
                task.resultProcessor.Invoke(webRequest.downloadHandler.text, Error.NetworkError);
            //Fail - Http error
            else if (webRequest.isHttpError)
                task.resultProcessor.Invoke(webRequest.downloadHandler.text, Error.FromJson(webRequest.responseCode, webRequest.downloadHandler.text));
            else
            {
                //Delete - Nothing to return
                if (task.type == Task.Type.Delete)
                    task.resultProcessor.Invoke("", Error.None);
                //Fail - Empty reponse
                else if (webRequest.downloadHandler == null || string.IsNullOrEmpty(webRequest.downloadHandler.text))
                    task.resultProcessor.Invoke(null, Error.EmptyResponse);
                //Succes
                else
                    task.resultProcessor.Invoke(webRequest.downloadHandler.text, Error.None);
            }
        }
        #endregion
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/API/APIBridge.cs.meta
================================================
fileFormatVersion: 2
guid: 144651c09788ab64783b03d0635ade06
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/API/Task.cs
================================================
using UnityEngine;
using UnityEditor;
using Resemble.Structs;

namespace Resemble
{
    /// <summary> Request format in a queue. Also contains the status of the request. </summary>
    [System.Serializable]
    public class Task
    {
        //API data
        public string uri;
        public string data;
        public string result;
        public AudioPreview preview;
        public Callback.Simple resultProcessor;

        //Status data
        public Type type;
        public Status status;
        public double time;
        public Error error;

        public Task(string uri, string data, Callback.Simple resultProcessor, Type type)
        {
            this.uri = uri;
            this.data = data;
            this.resultProcessor = resultProcessor;
            this.type = type;
            time = EditorApplication.timeSinceStartup;
            result = "";
            error = Error.None;
            status = Status.InQueue;
        }

        public static Task DownloadTask(string uri, Callback.Download callback)
        {
            Task task = new Task(uri, "", null, Type.Download);
            task.preview = new AudioPreview(uri);
            task.preview.onDowloaded += () => 
            {
                task.status = Status.Completed;
                task.time = EditorApplication.timeSinceStartup;
                callback.Invoke(task.preview.data, Error.None);
            };
            task.error = Error.None;
            task.status = Status.Downloading;
            return task;
        }

        public static Task WaitTask()
        {
            Task task = new Task("", "", null, Type.Get);
            task.time = EditorApplication.timeSinceStartup;
            task.error = Error.None;
            task.status = Status.Processing;
            return task;
        }

        public enum Type
        {
            Get,
            Post,
            Delete,
            Download,
            Patch,
            Head,
        }

        public enum Status
        {
            InQueue,
            Processing,
            Downloading,
            Completed,
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/API/Task.cs.meta
================================================
fileFormatVersion: 2
guid: ce1b87939a74b7c4cb9cd9f93d1f6c67
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/API.meta
================================================
fileFormatVersion: 2
guid: e167d6a49167a99439d37d5d242e31a3
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/AudioPreview.cs
================================================
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using UnityEngine;
using UnityEditor;
using UnityEngine.Networking;

namespace Resemble
{
    public class AudioPreview
    {
        public string url;
        public bool done
        {
            get
            {
                return download.isDone;
            }
        }
        public byte[] data
        {
            get
            {
                if (!done)
                    return null;
                return download.webRequest.downloadHandler.data;
            }
        }
        public float progress
        {
            get
            {
                return download.progress;
            }
        }
        public AudioClip clip;
        public OnCompleted onDowloaded;
        public UnityWebRequestAsyncOperation download;

        public delegate void OnCompleted();

        public AudioPreview(string url)
        {
            this.url = url;
            download = UnityWebRequestMultimedia.GetAudioClip(url, AudioType.WAV).SendWebRequest();
            download.completed += OnWavDownloaded;
        }

        private void OnWavDownloaded(AsyncOperation obj)
        {
            clip = DownloadHandlerAudioClip.GetContent(download.webRequest);
            SceneView.RepaintAll();
            onDowloaded.Invoke();
        }

        public static void PlayClip(AudioClip clip)
        {
#if UNITY_2020_1_OR_NEWER
            InvokeMethode("PlayPreviewClip", clip, 0, false);
#else
            InvokeMethode("PlayClip", clip, 0, false);
#endif
        }

        public static void PlayClip(AudioClip clip, int sample)
        {
#if UNITY_2020_1_OR_NEWER
            InvokeMethode("PlayPreviewClip", clip, sample, false);
#else
            InvokeMethode("PlayClip", clip, sample, false);
#endif
        }

        public static void SetClipSamplePosition(AudioClip clip, int sample)
        {
#if UNITY_2020_1_OR_NEWER
            InvokeMethode("SetPreviewClipSamplePosition", clip, sample);
#else
            InvokeMethode("SetClipSamplePosition", clip, sample);
#endif
        }

        public static int GetClipSamplePosition(AudioClip clip)
        {
#if UNITY_2020_1_OR_NEWER
            return (int) InvokeMethode("GetPreviewClipSamplePosition");
#else
            return (int) InvokeMethode("GetClipSamplePosition", clip);
#endif
        }

        public static void StopClip(AudioClip clip)
        {
#if UNITY_2020_1_OR_NEWER
            InvokeMethode("StopAllPreviewClips");
#else
            InvokeMethode("StopClip", clip);
#endif
        }

        public static bool IsClipPlaying(AudioClip clip)
        {
#if UNITY_2020_1_OR_NEWER
            return (bool) InvokeMethode("IsPreviewClipPlaying");
#else
            return (bool) InvokeMethode("IsClipPlaying", clip);
#endif
        }

        public static object InvokeMethode(string methodeName, params object[] arguments)
        {
            System.Type[] types = new System.Type[arguments.Length];
            for (int i = 0; i < arguments.Length; i++)
                types[i] = arguments[i].GetType();

            Assembly unityEditorAssembly = typeof(AudioImporter).Assembly;
            System.Type audioUtilClass = unityEditorAssembly.GetType("UnityEditor.AudioUtil");
            MethodInfo method = audioUtilClass.GetMethod(
                methodeName,
                BindingFlags.Static | BindingFlags.Public,
                null, types, null
            );
            return method.Invoke(null, arguments);
        }

    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/AudioPreview.cs.meta
================================================
fileFormatVersion: 2
guid: c63d7472e65fef4408ada9358e2c987d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/ClipExtend.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

namespace Resemble
{
    public static class ClipExtend
    {

        public static string GetSavePath(this Clip clip)
        {
            return GetSaveFolder(clip) + clip.clipName + ".wav";
        }

        public static string GetSaveFolder(this Clip clip)
        {
            string path = AssetDatabase.GetAssetPath(clip.speech);

            //Adapts the path according to the settings
            switch (Settings.pathMethode)
            {
                default:
                case Settings.PathMethode.SamePlace:
                    path = RemoveFilenameFromPath(path);
                    break;
                case Settings.PathMethode.Absolute:
                    path = Settings.folderPathA.Remove(0, Application.dataPath.Length - 6);
                    break;
                case Settings.PathMethode.MirrorHierarchy:
                    path = RemoveFilenameFromPath(path);
                    string dataPath = Application.dataPath;
                    string folderB = Settings.folderPathB.Remove(0, dataPath.Length);
                    string folderA = Settings.folderPathA.Remove(0, dataPath.Length);
                    if (path.Contains(folderB))
                        path = path.Replace(folderB, folderA);
                    break;
            }

            //Add sub folder and extension
            if (Settings.useSubDirectory)
                path += "/" + clip.speech.name + "/";
            else
                path += "/";

            //Return result
            return path;
        }

        private static string RemoveFilenameFromPath(string path)
        {
            return path.Remove(path.LastIndexOf("/"));
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/ClipExtend.cs.meta
================================================
fileFormatVersion: 2
guid: ce8d2839c015c1f48a35eace84b5afb6
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Clip_Editor.cs
================================================
using System.Linq;
using System.IO;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Resemble;
using Resemble.Structs;

namespace Resemble.GUIEditor
{
    [CustomEditor(typeof(Clip)), CanEditMultipleObjects]
    public class Clip_Editor : Editor
    {
        //Data
        private Clip clip;
        private Editor clipEditor;
        private AsyncRequest request;
        private const float checkCooldown = 1.5f;  //Time in seconds between 2 checks

        //GUI
        private Rect renameRect;
        private bool clipPlaying;
        private bool haveUserData;
        private bool showRawPhonemes;
        public Text_Editor drawer;
        private GUIContent userData = new GUIContent("UserData", "This area is available to make your life easier. Put whatever you want in it. You can retrieve it in game via YourClip.userData.");
        private GUIContent phonemes = new GUIContent("Phonemes", "Phonemes pronounced by the generated voice.");
        private double lastCheckTime;
        private float clipTime;

        protected override void OnHeaderGUI()
        {
            //Init resources
            InitComponents();

            //Bar
            Rect rect = new Rect(0, 0, Screen.width, 46);
            GUI.Box(rect, "", Styles.bigTitle);

            //Icon
            rect.Set(6, 6, 32, 32);
            GUI.DrawTexture(rect, Resources.instance.icon);

            //Speech name and shorcut
            float width = Styles.header.CalcSize(new GUIContent(clip.speech.name + " > ")).x;
            rect.Set(44, 4, width, 22);
            if (GUI.Button(rect, clip.speech.name + " > ", Styles.header))
                Selection.activeObject = clip.speech;
            EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);

            //Clip name and rename
            rect.Set(rect.x + rect.width, rect.y, Screen.width - (rect.x + rect.width + 50), rect.height);
            renameRect = rect;
            if (GUI.Button(rect, clip.clipName, Styles.header))
                Rename();
            EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);

            //Resemble.ai link
            rect.Set(Screen.width - 140, rect.y + 24, 135, 16);
            if (GUI.Button(rect, "Show in Resemble.ai", EditorStyles.linkLabel))
                WebPage.ResembleProjects.Open(Settings.projectUUID + "/clips/" + clip.uuid);
            EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);

            //Help button
            rect.Set(Screen.width - 37, 6, 16, 16);
            if (GUI.Button(rect, Styles.characterSetHelpBtn, GUIStyle.none))
                WebPage.PluginDoc.Open();

            //Options button
            rect.x += 18;
            if (GUI.Button(rect, Styles.popupBtn, GUIStyle.none))
            {
                GenericMenu menu = new GenericMenu();
                menu.AddItem(new GUIContent("Update from API"), false, UpdateFromAPI);
                menu.AddItem(new GUIContent("Generate Audio"), false, () => { request = AsyncRequest.Make(clip); });
                menu.AddItem(new GUIContent("Download wav as..."), false, ExportClip);
                menu.AddSeparator("");
                menu.AddItem(new GUIContent("Rename"), false, Rename);
                menu.AddItem(new GUIContent("Delete"), false, Delete);
                menu.AddSeparator("");
                menu.AddItem(new GUIContent("Help"), false, () => { WebPage.PluginClip.Open(); });
                menu.AddItem(new GUIContent("Settings"), false, Settings.OpenWindow);
                menu.DropDown(rect);
            }
            GUILayout.Space(50);
        }

        public override void OnInspectorGUI()
        {
            //Draw text area
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawTextArea();
            GUILayout.EndVertical();

            //Error box
            if (request != null && request.status == AsyncRequest.Status.Error)
            {
                request.error.DrawErrorBox();
                Rect rect = GUILayoutUtility.GetLastRect();
                rect.Set(rect.x + rect.width - 70, rect.y + rect.height - 20, 68, 18);
                if (GUI.Button(rect, "Close"))
                {
                    request.status = AsyncRequest.Status.Completed;
                    AsyncRequest.RegisterRefreshEvent();
                }
            }

            //Draw audio area
            GUILayout.Space(10);
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawAudioArea();
            GUILayout.EndVertical();

            //Draw phonemes area
            if (clip.speech.includePhonemes)
            {
                GUILayout.Space(10);
                GUILayout.BeginVertical(EditorStyles.helpBox);
                DrawPhonemesArea();
                GUILayout.EndVertical();
            }

            //Draw userdata area
            GUILayout.Space(10);
            GUILayout.BeginVertical(EditorStyles.helpBox);
            DrawUserDataArea();
            GUILayout.EndVertical();

            //Drax connection message
            Utils.ConnectionRequireMessage();
            GUILayout.Space(30);

            //TEMP (still necessary?) Keep refreshing this window 
            Repaint();
        }

        private void DrawTextArea()
        {
            //Tags buttons
            drawer.DrawTagsBtnsLayout(false);

            //Separator
            Rect rect = GUILayoutUtility.GetRect(1.0f, 1.0f, GUILayout.ExpandWidth(true));
            rect.Set(rect.x, rect.y, rect.width, 1.0f);
            EditorGUI.DrawRect(rect, Color.grey * 0.2f);

            //Draw text field
            drawer.DoLayout(true, false);

            //Draw character count bar
            rect = GUILayoutUtility.GetRect(Screen.width, 25).Shrink(10);
            rect.Set(rect.x, rect.y - 10, rect.width, rect.height + 10);
            drawer.DrawCharCountBar(rect);

            //Draw bottom text buttons
            GUILayout.Space(5);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (request == null)
            {
                EditorGUI.BeginDisabledGroup(string.IsNullOrEmpty(clip.text.userString));
                if (GUILayout.Button("Generate Audio"))
                {
                    request = AsyncRequest.Make(clip);
                    clip.phonemes = null;
                }
                EditorGUI.EndDisabledGroup();
            }
            else
            {
                if (GUILayout.Button("Select parent"))
                    Selection.activeObject = clip.speech;
            }

            GUILayout.EndHorizontal();
        }

        private void DrawAudioArea()
        {
            //Remove request if completed
            if (request != null && request.status == AsyncRequest.Status.Completed)
                request = null;

            //Draw pending message or dowload progress bar
            if (request != null && !request.isDone)
            {
                if (request.status != AsyncRequest.Status.Downloading)
                {
                    GUILayout.Space(4);
                    Utils.DrawPendingLabel("Pending...");
                    GUILayout.Space(-10);
                    Utils.DrawSeparator();
                    GUILayout.Space(-5);
                }
                else
                {
                    GUILayout.Space(10);
                    Rect rect = GUILayoutUtility.GetRect(Screen.width, 30);
                    float progress = request.downloadProgress;
                    EditorGUI.ProgressBar(rect, progress, "Download : " + Mathf.RoundToInt(progress * 100) + "%");
                }
            }

            //Draw Audio preview
            else if (clip.clip != null)
            {
                DrawAudioPlayer();
            }

            //Draw commands
            GUILayout.Space(5);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (request != null)
            {
                if (GUILayout.Button("Cancel"))
                {
                    AsyncRequest.Cancel(clip.uuid);
                    request = null;
                }
                if (GUILayout.Button("Show pending list"))
                {
                    Resemble_Window.Open(Resemble_Window.Tab.Pool);
                }
                if (clip.clip != null && GUILayout.Button("Select placeholder"))
                {
                    EditorGUIUtility.PingObject(clip.clip);
                    Selection.activeObject = clip.clip;
                }
            }
            else if (clip.clip != null)
            {
                if (GUILayout.Button("Select file"))
                {
                    EditorGUIUtility.PingObject(clip.clip);
                    Selection.activeObject = clip.clip;
                }
            }
            GUILayout.EndHorizontal();
        }

        private void DrawPhonemesArea()
        {
            //Toolbar
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Space(-4);
            GUILayout.Label(phonemes, EditorStyles.toolbarButton);
            GUILayout.FlexibleSpace();
            bool haveTable = clip.speech.phonemeTable != null;
            bool havePhonemes = clip.phonemes != null && !clip.phonemes.raw.isEmpty;

            EditorGUI.BeginDisabledGroup(!havePhonemes);
            if (GUILayout.Toggle(showRawPhonemes, "Raw", EditorStyles.toolbarButton) || !haveTable)
                showRawPhonemes = true;

            EditorGUI.BeginDisabledGroup(!haveTable);
            if (GUILayout.Toggle(!showRawPhonemes, "Refined", EditorStyles.toolbarButton))
                showRawPhonemes = false;

            EditorGUI.EndDisabledGroup();
            EditorGUI.EndDisabledGroup();

            GUILayout.Space(-4);
            GUILayout.EndHorizontal();
            GUILayout.Space(10);

            //No phonemes
            if (!havePhonemes)
            {
                if (request == null)
                    EditorGUILayout.HelpBox("This clip does not contain any phoneme data. Regenerate your clip to get new phonemes.", MessageType.Warning);
                return;
            }

            //Get preview area rect
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 100);

            //Set time by click or drag in preview area
            Event e = Event.current;
            if ((e.type == EventType.MouseDrag || e.type == EventType.MouseDown) && rect.Offset(0, 0, 0, -20).Contains(e.mousePosition))
            {
                Vector2 mousePos = Event.current.mousePosition;
                clipTime = Rect.PointToNormalized(rect, mousePos).x;
                int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                Repaint();
            }

            //Draw area background
            EditorGUI.DrawRect(rect, Color.black);
            rect = rect.Shrink(1);
            EditorGUI.DrawRect(rect, new Color(0.3f, 0.3f, 0.3f, 1.0f));

            //Draw progress bar
            Rect barRect = new Rect(rect.x + rect.width * clipTime, rect.y, 2, rect.height);
            EditorGUI.DrawRect(barRect, Color.grey);

            //Preview
            if (showRawPhonemes)
                DrawRawPhonemePreview(rect);
            else
                DrawPhonemePreview(rect, clip.phonemes.refined);
        }

        private void DrawRawPhonemePreview(Rect rect)
        {
            char[] phonemes = clip.phonemes.raw.phonemesChars;
            float[] times = clip.phonemes.raw.end_times;

            int count = phonemes.Length;
            int id = Utils.FindPreviousIndex(clipTime * clip.clip.length, times) + 1;
            id = Mathf.Clamp(id, 0, count - 1);

            //Duration
            float start = id > 0 ? times[id - 1] : 0.0f;
            float end = times[id];
            float duration = end - start;

            //Draw infos
            string info = "Index :\t" + id + " / " + count + "\n";
            info += "Phoneme :\t[" + phonemes[id] + "]\n";
            info += "Start :\t" + start.ToString("0.000") + "\n";
            info += "End :\t" + end.ToString("0.000") + "\n";
            info += "Duration :\t" + duration.ToString("0.000") + "\n";
            GUI.Label(rect, info, Styles.phonemesInfos);

            //Commands
            GUILayout.Space(5);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("<"))
                clipTime = Mathf.Max(start / clip.clip.length - 0.0001f, 0);
            if (GUILayout.Button(">"))
                clipTime = Mathf.Min(end / clip.clip.length + 0.0001f);
            if (GUILayout.Button("Copy"))
                EditorGUIUtility.systemCopyBuffer = phonemes[id].ToString();
            GUILayout.EndHorizontal();
        }

        private void DrawPhonemePreview(Rect rect, Phonemes phonemes)
        {
            //No phonemes
            if (phonemes == null)
            {
                if (Utils.BoxWithLink("There is no refined phonemes.", "Rebuild", MessageType.Error))
                    clip.phonemes.UpdateTable(clip.speech.phonemeTable);
                return;
            }

            //Draw top rect
            Rect topRect = new Rect(rect.x, rect.y, rect.width, 18);
            EditorGUI.DrawRect(topRect, Phonemes_Editor.graphBgColor);

            //Draw curves and fields
            float maxValue = 0.0f;
            string maxValueName = "";
            Color maxValueColor = Color.white;
            for (int i = 0; i < phonemes.curves.Length; i++)
            {
                Color curveColor = Color.HSVToRGB((i * 0.13f) % 1.0f, 0.8f, 1.0f);
                EditorGUIUtility.DrawCurveSwatch(rect, phonemes.curves[i].curve, null, curveColor, Phonemes_Editor.transparent, new Rect(0, 0, 1, 1));

                float value = phonemes.curves[i].curve.Evaluate(clipTime);

                if (value > maxValue)
                {
                    maxValue = value;
                    maxValueName = phonemes.curves[i].name;
                    maxValueColor = curveColor;
                }
            }

            //Draw maxValue top label
            if (maxValue > 0.0001f)
            {
                topRect.x = rect.x + rect.width * clipTime;
                Color guiColor = GUI.color;
                GUI.color = maxValueColor;
                GUI.Label(topRect, maxValueName, Styles.whiteLabel);
                GUI.color = guiColor;
            }

            //Commands
            GUILayout.Space(5);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Rebuild"))
                clip.phonemes.UpdateTable(clip.speech.phonemeTable);
            GUILayout.EndHorizontal();
        }

        private void DrawUserDataArea()
        {
            //Toolbar
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Space(-4);
            GUILayout.Label(userData, EditorStyles.toolbarButton);
            GUILayout.FlexibleSpace();
            if (haveUserData && GUILayout.Button("Remove text", EditorStyles.toolbarButton))
            {
                haveUserData = false;
                clip.userdata = "";
                EditorUtility.SetDirty(clip);
            }
            if (!haveUserData && GUILayout.Button("Add text", EditorStyles.toolbarButton))
                haveUserData = true;
            int id = 0;
            if (GUILayout.Button("Add Label", EditorStyles.toolbarButton))
            {
                string name = "New label";
                while (clip.ContainsLabel(name))
                {
                    id++;
                    name = "New Label " + id;
                }
                ArrayUtility.Add(ref clip.labels, new Label(name, 0));
                EditorUtility.SetDirty(clip);
            }
            GUILayout.Space(-4);
            GUILayout.EndHorizontal();


            //User data string
            if (haveUserData)
            {
                GUILayout.Space(10);
                clip.userdata = GUILayout.TextArea(clip.userdata, GUILayout.MinHeight(100));
            }

            //Draw labels
            if (clip.labels != null && clip.labels.Length > 0)
            {
                GUILayout.Space(10);
                int count = clip.labels.Length;
                for (int i = 0; i < count; i++)
                {
                    EditorGUI.BeginChangeCheck();
                    GUILayout.BeginHorizontal();
                    string labelText = GUILayout.TextField(clip.labels[i].text);
                    int labelValue = EditorGUILayout.IntField(clip.labels[i].value, GUILayout.Width(50));
                    bool delete = GUILayout.Button("X", GUILayout.Width(20));
                    GUILayout.EndHorizontal();

                    if (EditorGUI.EndChangeCheck())
                    {
                        if (delete)
                        {
                            ArrayUtility.RemoveAt(ref clip.labels, i);
                            count--;
                            i--;
                        }
                        else
                        {
                            clip.labels[i] = new Label(labelText, labelValue);
                            EditorUtility.SetDirty(clip);
                        }
                    }
                }
                GUILayout.Space(10);
            }

            else if (!haveUserData)
                GUILayout.Space(10);
        }

        private void InitComponents()
        {
            Styles.Load();
            clip = target as Clip;
            if (clip.text == null)
                clip.text = new Text();
            if (drawer == null)
                drawer = new Text_Editor(clip.text, SetDirty, Repaint);
        }

        public void OnEnable()
        {
            System.Reflection.FieldInfo info = typeof(EditorApplication).GetField("globalEventHandler", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            EditorApplication.CallbackFunction value = (EditorApplication.CallbackFunction)info.GetValue(null);
            value += HandleDeleteEvent;
            info.SetValue(null, value);
            InitComponents();
            request = AsyncRequest.Get(clip.uuid);
            if (request != null && !AsyncRequest.refreshing)
                AsyncRequest.RegisterRefreshEvent();
            haveUserData = !string.IsNullOrEmpty(clip.userdata);
            drawer.Refresh();
            Repaint();
        }

        public void OnDisable()
        {
            System.Reflection.FieldInfo info = typeof(EditorApplication).GetField("globalEventHandler", System.Reflection.BindingFlags.Static | System.Reflection.BindingFlags.NonPublic);
            EditorApplication.CallbackFunction value = (EditorApplication.CallbackFunction)info.GetValue(null);
            value -= HandleDeleteEvent;
            info.SetValue(null, value);
        }

        private void HandleDeleteEvent()
        {
            Event e = Event.current;
            if (e.type == EventType.KeyDown && e.keyCode == KeyCode.Delete)
            {
                Object[] pods = Selection.objects.Where(x => x is Clip).ToArray();
                if (pods.Length == 1 && pods[0] == clip)
                    Delete();
                else if (pods.Length > 1)
                    DeleteMultiple(pods);
            }
        }

        public void DrawAudioPlayer()
        {
            if (clipEditor == null || clipEditor.target != clip.clip)
            {
                clipEditor = Editor.CreateEditor(clip.clip);
            }

            //Get playing clip data
            if (clipPlaying)
            {
                clipPlaying = AudioPreview.IsClipPlaying(clip.clip);
                int sample = AudioPreview.GetClipSamplePosition(clip.clip);
                clipTime = sample / (float)clip.clip.samples;
            }

            //Preview toolbar
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Space(-4);

            if (!clipPlaying)
            {
                if (GUILayout.Button("Play", EditorStyles.toolbarButton))
                {
                    int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                    AudioPreview.PlayClip(clip.clip, sample);
                    AudioPreview.SetClipSamplePosition(clip.clip, sample);
                    clipPlaying = true;
                }
            }
            else
            {
                if (GUILayout.Button("Stop", EditorStyles.toolbarButton))
                {
                    AudioPreview.StopClip(clip.clip);
                    clipPlaying = false;
                }
            }

            GUILayout.FlexibleSpace();

            //Draw clip length label
            float clipLength = clip.clip.length * 1000;
            GUILayout.Label((clipTime * clipLength).ToString("0:00:000") + " / " + clipLength.ToString("0:00:000"));

            GUILayout.EndHorizontal();
            GUILayout.Space(10);


            //Get preview area rect
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 100);


            //Set time by click or drag in preview area
            Event e = Event.current;
            if ((e.type == EventType.MouseDrag || e.type == EventType.MouseDown) && rect.Contains(e.mousePosition))
            {
                //Snap
                Vector2 mousePos = Event.current.mousePosition;
                if (mousePos.x - rect.x < 10)
                    mousePos.x = rect.x;

                clipTime = Rect.PointToNormalized(rect, mousePos).x;
                int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                Repaint();
            }


            //Play-Pause by space
            if (e.type == EventType.KeyDown && e.keyCode == KeyCode.Space)
            {
                if (clipPlaying)
                {
                    AudioPreview.StopClip(clip.clip);
                    clipPlaying = false;
                }
                else
                {
                    int sample = Mathf.RoundToInt(clipTime * clip.clip.samples);
                    AudioPreview.PlayClip(clip.clip, sample);
                    AudioPreview.SetClipSamplePosition(clip.clip, sample);
                    clipPlaying = true;
                }
                e.Use();
            }


            //Block native preview interactions
            if (e.type != EventType.Repaint && e.type != EventType.Layout && rect.Contains(e.mousePosition))
                e.Use();


            //Draw clip spectrum
            EditorGUI.DrawRect(rect, Color.black);
            rect = rect.Shrink(1);
            EditorGUI.DrawRect(rect, new Color(0.3f, 0.3f, 0.3f, 1.0f));
            clipEditor.OnPreviewGUI(rect, GUIStyle.none);


            //Draw progress bar
            rect.Set(rect.x + rect.width * clipTime, rect.y, 2, rect.height);
            EditorGUI.DrawRect(rect, Color.white);
        }

        public void UpdateFromAPI()
        {
            if (!EditorUtility.DisplayDialog("Update from API", "This operation will overwrite existing " +
                "information with information from the Resemble.ai website.", "Ok", "Cancel"))
                return;

            APIBridge.GetClip(clip.uuid, (ResembleClip clip, Error error) =>
            {
                if (error)
                    error.Log();
                else
                {
                    this.clip.text.ParseResembleString(clip.body);
                    this.clip.clipName = clip.title;
                    this.clip.name = clip.uuid + "-" + clip.title;
                    drawer.Refresh();
                    Repaint();
                }
            });
        }

        public void ExportClip()
        {

        }

        public void Rename()
        {
            StringPopup.Show(GUIUtility.GUIToScreenRect(renameRect.Offset(0, 20, 0, 0)),
            "Rename clip", clip.clipName, (string value) => {
                if (!string.IsNullOrEmpty(clip.clipName) && value != clip.clipName)
                    Rename(value);
            });
        }

        public void Delete()
        {
            clip = target as Clip;
            string path = AssetDatabase.GetAssetPath(clip);
            if (!EditorUtility.DisplayDialog("Delete pod ?", path + "\nYou cannot undo this action.", "Delete", "Cancel"))
                return;
            AssetDatabase.RemoveObjectFromAsset(clip);
            EditorUtility.SetDirty(AssetDatabase.LoadAssetAtPath<Speech>(path));
            AssetDatabase.ImportAsset(path);
        }

        public void DeleteMultiple(Object[] targets)
        {
            string[] paths = targets.Select(x => AssetDatabase.GetAssetPath(x)).ToArray();
            string allPath = "";
            for (int i = 0; i < paths.Length; i++)
            {
                if (i == 3)
                {
                    allPath += "...";
                    break;
                }
                allPath += paths[i] + "/" + targets[i].name + "\n";
            }
            if (!EditorUtility.DisplayDialog("Delete pods ?", allPath + "\nYou cannot undo this action.", "Delete", "Cancel"))
                return;

            List<string> sets = new List<string>();
            for (int i = 0; i < targets.Length; i++)
            {
                AssetDatabase.RemoveObjectFromAsset(targets[i]);
                if (!sets.Contains(paths[i]))
                    sets.Add(paths[i]);
            }

            for (int i = 0; i < sets.Count; i++)
            {
                EditorUtility.SetDirty(AssetDatabase.LoadAssetAtPath<Speech>(sets[i]));
                AssetDatabase.ImportAsset(sets[i]);
            }
        }

        public void Rename(string value)
        {
            clip.clipName = value;
            clip.name = clip.uuid + "-" + value;
            SetDirty();
            ReImport();
        }

        public new void SetDirty()
        {
            EditorUtility.SetDirty(clip);
        }

        public void ReImport()
        {
            AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(clip), ImportAssetOptions.ForceUpdate);
        }

    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Clip_Editor.cs.meta
================================================
fileFormatVersion: 2
guid: 0b96950d52e7da547959d9a3faba9b2b
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Phonemes_Editor.cs
================================================
using UnityEngine;
using UnityEditor;
using Resemble.GUIEditor;
using Resemble;

public class Phonemes_Editor : Editor
{
    //private Phonemes phonemes;
    public static Color graphBgColor = new Color(0.2f, 0.2f, 0.2f, 1.0f);
    public static Color transparent = new Color(0.0f, 0.0f, 0.0f, 0.0f);

    public delegate void Callback();
    public delegate void CallbackIndex(Rect rect, int index);

    public static void DrawGraph(Phonemes phonemes, ref float time, Callback repaint, CallbackIndex onDrawItem)
    {
        //Get area space
        Rect rect = GUILayoutUtility.GetRect(Screen.width, 300).Shrink(10);
        GUI.Box(rect, "", Styles.whiteFrame);
        rect = rect.Shrink(2);
        Event e = Event.current;
        Styles.Load();


        //Draw top rect
        Rect topRect = new Rect(rect.x, rect.y, rect.width, 18);
        EditorGUI.DrawRect(topRect, graphBgColor);

        //Draw background
        rect = rect.Offset(0, 20, 0, -20);
        EditorGUI.DrawRect(rect, graphBgColor);


        //Handle setTime events
        if ((e.type == EventType.MouseDown || e.type == EventType.MouseDrag) && rect.Contains(e.mousePosition))
        {
            time = Rect.PointToNormalized(rect, e.mousePosition).x;
            repaint.Invoke();
        }


        //Draw cursor
        Rect cursorRect = new Rect(rect.x + rect.width * time, rect.y, 2, rect.height);
        EditorGUI.DrawRect(cursorRect, Color.white);


        //Draw curves and fields
        bool haveCustomItem = onDrawItem != null;
        float width = Screen.width - EditorGUIUtility.labelWidth - (haveCustomItem ? 180 : 50);
        float maxValue = 0.0f;
        string maxValueName = "";
        Color maxValueColor = Color.white;
        for (int i = 0; i < phonemes.curves.Length; i++)
        {
            Color curveColor = Color.HSVToRGB((i * 0.13f) % 1.0f, 0.8f, 1.0f);
            EditorGUIUtility.DrawCurveSwatch(rect, phonemes.curves[i].curve, null, curveColor, transparent, new Rect(0, 0, 1, 1));

            GUILayout.BeginHorizontal();
            GUILayout.Space(10);
            GUILayout.Label(phonemes.curves[i].name, GUILayout.Width(EditorGUIUtility.labelWidth));

            Rect barRect = GUILayoutUtility.GetRect(width, 16);
            barRect.x -= 10;
            barRect.width = width;
            GUI.Box(barRect, "", Styles.whiteFrame);
            float value = phonemes.curves[i].curve.Evaluate(time);
            Rect fillRect = barRect;
            fillRect.width *= Mathf.Clamp01(value);

            if (value > maxValue)
            {
                maxValue = value;
                maxValueName = phonemes.curves[i].name;
                maxValueColor = curveColor;
            }

            fillRect = fillRect.Shrink(1);
            EditorGUI.DrawRect(fillRect, curveColor);

            if (haveCustomItem)
            {
                barRect.Set(barRect.x + barRect.width + 10, barRect.y, 120, barRect.height);
                onDrawItem.Invoke(barRect, i);
            }


            GUILayout.EndHorizontal();
            GUILayout.Space(3);
        }


        //Draw maxValue top label
        if (maxValue > 0.0001f)
        {
            topRect.x = cursorRect.x - 10;
            Color guiColor = GUI.color;
            GUI.color = maxValueColor;
            GUI.Label(topRect, maxValueName, Styles.whiteLabel);
            GUI.color = guiColor;
        }
    }
}


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Phonemes_Editor.cs.meta
================================================
fileFormatVersion: 2
guid: 5578f13206421ce418b8fd8ed0f2eb1c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Speech_Editor.cs
================================================
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditorInternal;
using Resemble.Structs;

namespace Resemble.GUIEditor
{
    [CustomEditor(typeof(Speech))]
    public class Speech_Editor : Editor
    {
        //Data
        private Speech speech;
        private ReorderableList list;

        //GUI
        private Vector2 mousePosition;
        private Rect voiceRect;
        private PopupButton deleteButton = new PopupButton("Delete", "Delete the clip selected in the list.", new Vector2(300, 51));
        private PopupButton importButton = new PopupButton("Import", "Import a clip that already exists in the project with this voice.", new Vector2(200, 120));
        private PopupButton CreateButton = new PopupButton("Create", "Create a new clip with this voice.", new Vector2(200, 51));
        private GUIContent phonemeTableLabel = new GUIContent("Phoneme table", "A phoneme table allows you to transform the raw phoneme data into a usable version for your project.\nLeave this field empty if you want to keep the raw data.");

        protected override bool ShouldHideOpenButton()
        {
            return true;
        }



        protected override void OnHeaderGUI()
        {
            //Init resources
            Styles.Load();
            speech = target as Speech;

            //Bar
            Rect rect = new Rect(0, 0, Screen.width, 46);
            GUI.Box(rect, "", Styles.bigTitle);

            //Icon
            rect.Set(6, 6, 32, 32);
            GUI.DrawTexture(rect, Resources.instance.icon);

            //Title
            rect.Set(44, 4, Screen.width - 100, 20);
            GUI.Label(rect, speech.name, EditorStyles.largeLabel);

            //Pod count
            rect.Set(44, 23, Screen.width - 130, 16);
            GUI.Label(rect, "Clip count : " + speech.clips.Count);

            //Resemble.ai link
            rect.Set(Screen.width - 122, rect.y + 5, 125, 16);
            if (GUI.Button(rect, "Open Resemble.ai", EditorStyles.linkLabel))
                WebPage.ResembleHome.Open();
            EditorGUIUtility.AddCursorRect(rect, MouseCursor.Link);

            //Help button
            rect.Set(Screen.width - 37, 6, 16, 16);
            if (GUI.Button(rect, Styles.characterSetHelpBtn, GUIStyle.none))
                WebPage.PluginCharacterSet.Open();

            //Options button
            rect.x += 18;
            if (GUI.Button(rect, Styles.popupBtn, GUIStyle.none))
            {
                GenericMenu menu = new GenericMenu();
                menu.AddItem(new GUIContent("Export all clips in wav"), false, ExportAllClipsInWav);
                menu.AddSeparator("");
                menu.AddItem(new GUIContent("Help"), false, () => { WebPage.PluginCharacterSet.Open(); });
                menu.AddItem(new GUIContent("Settings"), false, Settings.OpenWindow);
                menu.DropDown(rect);
            }

            GUILayout.Space(50);
        }

        public override void OnInspectorGUI()
        {
            //Init vars
            Event e = Event.current;
            mousePosition = e.mousePosition;

            //Speech properties
            GUILayout.Space(10);
            DrawSpeechProperties();
            GUILayout.Space(10);


            //Select a voice box
            bool noVoice = string.IsNullOrEmpty(speech.voiceUUID);
            if (noVoice)
                EditorGUILayout.HelpBox("Please select a voice.", MessageType.Info);


            //Disable ui if there is no voice selecteds
            EditorGUI.BeginDisabledGroup(noVoice);


            //Rebuild list if needed and draw it
            if (list == null)
                RebuildClipList();
            list.DoLayoutList();


            //Draw commands buttons
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            EditorGUI.BeginDisabledGroup(list.index < 0);
            deleteButton.DoLayout((Rect r) => { HidePopups(); DeletePopup.Show(r, DeleteClip); });
            EditorGUI.EndDisabledGroup();
            importButton.DoLayout((Rect r) => { HidePopups(); ClipPopup.Show(r, speech, ImportClip); });
            CreateButton.DoLayout((Rect r) => { HidePopups(); StringPopup.Show(r, "New clip name", CreateClip); });
            GUILayout.EndHorizontal();
            EditorGUI.EndDisabledGroup();


            //Draw connected error
            Utils.ConnectionRequireMessage();


            //Keep a constant refresh
            Repaint();
        }

        /// <summary> Ensures that all popup windows that the editor can open are closed. </summary>
        private void HidePopups()
        {
            DeletePopup.Hide();
            ClipPopup.Hide();
            StringPopup.Hide();
        }

        /// <summary> Delete the clip selected in the list from speech. </summary>
        private void DeleteClip(bool deleteOnAPI, bool deleteAudioClip)
        {
            if (list.index < 0)
                return;
            DeleteClip(speech.clips[list.index], deleteOnAPI, deleteAudioClip);
        }

        /// <summary> Delete a clip from speech. </summary>
        public void DeleteClip(Clip clip, bool deleteOnAPI, bool deleteAudioClip)
        {
            //Delete audioclip if needed
            if (deleteAudioClip && clip.clip != null)
                AssetDatabase.DeleteAsset(AssetDatabase.GetAssetPath(clip.clip));

            //Delete on APIif needed
            if (deleteOnAPI)
                APIBridge.DeleteClip(clip.uuid);

            //Delete clip from speech
            AssetDatabase.RemoveObjectFromAsset(clip);
            speech.clips.Remove(clip);

            //Refresh speech
            AssetDatabase.ImportAsset(AssetDatabase.GetAssetOrScenePath(speech), ImportAssetOptions.ForceSynchronousImport);
        }

        public void CreateClip(string name)
        {
            if (!string.IsNullOrEmpty(name))
            {
                APIBridge.CreateClip(new ClipPatch.Data(name, "", speech.voiceUUID), false, (ClipStatus status, Error error) =>
                {
                    if (error)
                        error.Log();
                    else
                    {
                        if (status.status == "OK")
                            AddClip(name, status.id);
                        else
                            Debug.LogError("Cannot create the clip, please try again later.");
                    }
                });
            }
        }

        private void RebuildClipList()
        {
            list = new ReorderableList(speech.clips, typeof(Clip), false, true, false, false);
            list.onSelectCallback += List_OnSelect;
            list.elementHeight = 28;
            list.drawElementCallback = List_DrawElement;
            list.drawHeaderCallback = List_DrawHeader;
        }

        public void AddClip(string name, string uuid)
        {
            Clip clip = CreateInstance<Clip>();
            clip.name = uuid + "-" + name;
            clip.uuid = uuid;
            clip.clipName = name;
            clip.text = new Text();
            AddClipToAsset(clip);
        }

        public void ImportClip(ResembleClip source)
        {
            Clip clip = CreateInstance<Clip>();
            clip.text = new Text();
            clip.uuid = source.uuid;
            clip.name = source.uuid + "-" + source.title;
            clip.clipName = source.title;
            clip.text.ParseResembleString(source.body);
            AddClipToAsset(clip);
        }

        public void AddClipToAsset(Clip clip)
        {
            //Add clip to list
            clip.speech = speech;
            speech.clips.Add(clip);
            speech.clips = speech.clips.OrderBy(x => x.clipName).ToList();

            //Add clip to assets
            AssetDatabase.AddObjectToAsset(clip, speech);
            EditorUtility.SetDirty(speech);
            AssetDatabase.ImportAsset(AssetDatabase.GetAssetPath(clip));

            //Focus clip
            Selection.activeObject = clip;
        }

        private void OnEnable()
        {
            speech = target as Speech;
            int count = speech.clips.Count;
            for (int i = 0; i < count; i++)
            {
                if (!AssetDatabase.IsSubAsset(speech.clips[i]))
                {
                    speech.clips.RemoveAt(i);
                    count--;
                    i--;
                }
            }
        }

        private void List_OnSelect(ReorderableList list)
        {
            EditorGUIUtility.PingObject(speech.clips[list.index]);
        }

        private void List_DrawElement(Rect rect, int index, bool isActive, bool isFocused)
        {
            Rect titleRect = new Rect(rect.x + 20, rect.y + 2, rect.width - 100, rect.height);
            GUI.Label(titleRect, speech.clips[index].clipName, EditorStyles.largeLabel);
            titleRect.Set(rect.x, rect.y + rect.height - 1, rect.width, 1.0f);
            EditorGUI.DrawRect(titleRect, Color.grey * 0.3f);
            bool haveClip = speech.clips[index].clip != null;

            float width = rect.width;
            rect.Set(width - 90, rect.y + 2, 50, rect.height - 4);
            if (Utils.FlatButton(rect, "Edit", Styles.clipGreenColor, 1.0f, rect.Contains(mousePosition) ? 0.5f : 0.2f))
                Selection.activeObject = speech.clips[index];
            rect.Set(width - 35, rect.y, 50, rect.height);
            Utils.DragArea(rect, speech.clips[index].clip);
            if (Utils.FlatButton(rect, "Clip", Styles.clipOrangeColor, 1.0f, haveClip ? (rect.Contains(mousePosition) ? 0.5f : 0.2f) : 1.0f) && haveClip)
                Selection.activeObject = speech.clips[index].clip;
        }

        private void List_DrawHeader(Rect rect)
        {
            GUI.Label(rect, "Clips");
        }

        private void DrawSpeechProperties()
        {
            //Voice field
            EditorGUILayout.BeginHorizontal();
            GUILayout.Label("Voice", GUILayout.Width(EditorGUIUtility.labelWidth - 2));
            if (EditorGUILayout.DropdownButton(new GUIContent(string.IsNullOrEmpty(speech.voiceName) ? "None" : speech.voiceName), FocusType.Passive))
            {
                VoicePopup.Show(voiceRect, (Voice voice) =>
                {
                    speech.voiceName = voice.name;
                    speech.voiceUUID = voice.uuid;
                    EditorUtility.SetDirty(speech);
                });
            }

            //Set rect for popup
            if (Event.current.type == EventType.Repaint)
                voiceRect = GUIUtility.GUIToScreenRect(GUILayoutUtility.GetLastRect().Offset(0, 18, 0, 100));
            EditorGUILayout.EndHorizontal();

            //Begin Change Check
            EditorGUI.BeginChangeCheck();

            //Include phonemes
            speech.includePhonemes = EditorGUILayout.Toggle("Include phonemes", speech.includePhonemes);

            //Phoneme table
            if (speech.includePhonemes)
            {
                PhonemeTable temp = EditorGUILayout.ObjectField(phonemeTableLabel, speech.phonemeTable, typeof(PhonemeTable), false) as PhonemeTable;

                //Update phoneme table on clip when change
                if (temp != speech.phonemeTable)
                {
                    speech.phonemeTable = temp;
                    for (int i = 0; i < speech.clips.Count; i++)
                    {
                        if (speech.clips[i].havePhonemes)
                            speech.clips[i].phonemes.UpdateTable(temp);
                    }
                }
            }

            //Apply change if any
            if (EditorGUI.EndChangeCheck())
                EditorUtility.SetDirty(speech);

            GUILayout.Space(5);
            Utils.DrawSeparator();
        }

        public void ExportAllClipsInWav()
        {
            EditorUtility.SaveFolderPanel("Export wav files", "", "");
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Speech_Editor.cs.meta
================================================
fileFormatVersion: 2
guid: d5809f94fc8dcd44f912031d479628e3
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Text_Editor.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Resemble;

namespace Resemble.GUIEditor
{
    public class Text_Editor
    {

        //Target
        public Text text;
        public bool dirty;

        //Text edition stuff
        private string userString
        {
            get
            {
                return text.userString;
            }
            set
            {
                text.userString = value;
            }
        }
        private int length
        {
            get
            {
                return userString.Length;
            }
        }
        private Rect[] rects;
        private LinesPack lines;
        private double lastInputTime;
        private bool drag;
        private Vector2 lastClicPos;
        private double lastClicTime;
        private bool haveSelection
        {
            get
            {
                return carretID != selectID;
            }
        }
        private int carretID
        {
            get
            {
                return text.carretID;
            }
            set
            {
                text.carretID = value;
            }
        }
        private int selectID
        {
            get
            {
                return text.selectID;
            }
            set
            {
                text.selectID = value;
            }
        }
        private bool focus;

        //GUI stuff
        private bool fromOneShootWindow;
        private int clickCount;
        private Rect textRect;
        private Rect clipRect;
        private Vector2 scroll;
        private GUIContent userStringGUIContent
        {
            get
            {
                return new GUIContent(userString);
            }
        }

        Utils.ButtonState breakBtn;
        Utils.ButtonState emotionBtn;
        Utils.ButtonState editBtn;
        Utils.ButtonState removeBtn;

        //Repaint stuff
        public delegate void Callback();
        private bool needTagRefresh;
        private bool containsTag;
        private Tag tagToEdit;
        Callback requestRepaint;

        //Constructor
        public Text_Editor(Text text, Callback editCallback, Callback repaintCallback)
        {
            this.text = text;
            text.onEdit += () => { needTagRefresh = true; repaintCallback.Invoke(); };
            text.onChangeSelect += () => { CheckContains(); RefreshLines(); RefreshSelectionRects(); repaintCallback.Invoke(); };
            requestRepaint += repaintCallback;
        }

        #region Draw functions

        private void RefreshLines()
        {
            lines = LinesPack.FromText(userString, textRect, Styles.textStyle);
        }

        private void CheckContains()
        {
            if (text.haveSelection)
                containsTag = text.GetTags().Count > 0;
            else
                containsTag = text.GetTag() != null;
        }

        public void Refresh()
        {
            //Postpone the next refresh to the next event.
            if (Event.current == null)
            {
                needTagRefresh = true;
                SceneView.RepaintAll();
            }

            //Refresh now
            else
            {
                RefreshTagsRects();
                RefreshSelectionRects();
                requestRepaint.Invoke();
            }
        }

        public void DoLayout(bool enable, bool fromOneShootWindow)
        {
            this.fromOneShootWindow = fromOneShootWindow;
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 300).Shrink(10);
            DrawTextArea(rect, Settings.haveProject);
        }

        public void DrawTagsBtnsLayout(bool disabled)
        {
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 50).Shrink(10);
            Rect btnRect = rect;

            //Update disable state of buttons based on selection
            breakBtn = DisableIf(haveSelection, breakBtn);
            emotionBtn = DisableIf(!haveSelection, emotionBtn);
            editBtn = DisableIf(haveSelection || !containsTag, editBtn);
            removeBtn = DisableIf(!containsTag, removeBtn);

            //Break button
            btnRect.width = 60;
            if (Utils.FlatButton(btnRect, new GUIContent(Resources.instance.breakIco), new Color(0.956f, 0.361f, 0.259f), ref breakBtn))
            {
                tagToEdit = text.AddBreak();
            }

            //Emotion button
            btnRect.Set(btnRect.x + btnRect.width + 5, btnRect.y, 130, btnRect.height);
            if (Utils.FlatButton(btnRect, new GUIContent("Add Emotion"), new Color(0.259f, 0.6f, 0.956f), ref emotionBtn))
            {
                tagToEdit = text.AddTag();
            }

            btnRect.Set(btnRect.x + btnRect.width + 5, btnRect.y, 70, btnRect.height);
            if (Utils.FlatButton(btnRect, new GUIContent("Edit"), new Color(0.259f, 0.6f, 0.956f), ref editBtn))
            {
                tagToEdit = text.GetTag();
            }

            btnRect.Set(btnRect.x + btnRect.width + 5, btnRect.y, 100, btnRect.height);
            if (Utils.FlatButton(btnRect, new GUIContent("Remove"), new Color(1.0f, 0.6f, 0.1f), ref removeBtn))
            {
                if (text.haveSelection)
                    text.RemoveTag();
                else
                    text.RemoveTag(text.GetTag());
            }
        }

        private Utils.ButtonState DisableIf(bool value, Utils.ButtonState state)
        {
            if (value)
                return Utils.ButtonState.Disable;
            else if (state == Utils.ButtonState.Disable)
                return Utils.ButtonState.None;
            return state;
        }

        public void DrawTextArea(Rect rect, bool interactable)
        {
            //Init components
            if (text == null)
                return;
            Styles.Load();
            Event e = Event.current;

            //Refresh stuff
            if (e.type == EventType.Repaint)
            {
                if (needTagRefresh || tagToEdit != null)
                {
                    textRect = new Rect(5, 5 - scroll.y, rect.width - 26, rect.height);
                    needTagRefresh = false;
                    RefreshLines();
                    RefreshTagsRects();
                    requestRepaint.Invoke();
                }
                if (tagToEdit != null)
                {
                    ShowEditPopupOntag(tagToEdit);
                    tagToEdit = null;
                }
            }

            //Draw background and set clip area
            Rect rectBox = new Rect(rect.x, rect.y, rect.width, rect.height);
            GUI.Box(rectBox, "", GUI.skin.textField);
            GUI.BeginClip(rectBox);
            if (e.type == EventType.Repaint)
                clipRect = new Rect(rectBox.x, rectBox.y, rectBox.width - 20, rectBox.height);

            //Draw tags rects
            for (int i = 0; i < text.tags.Count; i++)
                DrawRects(text.tags[i].rects, true, text.tags[i].color);

            //Draw selection rects
            DrawRects(rects, false, Styles.selectColor);

            //Draw text
            float contentHeight = Styles.textStyle.CalcHeight(userStringGUIContent, rectBox.width - 30);
            textRect.height = contentHeight;
            GUI.Label(textRect, userString, Styles.textStyle);

            //Draw carret
            if (interactable)
                DrawCarret();

            //Handle events
            ManageFocus(e);
            if (focus && interactable)
            {
                if (e.type == EventType.KeyDown)
                    ReceiveKeyEvent(e);
                if (e.isMouse)
                    ReceiveMouseEvent(e);
            }

            //Get scroll by mouse scrollwheel
            if (e.type == EventType.ScrollWheel && interactable)
            {
                scroll.y += e.delta.y * 5;
                needTagRefresh = true;
                Refresh();
            }

            //Clamp scroll to content area
            float dif = Mathf.Max(0.0f, contentHeight - rectBox.height + 64);
            scroll.y = Mathf.Clamp(scroll.y, 0.0f, dif);

            //End clip area
            GUI.EndClip();

            //Draw scroll bar
            Rect scrollRect = new Rect(rectBox.x + rectBox.width - 16, rectBox.y + 1, 15, rectBox.height - 2);
            float size = Mathf.Clamp(contentHeight - dif, 0.0f, dif);
            if (dif > 0.0f)
                scroll.y = GUI.VerticalScrollbar(scrollRect, scroll.y, size, 0.0f, dif + size);
            else
                GUI.VerticalScrollbar(scrollRect, 0.0f, 1.0f, 0.0f, 1.0f);

            //Add text cursor area
            if (interactable)
                EditorGUIUtility.AddCursorRect(rectBox.Offset(0, 0, -20, 0), MouseCursor.Text);
        }

        public void DrawCharCountBar(Rect rect)
        {
            EditorGUI.ProgressBar(rect, length / 1000.0f, length + "/1000");
        }

        /// <summary> 
        /// Draw a group of rects in text area. Like selection rects or tag rects.
        /// </summary>
        private void DrawRects(Rect[] rects, bool flatStyle, Color color)
        {
            if (rects == null)
                return;

            for (int i = 0; i < rects.Length; i++)
            {
                Rect r = rects[i];
                r.y -= scroll.y;

                if (flatStyle)
                    Utils.FlatRect(r, color.Alpha(0.7f), 0.2f, 0.0f);
                else
                    EditorGUI.DrawRect(r, color);
            }
        }

        /// <summary>
        /// Draw a blinking carret at selectID
        /// </summary>
        private void DrawCarret()
        {
            if (!focus)
                return;

            double delta = EditorApplication.timeSinceStartup - lastInputTime;
            if ((delta % 1.0f) > 0.5)
                return;

            Vector2 pos = GetCarretAt(selectID);
            Rect rect = new Rect(pos.x, pos.y, 1, 16);
            EditorGUI.DrawRect(rect, EditorGUIUtility.isProSkin ? Color.white : Color.black);
        }
        #endregion

        #region Text utils functions
        /// <summary>
        /// Return pixel position from character index in userString.
        /// </summary>
        private Vector2 GetCarretAt(int index)
        {
            return Styles.textStyle.GetCursorPixelPosition(textRect, userStringGUIContent, index);
        }

        /// <summary>
        /// Return character index from pixel position in userString.
        /// </summary>
        private int GetCarretAt(Vector2 position)
        {
            return Styles.textStyle.GetCursorStringIndex(textRect, userStringGUIContent, position);
        }

        /// <summary>
        /// Generate rects between startID and endID on userString in textRect
        /// </summary>
        private Rect[] GetRects(int startID, int endID, Vector2 offset)
        {
            //Reorder select IDs
            int min = Mathf.Min(startID, endID);
            int max = Mathf.Max(startID, endID);

            //Rebuild lines if needed
            if (lines == null)
                lines = LinesPack.FromText(userString, textRect, Styles.textStyle);

            //Return rects generated between start - end
            return lines.GetRects(min, max, Styles.textStyle, offset + new Vector2(-1, 2));
        }

        /// <summary>
        /// Give the character count between the index and the start/end of the word
        /// </summary>
        private int WordLenght(int index, bool back)
        {
            if (!back)
            {
                int result = userString.IndexOfAny(new char[] { ' ', '\n' }, index + 1);
                return result == -1 ? index : (result + 1) - index;
            }
            else
            {
                int result = userString.LastIndexOfAny(new char[] { ' ', '\n' }, index - 2);
                return result == -1 ? index : index - (result + 1);
            }
        }

        /// <summary>
        /// Return true if all ids are in the userString
        /// </summary>
        private bool IsInString(params int[] ids)
        {
            for (int i = 0; i < ids.Length; i++)
            {
                if (ids[i] < 0)
                    return false;
                if (ids[i] > length)
                    return false;
            }
            return true;
        }

        /// <summary> Return the bottom left corner in screenPos of a tag. </summary>
        private Vector2 GetTagPos(Tag tag)
        {
            Vector2 min = tag.rects[0].min;
            for (int i = 1; i < tag.rects.Length; i++)
            {
                if (min.y > tag.rects[i].min.y)
                    min = tag.rects[i].min;
            }

            min += clipRect.min + new Vector2(2, -scroll.y + Styles.textStyle.lineHeight);
            return GUIUtility.GUIToScreenPoint(min);
        }

        #endregion

        #region User Events

        private void ReceiveKeyEvent(Event e)
        {
            if (e.functionKey)
            {
                switch (e.keyCode)
                {
                    case KeyCode.Backspace:
                        //Have selection
                        if (text.haveSelection)
                        {
                            text.Delete();
                            break;
                        }

                        //Can't remove more characters
                        if (carretID == 0)
                            break;

                        //Classic
                        if (!e.control)
                        {
                            text.RemoveChars(-1);
                            break;
                        }

                        //Control modificator
                        text.RemoveChars(-WordLenght(carretID, true));
                        break;

                    case KeyCode.Delete:
                        //Have selection
                        if (text.haveSelection)
                        {
                            text.Delete();
                            break;
                        }

                        //Can't remove more characters
                        if (carretID == text.userString.Length)
                            break;

                        //Classic
                        if (!e.control)
                        {
                            text.RemoveChars(1);
                            break;
                        }

                        //Control modificator
                        text.RemoveChars(WordLenght(carretID, false));
                        break;

                    case KeyCode.LeftArrow:
                    case KeyCode.RightArrow:
                    case KeyCode.UpArrow:
                    case KeyCode.DownArrow:
                        ArrowMove(e);
                        break;
                    default:
                        //Debug.Log(e.keyCode);
                        break;
                }
            }
            else
            {
                //Type simple character
                if (!char.IsControl(e.character))
                    text.TypeChar(e.character);

                //Control + character
                else
                {
                    switch (e.keyCode)
                    {
                        case KeyCode.Return:
                        case KeyCode.KeypadEnter:
                            text.Delete();
                            text.TypeChar('\n');
                            break;
                        case KeyCode.A:
                            if (e.control)
                                text.SelectAll();
                            break;
                        case KeyCode.X:
                            if (e.control)
                                text.Cut();
                            break;
                        case KeyCode.C:
                            if (e.control)
                                text.Copy();
                            break;
                        case KeyCode.V:
                            if (e.control)
                                text.Paste();
                            break;
                    }
                }
            }

            e.Use();
            lastInputTime = EditorApplication.timeSinceStartup;
        }

        private void ReceiveMouseEvent(Event e)
        {
            //Remove drag flag after lose it in out of screen
            if (drag && e.type == EventType.MouseDown && e.button == 0)
                drag = false;

            if (!drag)
            {
                if (e.type == EventType.MouseDown && e.button == 0)
                {
                    double time = EditorApplication.timeSinceStartup;
                    //Double clic
                    if ((time - lastClicTime) < 0.25f && Vector2.Distance(lastClicPos, e.mousePosition) < 5.0f)
                    {
                        SelectWordAt(e.mousePosition);
                    }

                    //Simple clic
                    else
                    {
                        int id = GetCarretAt(e.mousePosition);
                        carretID = id;
                        if (!e.shift)
                        {
                            selectID = id;
                            rects = null;
                        }
                        else
                        {
                            RefreshSelectionRects();
                        }
                    }

                    drag = true;
                    lastClicTime = time;
                    lastClicPos = e.mousePosition;
                    e.Use();
                }
            }
            else
            {
                if (e.type == EventType.MouseDrag)
                {
                    selectID = GetCarretAt(e.mousePosition);
                    e.Use();
                }
                if (e.type == EventType.MouseUp && e.button == 0)
                {
                    drag = false;
                    e.Use();
                }
            }

            //Right clic - Open a context menu
            if ((e.type == EventType.MouseDown && e.button == 1) || e.type == EventType.ContextClick)
            {
                //Set carret on clic if there is no selection or the clic is not on the selection.
                int mouseID = GetCarretAt(e.mousePosition);
                if (!text.haveSelection || !text.SelectionContains(mouseID))
                    carretID = selectID = mouseID;

                //Get flags
                bool haveClipboard = !string.IsNullOrEmpty(GUIUtility.systemCopyBuffer);
                bool onTag = !text.haveSelection && text.GetTag() != null;

                //If shift and on tag - Open directly the tag editor
                if (e.shift && onTag)
                {
                    tagToEdit = text.GetTag();
                }
                //Build context menu
                else
                {
                    GenericMenu menu = new GenericMenu();
                    if (haveSelection)
                    {
                        menu.AddItem(new GUIContent("Copy"), false, () => { text.Copy(); });
                        menu.AddItem(new GUIContent("Cut"), false, () => { text.Cut(); });
                        if (haveClipboard)
                            menu.AddItem(new GUIContent("Paste"), false, () => { text.Paste(); });
                        else
                            menu.AddDisabledItem(new GUIContent("Paste"), false);
                        menu.AddSeparator("");
                        menu.AddDisabledItem(new GUIContent("Add break"), false);
                        menu.AddItem(new GUIContent("Add Emotion"), false, () => { tagToEdit = text.AddTag(); });
                        menu.AddSeparator("");
                        menu.AddDisabledItem(new GUIContent("Edit"), false);
                        menu.AddItem(new GUIContent("Remove"), false, () => { text.RemoveTag(); });
                    }
                    else
                    {
                        menu.AddDisabledItem(new GUIContent("Copy"), false);
                        menu.AddDisabledItem(new GUIContent("Cut"), false);
                        if (haveClipboard)
                            menu.AddItem(new GUIContent("Paste"), false, () => { text.Paste(); });
                        else
                            menu.AddDisabledItem(new GUIContent("Paste"), false);
                        menu.AddSeparator("");
                        menu.AddItem(new GUIContent("Add break"), false, () => { tagToEdit = text.AddBreak(); });
                        menu.AddDisabledItem(new GUIContent("Add Emotion"), false);
                        menu.AddSeparator("");
                        if (onTag)
                        {
                            menu.AddItem(new GUIContent("Edit"), false, () => { tagToEdit = text.GetTag(); });
                            menu.AddItem(new GUIContent("Remove"), false, () => { text.RemoveTag(text.GetTag()); });
                        }
                        else
                        {
                            menu.AddDisabledItem(new GUIContent("Edit Emotion"), false);
                            menu.AddDisabledItem(new GUIContent("Remove Emotion"), false);
                        }
                    }
                    menu.ShowAsContext();
                }
                e.Use();
            }

            if (drag)
                lastInputTime = EditorApplication.timeSinceStartup;
            RefreshSelectionRects();
            CheckContains();
        }

        private void ShowEditPopupOntag(Tag tag)
        {
            TagPopup.Show(GetTagPos(tag), tag, fromOneShootWindow);
        }

        private void ManageFocus(Event e)
        {
            if (e.clickCount != clickCount)
            {
                clickCount = e.clickCount;
                focus = clipRect.Shrink(-10).Contains(e.mousePosition) || drag;
            }
        }

        private void ArrowMove(Event e)
        {
            bool shift = e.shift;

            if (haveSelection && !shift)
            {
                int min = Mathf.Min(carretID, selectID);
                int max = Mathf.Max(carretID, selectID);

                switch (e.keyCode)
                {
                    case KeyCode.LeftArrow:
                        selectID = carretID = min;
                        rects = null;
                        return;
                    case KeyCode.RightArrow:
                        selectID = carretID = max;
                        rects = null;
                        return;
                    case KeyCode.UpArrow:
                        carretID = selectID;
                        shift = false;
                        break;
                    case KeyCode.DownArrow:
                        carretID = selectID;
                        shift = false;
                        break;
                }

                RefreshSelectionRects();
            }


            switch (e.keyCode)
            {
                case KeyCode.LeftArrow:
                    if (carretID > 0)
                    {
                        if (e.control)
                            carretID = Mathf.Max(carretID - WordLenght(carretID, true), 0);
                        else
                            carretID--;
                    }
                    break;
                case KeyCode.RightArrow:
                    if (carretID < userString.Length)
                    {
                        if (e.control)
                            carretID = Mathf.Min(carretID + WordLenght(carretID, false), length);
                        else
                            carretID++;
                    }
                    break;
                case KeyCode.UpArrow:
                    {
                        Vector2 pos = GetCarretAt(carretID);
                        pos.y -= Styles.textStyle.lineHeight;
                        carretID = GetCarretAt(pos);
                    }
                    break;
                case KeyCode.DownArrow:
                    {
                        Vector2 pos = GetCarretAt(carretID);
                        pos.y += Styles.textStyle.lineHeight;
                        carretID = GetCarretAt(pos);
                    }
                    break;
            }

            if (!shift)
                selectID = carretID;
            else
            {
                RefreshSelectionRects();
            }
        }

        private void SelectWordAt(Vector2 position)
        {
            int id = GetCarretAt(position);
            int min = WordLenght(id + 1, true) - 1;
            int max = WordLenght(id - 1, false) - 2;

            carretID = id - min;
            selectID = Mathf.Min(id + max, length);
        }

        private void OnEditText(int id, int length, bool add)
        {
            if (add)
            {
                for (int i = 0; i < text.tags.Count; i++)
                {
                    text.tags[i].AddCharacters(id, length);
                }
            }
            else
            {
                int count = text.tags.Count;
                for (int i = 0; i < count; i++)
                {
                    if (text.tags[i].RemoveCharacters(id, length))
                    {
                        text.tags.RemoveAt(i);
                        i--;
                        count--;
                    }
                }
            }
        }


        #endregion

        #region Refresh stuff
        private void RefreshSelectionRects()
        {
            if (text.haveSelection)
                rects = GetRects(carretID, selectID, textRect.min + scroll);
            else
                rects = new Rect[0];
        }

        private void RefreshTagsRects()
        {
            for (int i = 0; i < text.tags.Count; i++)
                text.tags[i].rects = GetRects(text.tags[i].start, text.tags[i].end, textRect.min + scroll);
        }

        class LinesPack
        {
            public string[] lines;
            int[] length;
            int[] startID;

            public LinesPack(string[] lines)
            {
                this.lines = lines;
                startID = new int[lines.Length];
                length = new int[lines.Length];
                int total = 0;
                for (int i = 0; i < lines.Length; i++)
                {
                    startID[i] = total;
                    length[i] = lines[i].Length;
                    total += length[i];
                }
            }

            public Rect[] GetRects(int start, int end, GUIStyle style, Vector2 offset)
            {
                int firstLine = lines.Length - 1;
                int lastLine = 0;
                for (int i = 0; i < lines.Length; i++)
                {
                    if (start >= startID[i])
                        firstLine = i;
                    if (end >= startID[i])
                        lastLine = i;
                }

                Rect[] rects = new Rect[lastLine - firstLine + 1];
                float lineHeight = style.lineHeight;
                for (int i = firstLine; i <= lastLine; i++)
                {
                    float x;
                    float width;

                    if (i == firstLine && start - startID[i] != 0)
                    {
                        x = style.CalcSize(new GUIContent(lines[i].Remove(start - startID[i]))).x;
                    }
                    else
                    {
                        x = 2;
                    }

                    if (i == lastLine && end - startID[i] != length[i])
                    {
                        width = style.CalcSize(new GUIContent(lines[i].Remove(end - startID[i]))).x;
                    }
                    else
                    {
                        width = style.CalcSize(new GUIContent(lines[i])).x;
                    }
                    rects[i - firstLine] = new Rect(x + offset.x, i * lineHeight + offset.y, width - x, lineHeight);
                }
                return rects;
            }

            public static LinesPack FromText(string text, Rect rect, GUIStyle style)
            {
                return new LinesPack(LinesFromString(text, rect, style));
            }

            private static string[] LinesFromString(string value, Rect rect, GUIStyle style)
            {
                //Split by line return
                string[] splitString = value.Split('\n');
                for (int i = 0; i < splitString.Length; i++)
                    splitString[i] = splitString[i] + "\n";

                //Insert split by word warp
                Rect virtualRect = new Rect(0, 0, rect.width, 100);
                List<string> linesList = new List<string>();
                for (int i = 0; i < splitString.Length; i++)
                {
                    string sub = splitString[i];
                    int cutID = style.GetCursorStringIndex(virtualRect, new GUIContent(sub), new Vector2(virtualRect.width, 8)) + 1;
                    int a = 0;
                    while (cutID != sub.Length && a < 20)
                    {
                        a++;
                        linesList.Add(sub.Substring(0, cutID));
                        sub = sub.Remove(0, cutID);
                        cutID = style.GetCursorStringIndex(virtualRect, new GUIContent(sub), new Vector2(virtualRect.width, 8)) + 1;
                    }
                    linesList.Add(sub);
                }

                //Return result
                return linesList.ToArray();
            }
        }
        #endregion
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Text_Editor.cs.meta
================================================
fileFormatVersion: 2
guid: 2648b8610d7d09a4a918a555295a31dc
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors.meta
================================================
fileFormatVersion: 2
guid: a9b90c78ad16d6e42bbf43d3cb361f2f
folderAsset: yes
DefaultImporter:
  externalObjects: {}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ClipPopup.cs
================================================
using System.Linq;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.IMGUI.Controls;
using Resemble.Structs;

namespace Resemble.GUIEditor
{
    public class ClipPopup : EditorWindow
    {
        //GUI
        private static ClipPopup window;
        private static Vector2 scroll;
        private static Error error;

        //Search
        private string search;
        private SearchField searchField;

        //Others
        private static string voiceUUID;
        private static ValidateCallback callback;
        private static ResembleClip[] clips;
        public delegate void ValidateCallback(ResembleClip clip);

        public static void Show(Rect rect, Speech speech, ValidateCallback callback)
        {
            //Close window if already open
            if (window != null)
            {
                Hide();
                return;
            }

            //Open window
            ClipPopup.callback = callback;
            ClipPopup.voiceUUID = speech.voiceUUID;
            clips = null;
            error = Error.None;
            window = CreateInstance<ClipPopup>();
            window.ShowPopup();
            window.minSize = rect.size;
            window.titleContent = new GUIContent("Voices");
            window.position = rect;

            //Request clips
            List<string> existingClips = speech.clips.Select(x => x.uuid).ToList();
            APIBridge.GetClips((ResembleClip[] clips, Error error) =>
            {
                ClipPopup.clips = clips.Where(x => x.voice == voiceUUID && !existingClips.Contains(x.uuid)).ToArray();
                ClipPopup.error = error;
                window.Repaint();
            });
        }

        private void OnGUI()
        {
            GUILayout.BeginVertical(GUI.skin.window);
            DrawHeader();
            DrawContent();
            GUILayout.EndVertical();
        }

        private void OnLostFocus()
        {
            Hide();
        }

        public static void Hide()
        {
            if (window != null)
            {
                window.Close();
                window = null;
            }
        }

        private void DrawHeader()
        {
            GUILayout.Space(-19);
            GUILayout.BeginHorizontal(EditorStyles.toolbar);

            //search bar
            if (searchField == null)
                searchField = new SearchField();
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 16).Offset(5, 2, -13, 0);
            search = searchField.OnToolbarGUI(rect, search);

            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        private void DrawContent()
        {
            //Draw error if any
            if (error)
                error.DrawErrorBox();

            //Loading message - Wait API response
            if (clips == null)
            {
                EditorGUILayout.HelpBox("Load clips...", MessageType.None);
                return;
            }

            //No clip available
            if (clips.Length == 0)
            {
                EditorGUILayout.HelpBox("There are no more clips available with this voice.", MessageType.Warning);
                if (GUILayout.Button("Close"))
                    Hide();
                return;
            }

            //Draw clip list
            scroll = GUILayout.BeginScrollView(scroll, false, true);
            for (int i = 0; i < clips.Length; i++)
                DrawClip(clips[i]);
            GUILayout.EndScrollView();
        }

        /// <summary> Draw an asset and its children. </summary>
        private void DrawClip(ResembleClip clip)
        {
            //Apply search filter
            if (!string.IsNullOrEmpty(search) && !clip.title.Contains(search))
                return;

            //Draw button
            if (GUILayout.Button(clip.title))
            {
                callback.Invoke(clip);
                Hide();
            }
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ClipPopup.cs.meta
================================================
fileFormatVersion: 2
guid: 776b420ca19078a4992ae0692364d968
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/DeletePopup.cs
================================================
using UnityEngine;
using UnityEditor;

namespace Resemble.GUIEditor
{
    public class DeletePopup : EditorWindow
    {
        //GUI
        private static DeletePopup window;

        //Others
        private static string[] choices = new string[] { "Delete the asset only.", "Delete completely the clip from the project." };
        private static int selected;
        private static bool deleteAudioClip;
        private static ValidateCallback callback;
        public delegate void ValidateCallback(bool deleteOnAPI, bool deletedAudioClips);

        public static void Show(Rect rect, ValidateCallback callback)
        {
            //Close window if already open
            if (window != null)
            {
                Hide();
                return;
            }

            //Open window
            DeletePopup.callback = callback;
            window = CreateInstance<DeletePopup>();
            window.ShowPopup();
            window.minSize = new Vector2(100, 90);
            rect.height = 90;
            window.titleContent = new GUIContent("ChoicePopup");
            window.position = rect;
        }

        private void OnGUI()
        {
            GUILayout.BeginVertical(GUI.skin.window);
            DrawHeader();
            DrawContent();
            GUILayout.EndVertical();
        }

        private void OnLostFocus()
        {
            Hide();
        }

        public static void Hide()
        {
            if (window != null)
            {
                window.Close();
                window = null;
            }
        }

        private void DrawHeader()
        {
            GUILayout.Space(-19);
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Label("Delete clip");
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        private void DrawContent()
        {
            selected = EditorGUILayout.Popup(selected, choices);
            deleteAudioClip = EditorGUILayout.Toggle("Delete generated file", deleteAudioClip);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Cancel"))
            {
                Close();
            }
            if (GUILayout.Button("Confirm"))
            {
                callback.Invoke(selected == 1, deleteAudioClip);
                Close();
            }
            GUILayout.EndHorizontal();     
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/DeletePopup.cs.meta
================================================
fileFormatVersion: 2
guid: e3573fe219658414c9cb161fa06b49ca
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ImportPopup.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

namespace Resemble.GUIEditor
{
    public class ImportPopup : EditorWindow
    {

        private static ImportPopup window;
        private static ImpAsset[] assets;
        private static Vector2 scroll;
        private static ValidateCallback callback;
        private static AllCheckState allCheck;
        private static string path;
        public delegate void ValidateCallback(ImpAsset[] assets);

        public class ImpAsset
        {
            public object obj;
            public GUIContent content;
            public bool import;
            public ImpAsset[] childs;
        }


        public static void Show(ImpAsset[] assets, string path, ValidateCallback callback)
        {
            ImportPopup.path = Utils.LocalPath(path);
            ImportPopup.assets = assets;
            ImportPopup.callback = callback;
            RefreshAllCheck();
            window = EditorWindow.CreateInstance<ImportPopup>();
            window.ShowModalUtility();
            window.titleContent = new GUIContent("Import");
            window.minSize = new Vector2(200, 300);
        }

        private void OnGUI()
        {
            //Avoid corrupted window after a script reload
            if (assets == null)
            {
                Close();
                return;
            }

            //Draw all content
            DrawHeader();
            DrawContent();
            DrawFooter();
        }

        private void DrawHeader()
        {
            GUILayout.Label("Target : " + path);

            GUILayout.BeginHorizontal(EditorStyles.toolbar);

            //Global toggle
            bool temp = GUILayout.Toggle(allCheck == AllCheckState.Check, "All");

            //Partial check knob
            if (allCheck == AllCheckState.Partial)
            {
                Rect rect = GUILayoutUtility.GetLastRect();
                rect.Set(rect.x + 4, rect.y + 4, rect.height - 7, rect.height - 7);
                EditorGUI.DrawRect(rect, Color.black * 0.8f);
            }

            //Change global check
            if (temp != (allCheck == AllCheckState.Check))
                SetFullCheck(temp);

            GUILayout.FlexibleSpace();


            GUILayout.EndHorizontal();
        }

        private void DrawContent()
        {
            scroll = GUILayout.BeginScrollView(scroll);

            for (int i = 0; i < assets.Length; i++)
                DrawAsset(assets[i]);

            GUILayout.EndScrollView();
        }

        private void DrawFooter()
        {
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 1);
            EditorGUI.DrawRect(rect, Color.black * 0.8f);

            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Cancel"))
            {
                Close();
            }
            if (GUILayout.Button("Import"))
            {
                callback.Invoke(assets);
                Close();
            }
            GUILayout.EndHorizontal();
        }

        /// <summary> Draw an asset and its children. </summary>
        private void DrawAsset(ImpAsset asset)
        {
            //Toggle
            bool temp = GUILayout.Toggle(asset.import, asset.content);
            if (temp != asset.import)
            {
                asset.import = temp;
                RefreshAllCheck();
            }

            //Draw childs
            if (asset.childs != null)
            {
                for (int j = 0; j < asset.childs.Length; j++)
                    DrawAsset(asset.childs[j]);
            }
        }

        /// <summary> Apply check value on all assets. </summary>
        public static void SetFullCheck(bool value)
        {
            for (int i = 0; i < assets.Length; i++)
                SetFullCheck(assets[i], value);
            allCheck = value ? AllCheckState.Check : AllCheckState.Uncheck;
        }

        /// <summary> Apply check value on an asset and its childs.  </summary>
        private static void SetFullCheck(ImpAsset asset, bool value)
        {
            asset.import = value;
            if (asset.childs != null)
            {
                for (int i = 0; i < asset.childs.Length; i++)
                    SetFullCheck(asset.childs[i], value);
            }
        }

        /// <summary> Check if all assets are selected for the import. </summary>
        public static void RefreshAllCheck()
        {
            allCheck = IsFullCheck(assets[0]);
            if (allCheck == AllCheckState.Partial)
                return;
            for (int i = 1; i < assets.Length; i++)
            {
                allCheck = Blend(allCheck, IsFullCheck(assets[i]));
                if (allCheck == AllCheckState.Partial)
                    return;
            }
        }

        /// <summary> Check if the asset and its childs are selected for the import. </summary>
        private static AllCheckState IsFullCheck(ImpAsset asset)
        {
            AllCheckState state = asset.import ? AllCheckState.Check : AllCheckState.Uncheck;
            if (state == AllCheckState.Partial)
                return AllCheckState.Partial;
            if (asset.childs != null)
            {
                for (int j = 0; j < asset.childs.Length; j++)
                {
                    state = Blend(state, IsFullCheck(asset.childs[j]));
                    if (state == AllCheckState.Partial)
                        return AllCheckState.Partial;
                }
            }
            return state;
        }

        private enum AllCheckState
        {
            Uncheck,
            Check,
            Partial
        }

        private static AllCheckState Blend(AllCheckState a, AllCheckState b)
        {
            if (a != b)
                return AllCheckState.Partial;
            if (a == AllCheckState.Partial || b == AllCheckState.Partial)
                return AllCheckState.Partial;
            if (a == AllCheckState.Check && b == AllCheckState.Check)
                return AllCheckState.Check;
            return AllCheckState.Uncheck;
        }

    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ImportPopup.cs.meta
================================================
fileFormatVersion: 2
guid: 18de056e9596cda4f8a0c5201da3b1ed
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/NotificationsPopup.cs
================================================
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

namespace Resemble.GUIEditor
{
    public class NotificationsPopup : EditorWindow
    {
        //GUI stuff
        private static NotificationsPopup window;
        private static List<Notification> notifs = new List<Notification>();
        private static bool registerToUpdates;
        private static Color highlightColor = new Color(0.2f, 0.6f, 1.0f, 0.3f);

        //Notifications properties
        const int notifHeight = 38;
        const int notifWidth = 320;
        const float notifTime = 5.0f;

        [System.Serializable]
        class Notification
        {
            public string message;
            public Object link;
            public bool isDiplaying;
            public MessageType type;
            public double displayTime;
            public float lastHeight;

            public Notification(string message, MessageType type, Object link)
            {
                this.message = message;
                this.link = link;
                this.type = type;
                displayTime = 0.0;
                isDiplaying = false;
            }

            public float GetHeight(double time)
            {
                float delta = (float)(time - displayTime);
                float t = 1.0f;

                if (delta < 0.5f)
                {
                    t = delta * 2.0f;
                    t *= t;
                    t *= t;
                }
                else if (notifTime - delta < 0.5f)
                {
                    t = (notifTime - delta) * 2.0f;
                    t *= t;
                    t *= t;
                }

                lastHeight = t * notifHeight;
                return lastHeight;
            }
        }

        /// <summary> Pop a notification on screen when the editor is not playing. Clicking on the notification selects the linked object. </summary>
        public static void Add(string message, MessageType type, Object linkedObject)
        {
            if (notifs.Count == 0 && !registerToUpdates)
            {
                EditorApplication.update += CheckDisponibility;
                registerToUpdates = true;
            }
            notifs.Add(new Notification(message, type, linkedObject));
        }

        /// <summary> Check if notifications can be shown. </summary>
        private static void CheckDisponibility()
        {
            if (Application.isPlaying)
                return;

            EditorApplication.update -= CheckDisponibility;
            registerToUpdates = false;
            Show();
        }

        private static Rect GetPosition(float height)
        {
            Resolution res = Screen.currentResolution;
            return new Rect(res.width - notifWidth - 10, res.height - height - 73, notifWidth, height);
        }

        private new static void Show()
        {
            window = CreateInstance<NotificationsPopup>();
            window.titleContent = new GUIContent("Notifications");
            window.minSize = Vector2.zero;
            window.ShowPopup();
        }

        private void OnGUI()
        {
            //Revove old notifications
            double time = EditorApplication.timeSinceStartup;
            int count = notifs.Count;
            for (int i = 0; i < notifs.Count; i++)
            {
                if (!notifs[i].isDiplaying)
                    continue;
                if (time - notifs[i].displayTime > notifTime)
                {
                    notifs.RemoveAt(i);
                    i--;
                    count--;
                }
            }

            //No more notifications - Close window
            if (notifs.Count == 0)
            {
                Close();
                return;
            }

            //Compute heights
            count = Mathf.Min(8, notifs.Count);
            float totalHeight = 0;
            for (int i = 0; i < count; i++)
                totalHeight += notifs[i].GetHeight(time);

            //Place window
            window.position = GetPosition(totalHeight);

            //Display notifications
            Rect rect = new Rect(0, 0, notifWidth, notifHeight);
            Rect btnRect = new Rect(notifWidth - 70, 20, 60, 16);
            totalHeight = 0;
            Vector2 mp = Event.current.mousePosition;

            for (int i = 0; i < count; i++)
            {
                if (!notifs[i].isDiplaying)
                {
                    notifs[i].isDiplaying = true;
                    notifs[i].displayTime = time;
                }

                //Draw notif
                rect.height = notifs[i].lastHeight;
                EditorGUI.HelpBox(rect, notifs[i].message, notifs[i].type);

                //Close button
                if (GUI.Button(btnRect, "Close"))
                {
                    notifs[i].displayTime = time - notifTime;
                }

                //Main button
                else if (rect.Contains(mp))
                {
                    if (btnRect.Contains(mp))
                        EditorGUI.DrawRect(btnRect, highlightColor);
                    else
                        EditorGUI.DrawRect(rect, highlightColor);
                    if (GUI.Button(rect, "", GUIStyle.none))
                    {
                        notifs[i].displayTime = time - notifTime + 0.5f;
                        Selection.activeObject = notifs[i].link;
                        EditorGUIUtility.PingObject(notifs[i].link);
                    }
                }

                //Adapt rect for next notif
                totalHeight += notifs[i].lastHeight;
                rect.y = totalHeight;
                btnRect.y = totalHeight + 20;
            }

            //Keep refreshing
            Repaint();
        }
    }
}


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/NotificationsPopup.cs.meta
================================================
fileFormatVersion: 2
guid: 57bc0c3cbd28b2b4d8f18c5559cdc8ad
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/PopupButton.cs
================================================
using UnityEngine;

namespace Resemble.GUIEditor
{
    /// <summary> Useful class to make a button that will display a popup window. </summary>
    public class PopupButton
    {
        public GUIContent content;
        public delegate void OnValidate(Rect rect);
        public Vector2 size;
        private Rect rect;

        public PopupButton(string label, string tooltip, Vector2 size)
        {
            this.size = size;
            content = new GUIContent(label, tooltip);
        }

        public void DoLayout(OnValidate onValidate)
        {
            if (GUILayout.Button(content))
                onValidate.Invoke(rect);
            if (Event.current.type == EventType.Repaint)
                SetRect(GUILayoutUtility.GetLastRect());
        }

        private void SetRect(Rect rect)
        {
            this.rect = GUIUtility.GUIToScreenRect(rect).Offset(-size.x + rect.width, 18, 0, 0);
            this.rect.size = size;
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/PopupButton.cs.meta
================================================
fileFormatVersion: 2
guid: 0104c57ea6c1b334c8ea03766b733cf2
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/StringPopup.cs
================================================
using UnityEngine;
using UnityEditor;

namespace Resemble.GUIEditor
{
    public class StringPopup : EditorWindow
    {
        //GUI
        private static StringPopup window;

        //Others
        private static string value;
        private static string fieldTitle;
        private static ValidateCallback callback;
        public delegate void ValidateCallback(string value);

        public static void Show(Rect rect, string title, string value, ValidateCallback callback)
        {
            //Close window if already open
            if (window != null)
            {
                Hide();
                return;
            }

            //Open window
            StringPopup.value = value;
            StringPopup.fieldTitle = title;
            StringPopup.callback = callback;
            window = CreateInstance<StringPopup>();
            window.ShowPopup();
            window.minSize = new Vector2(100, 70);
            rect.height = 70;
            window.titleContent = new GUIContent("StringFieldPopup");
            window.position = rect;
        }

        public static void Show(Rect rect, string title, ValidateCallback callback)
        {
            Show(rect, title, "", callback);
        }

        private void OnGUI()
        {
            GUILayout.BeginVertical(GUI.skin.window);
            DrawHeader();
            DrawContent();
            GUILayout.EndVertical();
        }

        private void OnLostFocus()
        {
            Hide();
        }

        public static void Hide()
        {
            if (window != null)
            {
                window.Close();
                window = null;
            }
        }

        private void DrawHeader()
        {
            GUILayout.Space(-19);
            GUILayout.BeginHorizontal(EditorStyles.toolbar);
            GUILayout.Label(fieldTitle);
            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        private void DrawContent()
        {
            value = GUILayout.TextField(value);
            GUILayout.BeginHorizontal();
            GUILayout.FlexibleSpace();
            if (GUILayout.Button("Cancel"))
            {
                Close();
            }
            if (GUILayout.Button("Confirm"))
            {
                callback.Invoke(value);
                Close();
            }
            GUILayout.EndHorizontal();     
        }
    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/StringPopup.cs.meta
================================================
fileFormatVersion: 2
guid: 4e2344511fd4cad4889055ff6a17a57c
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/TagPopup.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using Resemble;

namespace Resemble.GUIEditor
{
    public class TagPopup : EditorWindow
    {

        private static bool releaseFocusOnclose;
        private static Tag tag;

        private static Utils.ButtonState[] btns;

        public static void Show(Vector2 pos, Tag tag, bool fromResembleWindow)
        {
            TagPopup window = ScriptableObject.CreateInstance<TagPopup>();

            switch (tag.type)
            {
                case Tag.Type.Wait:
                    window.position = new Rect(pos.x, pos.y, 250, 88);
                    break;
                case Tag.Type.Emotion:
                    window.position = new Rect(pos.x, pos.y, 150, 132);
                    break;
            }

            window.ShowPopup();
            releaseFocusOnclose = fromResembleWindow;
            TagPopup.tag = tag;
            btns = new Utils.ButtonState[(int)Emotion.COUNT];
        }

        void OnGUI()
        {
            GUI.Box(new Rect(0, 0, Screen.width, Screen.height), "", GUI.skin.window);
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 16).Offset(2, 2, -4, -4);

            switch (tag.type)
            {
                case Tag.Type.Wait:
                    GUI.Label(rect, "Break", EditorStyles.toolbar);
                    GUILayout.Space(8);

                    GUILayout.BeginHorizontal();
                    GUILayout.Label("Duration :");
                    tag.duration = EditorGUILayout.FloatField(tag.duration);
                    GUILayout.EndHorizontal();

                    float temp = GUILayout.HorizontalSlider(tag.duration, 0.01f, 5.0f);
                    if (temp != tag.duration)
                    {
                        tag.duration = temp;
                        GUI.FocusControl("None");
                    }
                    tag.duration = Mathf.Clamp(tag.duration, 0.01f, 5.0f);

                    GUILayout.Space(16);
                    if (GUILayout.Button("Close"))
                        Close();
                    break;
                case Tag.Type.Emotion:
                    GUI.Label(rect, "Emotion", EditorStyles.toolbar);
                    GUILayout.Space(8);

                    for (int i = 1; i < btns.Length; i++)
                    {
                        Emotion em = (Emotion)i;
                        if (GUILayout.Button(em.ToString()))
                        {
                            tag.emotion = em;
                            tag.color = em.Color();
                            Close();
                        }
                    }
                    break;
            }
            Repaint();
        }

        public void OnLostFocus()
        {
            Close();
        }

        public new void Close()
        {
            base.Close();
            if (releaseFocusOnclose)
                Resemble_Window.Open();
        }

    }
}

================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/TagPopup.cs.meta
================================================
fileFormatVersion: 2
guid: 26f63d610687aa640b158a66d884be2d
MonoImporter:
  externalObjects: {}
  serializedVersion: 2
  defaultReferences: []
  executionOrder: 0
  icon: {instanceID: 0}
  userData: 
  assetBundleName: 
  assetBundleVariant: 


================================================
FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/VoicePopup.cs
================================================
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;
using UnityEditor.IMGUI.Controls;
using Resemble.Structs;

namespace Resemble.GUIEditor
{
    public class VoicePopup : EditorWindow
    {
        //GUI
        private static VoicePopup window;
        private static Vector2 scroll;

        //Search
        private string search;
        private SearchField searchField;

        //Others
        private static ValidateCallback callback;
        private static Voice[] voices;
        public delegate void ValidateCallback(Voice voice);

        public static void Show(Rect rect, ValidateCallback callback)
        {
            //Close window if already open
            if (window != null)
            {
                window.Close();
                return;
            }

            //Open window
            VoicePopup.callback = callback;
            Settings.OnRefreshVoices += OnRefreshVoices;
            Settings.RefreshVoices();
            voices = Settings.voices;
            window = CreateInstance<VoicePopup>();
            window.ShowPopup();
            window.titleContent = new GUIContent("Voices");
            window.position = rect;
        }

        private static void OnRefreshVoices()
        {
            voices = Settings.voices;
        }

        private void OnGUI()
        {
            GUILayout.BeginVertical(GUI.skin.window);
            DrawHeader();
            DrawContent();
            GUILayout.EndVertical();
        }

        private void OnLostFocus()
        {
            Close();
        }

        private new void Close()
        {
            window = null;
            Settings.OnRefreshVoices -= OnRefreshVoices;
            base.Close();
        }

        private void DrawHeader()
        {
            GUILayout.Space(-19);
            GUILayout.BeginHorizontal(EditorStyles.toolbar);

            //search bar
            if (searchField == null)
                searchField = new SearchField();
            Rect rect = GUILayoutUtility.GetRect(Screen.width, 16).Offset(5, 2, -13, 0);
            search = searchField.OnToolbarGUI(rect, search);

            GUILayout.FlexibleSpace();
            GUILayout.EndHorizontal();
        }

        private void DrawContent()
        {
            scroll = GUILayout.BeginScrollView(scroll, false, true);

            for (int i = 0; i < voices.Length; i++)
                DrawVoice(voices[i]);

            GUILayout.EndScrollView();
        }

        /// <summary> Draw an asset and its children. </summary>
        private void DrawVoice(Voice voice)
        {
            //Apply search filter
            if (!string.IsNullOrEmpty(search) && !voice.name.Contains(search))
                return;

            //Draw button
            if (GU
Download .txt
gitextract_qga2v5u8/

├── .gitignore
├── Assets/
│   ├── Plugins/
│   │   ├── Resemble/
│   │   │   ├── Assets/
│   │   │   │   ├── AudioClip Icon.psd
│   │   │   │   ├── AudioClip Icon.psd.meta
│   │   │   │   ├── BoxBloc.shader
│   │   │   │   ├── BoxBloc.shader.meta
│   │   │   │   ├── Break.png.meta
│   │   │   │   ├── Doc/
│   │   │   │   │   ├── AddEmotion.png.meta
│   │   │   │   │   ├── BindProject.png.meta
│   │   │   │   │   ├── CreateResembleSpeech.png.meta
│   │   │   │   │   ├── MakeAClip.png.meta
│   │   │   │   │   ├── OneShots.png.meta
│   │   │   │   │   ├── Path_Abs.png.meta
│   │   │   │   │   ├── Path_AbsSub.png.meta
│   │   │   │   │   ├── Path_Mir.png.meta
│   │   │   │   │   ├── Path_MirSub.png.meta
│   │   │   │   │   ├── Path_Rel.png.meta
│   │   │   │   │   ├── Path_RelSub.png.meta
│   │   │   │   │   ├── SetupProject.png.meta
│   │   │   │   │   └── Userdata.png.meta
│   │   │   │   ├── Doc.meta
│   │   │   │   ├── ExternalLink.psd
│   │   │   │   ├── ExternalLink.psd.meta
│   │   │   │   ├── Helvetica.ttf.meta
│   │   │   │   ├── Icon.psd
│   │   │   │   ├── Icon.psd.meta
│   │   │   │   ├── Loading.png.meta
│   │   │   │   ├── Loading.shader
│   │   │   │   ├── Loading.shader.meta
│   │   │   │   ├── PhonemesTable.psd
│   │   │   │   ├── PhonemesTable.psd.meta
│   │   │   │   ├── Pod.psd
│   │   │   │   ├── Pod.psd.meta
│   │   │   │   ├── ProcessAudioclip
│   │   │   │   ├── ProcessAudioclip.meta
│   │   │   │   ├── TextBloc.shader
│   │   │   │   ├── TextBloc.shader.meta
│   │   │   │   └── logo.png.meta
│   │   │   ├── Assets.meta
│   │   │   ├── Editor/
│   │   │   │   ├── API/
│   │   │   │   │   ├── APIBridge.cs
│   │   │   │   │   ├── APIBridge.cs.meta
│   │   │   │   │   ├── Task.cs
│   │   │   │   │   └── Task.cs.meta
│   │   │   │   ├── API.meta
│   │   │   │   ├── AudioPreview.cs
│   │   │   │   ├── AudioPreview.cs.meta
│   │   │   │   ├── ClipExtend.cs
│   │   │   │   ├── ClipExtend.cs.meta
│   │   │   │   ├── GUI/
│   │   │   │   │   ├── CustomEditors/
│   │   │   │   │   │   ├── Clip_Editor.cs
│   │   │   │   │   │   ├── Clip_Editor.cs.meta
│   │   │   │   │   │   ├── Phonemes_Editor.cs
│   │   │   │   │   │   ├── Phonemes_Editor.cs.meta
│   │   │   │   │   │   ├── Speech_Editor.cs
│   │   │   │   │   │   ├── Speech_Editor.cs.meta
│   │   │   │   │   │   ├── Text_Editor.cs
│   │   │   │   │   │   └── Text_Editor.cs.meta
│   │   │   │   │   ├── CustomEditors.meta
│   │   │   │   │   ├── Popups/
│   │   │   │   │   │   ├── ClipPopup.cs
│   │   │   │   │   │   ├── ClipPopup.cs.meta
│   │   │   │   │   │   ├── DeletePopup.cs
│   │   │   │   │   │   ├── DeletePopup.cs.meta
│   │   │   │   │   │   ├── ImportPopup.cs
│   │   │   │   │   │   ├── ImportPopup.cs.meta
│   │   │   │   │   │   ├── NotificationsPopup.cs
│   │   │   │   │   │   ├── NotificationsPopup.cs.meta
│   │   │   │   │   │   ├── PopupButton.cs
│   │   │   │   │   │   ├── PopupButton.cs.meta
│   │   │   │   │   │   ├── StringPopup.cs
│   │   │   │   │   │   ├── StringPopup.cs.meta
│   │   │   │   │   │   ├── TagPopup.cs
│   │   │   │   │   │   ├── TagPopup.cs.meta
│   │   │   │   │   │   ├── VoicePopup.cs
│   │   │   │   │   │   └── VoicePopup.cs.meta
│   │   │   │   │   ├── Popups.meta
│   │   │   │   │   ├── Settings/
│   │   │   │   │   │   ├── Settings_Help.cs
│   │   │   │   │   │   ├── Settings_Help.cs.meta
│   │   │   │   │   │   ├── Settings_Options.cs
│   │   │   │   │   │   ├── Settings_Options.cs.meta
│   │   │   │   │   │   ├── Settings_Project.cs
│   │   │   │   │   │   ├── Settings_Project.cs.meta
│   │   │   │   │   │   ├── Settings_Window.cs
│   │   │   │   │   │   ├── Settings_Window.cs.meta
│   │   │   │   │   │   ├── WelcomePopup.cs
│   │   │   │   │   │   └── WelcomePopup.cs.meta
│   │   │   │   │   ├── Settings.meta
│   │   │   │   │   ├── Utils/
│   │   │   │   │   │   ├── AsyncRequest.cs
│   │   │   │   │   │   ├── AsyncRequest.cs.meta
│   │   │   │   │   │   ├── Callbacks.cs
│   │   │   │   │   │   ├── Callbacks.cs.meta
│   │   │   │   │   │   ├── Dropdown.cs
│   │   │   │   │   │   ├── Dropdown.cs.meta
│   │   │   │   │   │   ├── EditorProgressBar.cs
│   │   │   │   │   │   ├── EditorProgressBar.cs.meta
│   │   │   │   │   │   ├── TextExtend.cs
│   │   │   │   │   │   ├── TextExtend.cs.meta
│   │   │   │   │   │   ├── Updates.cs
│   │   │   │   │   │   ├── Updates.cs.meta
│   │   │   │   │   │   ├── Utils.cs
│   │   │   │   │   │   └── Utils.cs.meta
│   │   │   │   │   ├── Utils.meta
│   │   │   │   │   ├── Window/
│   │   │   │   │   │   ├── OneShot_Window.cs
│   │   │   │   │   │   ├── OneShot_Window.cs.meta
│   │   │   │   │   │   ├── Pool_Window.cs
│   │   │   │   │   │   ├── Pool_Window.cs.meta
│   │   │   │   │   │   ├── Resemble_Window.cs
│   │   │   │   │   │   └── Resemble_Window.cs.meta
│   │   │   │   │   └── Window.meta
│   │   │   │   ├── GUI.meta
│   │   │   │   ├── Plugin Resources/
│   │   │   │   │   ├── Resources.asset
│   │   │   │   │   ├── Resources.asset.meta
│   │   │   │   │   ├── Resources.cs
│   │   │   │   │   ├── Resources.cs.meta
│   │   │   │   │   ├── Settings.asset
│   │   │   │   │   ├── Settings.asset.meta
│   │   │   │   │   ├── Settings.cs
│   │   │   │   │   ├── Settings.cs.meta
│   │   │   │   │   ├── Styles.cs
│   │   │   │   │   ├── Styles.cs.meta
│   │   │   │   │   ├── WebPage.cs
│   │   │   │   │   └── WebPage.cs.meta
│   │   │   │   ├── Plugin Resources.meta
│   │   │   │   ├── Serializables/
│   │   │   │   │   ├── ClipPatch.cs
│   │   │   │   │   ├── ClipPatch.cs.meta
│   │   │   │   │   ├── ClipStatus.cs
│   │   │   │   │   ├── ClipStatus.cs.meta
│   │   │   │   │   ├── CreateClipRequest.cs
│   │   │   │   │   ├── CreateClipRequest.cs.meta
│   │   │   │   │   ├── CreateClipResponse.cs
│   │   │   │   │   ├── CreateClipResponse.cs.meta
│   │   │   │   │   ├── Error.cs
│   │   │   │   │   ├── Error.cs.meta
│   │   │   │   │   ├── GetClipResponse.cs
│   │   │   │   │   ├── GetClipResponse.cs.meta
│   │   │   │   │   ├── Project.cs
│   │   │   │   │   ├── Project.cs.meta
│   │   │   │   │   ├── ProjectStatus.cs
│   │   │   │   │   ├── ProjectStatus.cs.meta
│   │   │   │   │   ├── ResembleClip.cs
│   │   │   │   │   ├── ResembleClip.cs.meta
│   │   │   │   │   ├── Voice.cs
│   │   │   │   │   └── Voice.cs.meta
│   │   │   │   └── Serializables.meta
│   │   │   ├── Editor.meta
│   │   │   ├── Examples/
│   │   │   │   ├── Phonemes/
│   │   │   │   │   ├── Animations/
│   │   │   │   │   │   ├── Talking.controller
│   │   │   │   │   │   ├── Talking.controller.meta
│   │   │   │   │   │   ├── xbot@Talking.fbx
│   │   │   │   │   │   └── xbot@Talking.fbx.meta
│   │   │   │   │   ├── Animations.meta
│   │   │   │   │   ├── Audio/
│   │   │   │   │   │   ├── BlendShape/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── BlendShape.meta
│   │   │   │   │   │   ├── Example_BlendShape/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── Example_BlendShape.asset
│   │   │   │   │   │   ├── Example_BlendShape.asset.meta
│   │   │   │   │   │   ├── Example_BlendShape.meta
│   │   │   │   │   │   ├── Example_Shader/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   ├── Example_Shader.asset
│   │   │   │   │   │   ├── Example_Shader.asset.meta
│   │   │   │   │   │   ├── Example_Shader.meta
│   │   │   │   │   │   ├── Shader/
│   │   │   │   │   │   │   └── Hey buddy.wav.meta
│   │   │   │   │   │   └── Shader.meta
│   │   │   │   │   ├── Audio.meta
│   │   │   │   │   ├── Materials/
│   │   │   │   │   │   ├── Ground _Shader.mat
│   │   │   │   │   │   ├── Ground _Shader.mat.meta
│   │   │   │   │   │   ├── Ground_BlendShapes.mat
│   │   │   │   │   │   ├── Ground_BlendShapes.mat.meta
│   │   │   │   │   │   ├── Terraformer/
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Glass.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Backpack_Glass.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Eyes.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Eyes.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Hair.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Hair.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Face.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Face.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Glass.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Helmet_Glass.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Skin.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Skin.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Suit.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Suit.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Suit_Beeswax.mat
│   │   │   │   │   │   │   ├── Terraformer_A_Suit_Beeswax.mat.meta
│   │   │   │   │   │   │   ├── Terraformer_A_Teeth.mat
│   │   │   │   │   │   │   └── Terraformer_A_Teeth.mat.meta
│   │   │   │   │   │   └── Terraformer.meta
│   │   │   │   │   ├── Materials.meta
│   │   │   │   │   ├── Miscs/
│   │   │   │   │   │   ├── PhonemeExample_PP.asset
│   │   │   │   │   │   └── PhonemeExample_PP.asset.meta
│   │   │   │   │   ├── Miscs.meta
│   │   │   │   │   ├── Models/
│   │   │   │   │   │   ├── Terraformer_Blendshapes.fbx
│   │   │   │   │   │   ├── Terraformer_Blendshapes.fbx.meta
│   │   │   │   │   │   ├── Terraformer_Shader.fbx
│   │   │   │   │   │   └── Terraformer_Shader.fbx.meta
│   │   │   │   │   ├── Models.meta
│   │   │   │   │   ├── Scenes/
│   │   │   │   │   │   ├── ResembleExample_Blendshapes.unity
│   │   │   │   │   │   ├── ResembleExample_Blendshapes.unity.meta
│   │   │   │   │   │   ├── ResembleExample_Shader.unity
│   │   │   │   │   │   └── ResembleExample_Shader.unity.meta
│   │   │   │   │   ├── Scenes.meta
│   │   │   │   │   ├── Scripts/
│   │   │   │   │   │   ├── CameraOrbit.cs
│   │   │   │   │   │   ├── CameraOrbit.cs.meta
│   │   │   │   │   │   ├── Editor/
│   │   │   │   │   │   │   ├── PhonemeReader_Editor.cs
│   │   │   │   │   │   │   ├── PhonemeReader_Editor.cs.meta
│   │   │   │   │   │   │   ├── PhonemesToBlendShapes_Editor.cs
│   │   │   │   │   │   │   ├── PhonemesToBlendShapes_Editor.cs.meta
│   │   │   │   │   │   │   ├── PhonemesToShader_Editor.cs
│   │   │   │   │   │   │   └── PhonemesToShader_Editor.cs.meta
│   │   │   │   │   │   ├── Editor.meta
│   │   │   │   │   │   ├── EyesFocus.cs
│   │   │   │   │   │   ├── EyesFocus.cs.meta
│   │   │   │   │   │   ├── PhonemeReader.cs
│   │   │   │   │   │   ├── PhonemeReader.cs.meta
│   │   │   │   │   │   ├── PhonemesToBlendShapes.cs
│   │   │   │   │   │   ├── PhonemesToBlendShapes.cs.meta
│   │   │   │   │   │   ├── PhonemesToShader.cs
│   │   │   │   │   │   ├── PhonemesToShader.cs.meta
│   │   │   │   │   │   ├── ProceduralEyes.cs
│   │   │   │   │   │   ├── ProceduralEyes.cs.meta
│   │   │   │   │   │   ├── SpaceToPlay.cs
│   │   │   │   │   │   └── SpaceToPlay.cs.meta
│   │   │   │   │   ├── Scripts.meta
│   │   │   │   │   ├── Shaders/
│   │   │   │   │   │   ├── TerraformerCutout.shader
│   │   │   │   │   │   ├── TerraformerCutout.shader.meta
│   │   │   │   │   │   ├── TerraformerEye.shader
│   │   │   │   │   │   ├── TerraformerEye.shader.meta
│   │   │   │   │   │   ├── TerraformerFace.shader
│   │   │   │   │   │   ├── TerraformerFace.shader.meta
│   │   │   │   │   │   ├── TerraformerOpaque.shader
│   │   │   │   │   │   ├── TerraformerOpaque.shader.meta
│   │   │   │   │   │   ├── TerraformerWax.shader
│   │   │   │   │   │   └── TerraformerWax.shader.meta
│   │   │   │   │   ├── Shaders.meta
│   │   │   │   │   ├── Textures/
│   │   │   │   │   │   ├── GridGround.asset
│   │   │   │   │   │   ├── GridGround.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Body_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Body_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Eye_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Eye_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Hair_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Hair_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Head_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Head_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Emissive.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Emissive.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Helmet_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Albedo.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Albedo.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Mask_map.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Mask_map.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Normal.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Normal.asset.meta
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Thickness.asset
│   │   │   │   │   │   ├── Terraformer_A_Teeth_Thickness.asset.meta
│   │   │   │   │   │   ├── Terraformer_FaceMask.psd
│   │   │   │   │   │   ├── Terraformer_FaceMask.psd.meta
│   │   │   │   │   │   ├── Terraformer_Face_Eyes.psd
│   │   │   │   │   │   ├── Terraformer_Face_Eyes.psd.meta
│   │   │   │   │   │   ├── Terraformer_Faces.psd
│   │   │   │   │   │   ├── Terraformer_Faces.psd.meta
│   │   │   │   │   │   ├── Terraformer_Mouth_AA_UU_AE.psd
│   │   │   │   │   │   ├── Terraformer_Mouth_AA_UU_AE.psd.meta
│   │   │   │   │   │   ├── Terraformer_Mouth_OO_FV_EE_BM.psd
│   │   │   │   │   │   └── Terraformer_Mouth_OO_FV_EE_BM.psd.meta
│   │   │   │   │   └── Textures.meta
│   │   │   │   ├── Phonemes.meta
│   │   │   │   ├── Userdata/
│   │   │   │   │   ├── Audio/
│   │   │   │   │   │   ├── Speech/
│   │   │   │   │   │   │   └── AskForTavern.wav.meta
│   │   │   │   │   │   ├── Speech.asset
│   │   │   │   │   │   ├── Speech.asset.meta
│   │   │   │   │   │   └── Speech.meta
│   │   │   │   │   ├── Audio.meta
│   │   │   │   │   ├── Wheel/
│   │   │   │   │   │   ├── Scenes/
│   │   │   │   │   │   │   ├── ResembleExample_Wheel.unity
│   │   │   │   │   │   │   └── ResembleExample_Wheel.unity.meta
│   │   │   │   │   │   ├── Scenes.meta
│   │   │   │   │   │   ├── Textures/
│   │   │   │   │   │   │   ├── CornerButton.psd
│   │   │   │   │   │   │   ├── CornerButton.psd.meta
│   │   │   │   │   │   │   ├── MidButton.psd
│   │   │   │   │   │   │   ├── MidButton.psd.meta
│   │   │   │   │   │   │   ├── WheelCenter.psd
│   │   │   │   │   │   │   └── WheelCenter.psd.meta
│   │   │   │   │   │   └── Textures.meta
│   │   │   │   │   └── Wheel.meta
│   │   │   │   └── Userdata.meta
│   │   │   ├── Examples.meta
│   │   │   ├── PhonemesTables/
│   │   │   │   ├── APIGraph_Example.asset
│   │   │   │   ├── APIGraph_Example.asset.meta
│   │   │   │   ├── BlendShape_Example.asset
│   │   │   │   ├── BlendShape_Example.asset.meta
│   │   │   │   ├── Shader_Example.asset
│   │   │   │   └── Shader_Example.asset.meta
│   │   │   ├── PhonemesTables.meta
│   │   │   ├── Scripts/
│   │   │   │   ├── Clip.cs
│   │   │   │   ├── Clip.cs.meta
│   │   │   │   ├── Emotion.cs
│   │   │   │   ├── Emotion.cs.meta
│   │   │   │   ├── Label.cs
│   │   │   │   ├── Label.cs.meta
│   │   │   │   ├── PhonemeData.cs
│   │   │   │   ├── PhonemeData.cs.meta
│   │   │   │   ├── PhonemeTables/
│   │   │   │   │   ├── APIGraph.cs
│   │   │   │   │   ├── APIGraph.cs.meta
│   │   │   │   │   ├── Editor/
│   │   │   │   │   │   ├── APIGraph_Editor.cs
│   │   │   │   │   │   └── APIGraph_Editor.cs.meta
│   │   │   │   │   ├── Editor.meta
│   │   │   │   │   ├── PhonemeTable.cs
│   │   │   │   │   ├── PhonemeTable.cs.meta
│   │   │   │   │   ├── SimpleRemap.cs
│   │   │   │   │   ├── SimpleRemap.cs.meta
│   │   │   │   │   ├── iPhonemeTable.cs
│   │   │   │   │   └── iPhonemeTable.cs.meta
│   │   │   │   ├── PhonemeTables.meta
│   │   │   │   ├── Phonemes.cs
│   │   │   │   ├── Phonemes.cs.meta
│   │   │   │   ├── PhonemesTimeStamps.cs
│   │   │   │   ├── PhonemesTimeStamps.cs.meta
│   │   │   │   ├── Speech.cs
│   │   │   │   ├── Speech.cs.meta
│   │   │   │   ├── Tag.cs
│   │   │   │   ├── Tag.cs.meta
│   │   │   │   ├── Text.cs
│   │   │   │   └── Text.cs.meta
│   │   │   └── Scripts.meta
│   │   └── Resemble.meta
│   └── Plugins.meta
├── Output/
│   ├── ResemblePlugin.unitypackage
│   └── Version
├── ProjectSettings/
│   ├── AudioManager.asset
│   ├── ClusterInputManager.asset
│   ├── DynamicsManager.asset
│   ├── EditorBuildSettings.asset
│   ├── EditorSettings.asset
│   ├── GraphicsSettings.asset
│   ├── InputManager.asset
│   ├── NavMeshAreas.asset
│   ├── Physics2DSettings.asset
│   ├── PresetManager.asset
│   ├── ProjectSettings.asset
│   ├── QualitySettings.asset
│   ├── TagManager.asset
│   ├── TimeManager.asset
│   ├── UnityConnectSettings.asset
│   ├── VFXManager.asset
│   └── XRSettings.asset
├── README.md
└── UserSettings/
    └── EditorUserSettings.asset
Download .txt
SYMBOL INDEX (551 symbols across 69 files)

FILE: Assets/Plugins/Resemble/Editor/API/APIBridge.cs
  class APIBridge (line 11) | public static partial class APIBridge
    method GetProjects (line 27) | public static Task GetProjects(Callback.GetProject callback)
    method GetProject (line 37) | public static Task GetProject(string uuid)
    method DeleteProject (line 46) | public static Task DeleteProject(Project project)
    method DeleteClip (line 52) | public static Task DeleteClip(string uuid)
    method DeleteClip (line 58) | public static Task DeleteClip(string uuid, Callback.Simple callback)
    method CreateProject (line 64) | public static Task CreateProject(Project project, Callback.CreateProje...
    method CreateClipSync (line 76) | public static Task CreateClipSync(ClipPatch.Data clipData, bool includ...
    method CreateClip (line 94) | public static Task CreateClip(ClipPatch.Data clipData, bool includePho...
    method GetClip (line 112) | public static Task GetClip(string uuid, Callback.GetClip callback)
    method GetClips (line 122) | public static Task GetClips(Callback.GetClips callback)
    method DownloadClip (line 135) | public static Task DownloadClip(string uri, Callback.Download callback)
    method GetVoices (line 140) | public static Task GetVoices(Callback.GetVoices callback)
    method UpdateClip (line 148) | public static Task UpdateClip(string clipUUID, ClipPatch patch, Callba...
    method Update (line 165) | public static void Update()
    method EnqueueTask (line 221) | public static Task EnqueueTask(string uri, Task.Type type, Callback.Si...
    method EnqueueTask (line 227) | public static Task EnqueueTask(string uri, string data, Task.Type type...
    method SendRequest (line 246) | public static void SendRequest(Task task)
    method CompleteAsyncOperation (line 274) | private static void CompleteAsyncOperation(AsyncOperation asyncOp, Uni...

FILE: Assets/Plugins/Resemble/Editor/API/Task.cs
  class Task (line 8) | [System.Serializable]
    method Task (line 24) | public Task(string uri, string data, Callback.Simple resultProcessor, ...
    method DownloadTask (line 36) | public static Task DownloadTask(string uri, Callback.Download callback)
    method WaitTask (line 51) | public static Task WaitTask()
    type Type (line 60) | public enum Type
    type Status (line 70) | public enum Status

FILE: Assets/Plugins/Resemble/Editor/AudioPreview.cs
  class AudioPreview (line 10) | public class AudioPreview
    method AudioPreview (line 42) | public AudioPreview(string url)
    method OnWavDownloaded (line 49) | private void OnWavDownloaded(AsyncOperation obj)
    method PlayClip (line 56) | public static void PlayClip(AudioClip clip)
    method PlayClip (line 65) | public static void PlayClip(AudioClip clip, int sample)
    method SetClipSamplePosition (line 74) | public static void SetClipSamplePosition(AudioClip clip, int sample)
    method GetClipSamplePosition (line 83) | public static int GetClipSamplePosition(AudioClip clip)
    method StopClip (line 92) | public static void StopClip(AudioClip clip)
    method IsClipPlaying (line 101) | public static bool IsClipPlaying(AudioClip clip)
    method InvokeMethode (line 110) | public static object InvokeMethode(string methodeName, params object[]...

FILE: Assets/Plugins/Resemble/Editor/ClipExtend.cs
  class ClipExtend (line 8) | public static class ClipExtend
    method GetSavePath (line 11) | public static string GetSavePath(this Clip clip)
    method GetSaveFolder (line 16) | public static string GetSaveFolder(this Clip clip)
    method RemoveFilenameFromPath (line 50) | private static string RemoveFilenameFromPath(string path)

FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Clip_Editor.cs
  class Clip_Editor (line 11) | [CustomEditor(typeof(Clip)), CanEditMultipleObjects]
    method OnHeaderGUI (line 31) | protected override void OnHeaderGUI()
    method OnInspectorGUI (line 88) | public override void OnInspectorGUI()
    method DrawTextArea (line 137) | private void DrawTextArea()
    method DrawAudioArea (line 178) | private void DrawAudioArea()
    method DrawPhonemesArea (line 242) | private void DrawPhonemesArea()
    method DrawRawPhonemePreview (line 304) | private void DrawRawPhonemePreview(Rect rect)
    method DrawPhonemePreview (line 339) | private void DrawPhonemePreview(Rect rect, Phonemes phonemes)
    method DrawUserDataArea (line 391) | private void DrawUserDataArea()
    method InitComponents (line 465) | private void InitComponents()
    method OnEnable (line 475) | public void OnEnable()
    method OnDisable (line 490) | public void OnDisable()
    method HandleDeleteEvent (line 498) | private void HandleDeleteEvent()
    method DrawAudioPlayer (line 511) | public void DrawAudioPlayer()
    method UpdateFromAPI (line 614) | public void UpdateFromAPI()
    method ExportClip (line 635) | public void ExportClip()
    method Rename (line 640) | public void Rename()
    method Delete (line 649) | public void Delete()
    method DeleteMultiple (line 660) | public void DeleteMultiple(Object[] targets)
    method Rename (line 691) | public void Rename(string value)
    method SetDirty (line 699) | public new void SetDirty()
    method ReImport (line 704) | public void ReImport()

FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Phonemes_Editor.cs
  class Phonemes_Editor (line 6) | public class Phonemes_Editor : Editor
    method DrawGraph (line 15) | public static void DrawGraph(Phonemes phonemes, ref float time, Callba...

FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Speech_Editor.cs
  class Speech_Editor (line 11) | [CustomEditor(typeof(Speech))]
    method ShouldHideOpenButton (line 26) | protected override bool ShouldHideOpenButton()
    method OnHeaderGUI (line 33) | protected override void OnHeaderGUI()
    method OnInspectorGUI (line 81) | public override void OnInspectorGUI()
    method HidePopups (line 130) | private void HidePopups()
    method DeleteClip (line 138) | private void DeleteClip(bool deleteOnAPI, bool deleteAudioClip)
    method DeleteClip (line 146) | public void DeleteClip(Clip clip, bool deleteOnAPI, bool deleteAudioClip)
    method CreateClip (line 164) | public void CreateClip(string name)
    method RebuildClipList (line 183) | private void RebuildClipList()
    method AddClip (line 192) | public void AddClip(string name, string uuid)
    method ImportClip (line 202) | public void ImportClip(ResembleClip source)
    method AddClipToAsset (line 213) | public void AddClipToAsset(Clip clip)
    method OnEnable (line 229) | private void OnEnable()
    method List_OnSelect (line 244) | private void List_OnSelect(ReorderableList list)
    method List_DrawElement (line 249) | private void List_DrawElement(Rect rect, int index, bool isActive, boo...
    method List_DrawHeader (line 267) | private void List_DrawHeader(Rect rect)
    method DrawSpeechProperties (line 272) | private void DrawSpeechProperties()
    method ExportAllClipsInWav (line 323) | public void ExportAllClipsInWav()

FILE: Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Text_Editor.cs
  class Text_Editor (line 9) | public class Text_Editor
    method Text_Editor (line 99) | public Text_Editor(Text text, Callback editCallback, Callback repaintC...
    method RefreshLines (line 109) | private void RefreshLines()
    method CheckContains (line 114) | private void CheckContains()
    method Refresh (line 122) | public void Refresh()
    method DoLayout (line 140) | public void DoLayout(bool enable, bool fromOneShootWindow)
    method DrawTagsBtnsLayout (line 147) | public void DrawTagsBtnsLayout(bool disabled)
    method DisableIf (line 188) | private Utils.ButtonState DisableIf(bool value, Utils.ButtonState state)
    method DrawTextArea (line 197) | public void DrawTextArea(Rect rect, bool interactable)
    method DrawCharCountBar (line 284) | public void DrawCharCountBar(Rect rect)
    method DrawRects (line 292) | private void DrawRects(Rect[] rects, bool flatStyle, Color color)
    method DrawCarret (line 312) | private void DrawCarret()
    method GetCarretAt (line 331) | private Vector2 GetCarretAt(int index)
    method GetCarretAt (line 339) | private int GetCarretAt(Vector2 position)
    method GetRects (line 347) | private Rect[] GetRects(int startID, int endID, Vector2 offset)
    method WordLenght (line 364) | private int WordLenght(int index, bool back)
    method IsInString (line 381) | private bool IsInString(params int[] ids)
    method GetTagPos (line 394) | private Vector2 GetTagPos(Tag tag)
    method ReceiveKeyEvent (line 411) | private void ReceiveKeyEvent(Event e)
    method ReceiveMouseEvent (line 514) | private void ReceiveMouseEvent(Event e)
    method ShowEditPopupOntag (line 637) | private void ShowEditPopupOntag(Tag tag)
    method ManageFocus (line 642) | private void ManageFocus(Event e)
    method ArrowMove (line 651) | private void ArrowMove(Event e)
    method SelectWordAt (line 728) | private void SelectWordAt(Vector2 position)
    method OnEditText (line 738) | private void OnEditText(int id, int length, bool add)
    method RefreshSelectionRects (line 766) | private void RefreshSelectionRects()
    method RefreshTagsRects (line 774) | private void RefreshTagsRects()
    class LinesPack (line 780) | class LinesPack
      method LinesPack (line 786) | public LinesPack(string[] lines)
      method GetRects (line 800) | public Rect[] GetRects(int start, int end, GUIStyle style, Vector2 o...
      method FromText (line 841) | public static LinesPack FromText(string text, Rect rect, GUIStyle st...
      method LinesFromString (line 846) | private static string[] LinesFromString(string value, Rect rect, GUI...

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ClipPopup.cs
  class ClipPopup (line 10) | public class ClipPopup : EditorWindow
    method Show (line 27) | public static void Show(Rect rect, Speech speech, ValidateCallback cal...
    method OnGUI (line 57) | private void OnGUI()
    method OnLostFocus (line 65) | private void OnLostFocus()
    method Hide (line 70) | public static void Hide()
    method DrawHeader (line 79) | private void DrawHeader()
    method DrawContent (line 94) | private void DrawContent()
    method DrawClip (line 124) | private void DrawClip(ResembleClip clip)

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/DeletePopup.cs
  class DeletePopup (line 6) | public class DeletePopup : EditorWindow
    method Show (line 18) | public static void Show(Rect rect, ValidateCallback callback)
    method OnGUI (line 37) | private void OnGUI()
    method OnLostFocus (line 45) | private void OnLostFocus()
    method Hide (line 50) | public static void Hide()
    method DrawHeader (line 59) | private void DrawHeader()
    method DrawContent (line 68) | private void DrawContent()

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/ImportPopup.cs
  class ImportPopup (line 8) | public class ImportPopup : EditorWindow
    class ImpAsset (line 19) | public class ImpAsset
    method Show (line 28) | public static void Show(ImpAsset[] assets, string path, ValidateCallba...
    method OnGUI (line 40) | private void OnGUI()
    method DrawHeader (line 55) | private void DrawHeader()
    method DrawContent (line 82) | private void DrawContent()
    method DrawFooter (line 92) | private void DrawFooter()
    method DrawAsset (line 112) | private void DrawAsset(ImpAsset asset)
    method SetFullCheck (line 131) | public static void SetFullCheck(bool value)
    method SetFullCheck (line 139) | private static void SetFullCheck(ImpAsset asset, bool value)
    method RefreshAllCheck (line 150) | public static void RefreshAllCheck()
    method IsFullCheck (line 164) | private static AllCheckState IsFullCheck(ImpAsset asset)
    type AllCheckState (line 181) | private enum AllCheckState
    method Blend (line 188) | private static AllCheckState Blend(AllCheckState a, AllCheckState b)

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/NotificationsPopup.cs
  class NotificationsPopup (line 7) | public class NotificationsPopup : EditorWindow
    class Notification (line 20) | [System.Serializable]
      method Notification (line 30) | public Notification(string message, MessageType type, Object link)
      method GetHeight (line 39) | public float GetHeight(double time)
    method Add (line 63) | public static void Add(string message, MessageType type, Object linked...
    method CheckDisponibility (line 74) | private static void CheckDisponibility()
    method GetPosition (line 84) | private static Rect GetPosition(float height)
    method Show (line 90) | private new static void Show()
    method OnGUI (line 98) | private void OnGUI()

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/PopupButton.cs
  class PopupButton (line 6) | public class PopupButton
    method PopupButton (line 13) | public PopupButton(string label, string tooltip, Vector2 size)
    method DoLayout (line 19) | public void DoLayout(OnValidate onValidate)
    method SetRect (line 27) | private void SetRect(Rect rect)

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/StringPopup.cs
  class StringPopup (line 6) | public class StringPopup : EditorWindow
    method Show (line 17) | public static void Show(Rect rect, string title, string value, Validat...
    method Show (line 38) | public static void Show(Rect rect, string title, ValidateCallback call...
    method OnGUI (line 43) | private void OnGUI()
    method OnLostFocus (line 51) | private void OnLostFocus()
    method Hide (line 56) | public static void Hide()
    method DrawHeader (line 65) | private void DrawHeader()
    method DrawContent (line 74) | private void DrawContent()

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/TagPopup.cs
  class TagPopup (line 9) | public class TagPopup : EditorWindow
    method Show (line 17) | public static void Show(Vector2 pos, Tag tag, bool fromResembleWindow)
    method OnGUI (line 37) | void OnGUI()
    method OnLostFocus (line 84) | public void OnLostFocus()
    method Close (line 89) | public new void Close()

FILE: Assets/Plugins/Resemble/Editor/GUI/Popups/VoicePopup.cs
  class VoicePopup (line 10) | public class VoicePopup : EditorWindow
    method Show (line 25) | public static void Show(Rect rect, ValidateCallback callback)
    method OnRefreshVoices (line 45) | private static void OnRefreshVoices()
    method OnGUI (line 50) | private void OnGUI()
    method OnLostFocus (line 58) | private void OnLostFocus()
    method Close (line 63) | private new void Close()
    method DrawHeader (line 70) | private void DrawHeader()
    method DrawContent (line 85) | private void DrawContent()
    method DrawVoice (line 96) | private void DrawVoice(Voice voice)

FILE: Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Help.cs
  class RessembleSettingsProvider (line 7) | public partial class RessembleSettingsProvider
    method DrawHelpSettingsGUI (line 149) | private void DrawHelpSettingsGUI()
    type TextItem (line 156) | private struct TextItem
      method Text (line 165) | public static TextItem Text(string label)
      method Header (line 168) | public static TextItem Header(string label)
      method Title (line 171) | public static TextItem Title(string label)
      method Link (line 174) | public static TextItem Link(string label, WebPage page)
      method Link (line 177) | public static TextItem Link(string label, int headerID, bool indent)
      method Image (line 180) | public static TextItem Image(int id)
      method Space (line 183) | public static TextItem Space(int size)
      method Separator (line 186) | public static TextItem Separator()
      method Quote (line 189) | public static TextItem Quote(string label)
      method Code (line 192) | public static TextItem Code(string label, float size)
      method Draw (line 196) | public void Draw(float width)
    type Type (line 250) | private enum Type
    method DrawHelpFooterGUI (line 263) | private void DrawHelpFooterGUI()

FILE: Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Options.cs
  class RessembleSettingsProvider (line 7) | public partial class RessembleSettingsProvider
    method DrawOptionsSettingsGUI (line 15) | private void DrawOptionsSettingsGUI()
    method FolderField (line 100) | private string FolderField(string label, string path)
    method DrawOptionsFooterGUI (line 131) | private void DrawOptionsFooterGUI(){}

FILE: Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Project.cs
  class RessembleSettingsProvider (line 8) | public partial class RessembleSettingsProvider
    method DrawProjectSettingsGUI (line 12) | private void DrawProjectSettingsGUI()
    method DrawProjectFooterGUI (line 53) | private void DrawProjectFooterGUI()
    method DrawConnectGUI (line 63) | public void DrawConnectGUI()
    method DrawProjectsSearchBar (line 101) | public Rect DrawProjectsSearchBar()
    method DrawProjectList (line 128) | private void DrawProjectList(Rect areaRect)
    method DrawProjectArea (line 192) | private void DrawProjectArea(Project project)

FILE: Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Window.cs
  class RessembleSettingsProvider (line 12) | public partial class RessembleSettingsProvider : SettingsProvider
    method OnActivate (line 32) | public override void OnActivate(string searchContext, VisualElement ro...
    method OnGUI (line 41) | public override void OnGUI(string searchContext)
    method DrawToolbar (line 102) | private void DrawToolbar()
    class ContentStyles (line 108) | class ContentStyles
    method RessembleSettingsProvider (line 114) | public RessembleSettingsProvider(string path, SettingsScope scope = Se...
    method CreateResembleSettingsProvider (line 117) | [SettingsProvider]

FILE: Assets/Plugins/Resemble/Editor/GUI/Settings/WelcomePopup.cs
  class WelcomePopup (line 7) | public class WelcomePopup
    method Load (line 11) | [InitializeOnLoadMethod]
    method WaitSomeUpdate (line 18) | private static void WaitSomeUpdate()

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/AsyncRequest.cs
  class AsyncRequest (line 9) | [System.Serializable]
    method Make (line 93) | public static AsyncRequest Make(Clip clip)
    method Make (line 181) | public static AsyncRequest Make(string body, string voice, string save...
    method Make (line 211) | public static AsyncRequest Make(string url, string savePath)
    method Get (line 238) | public static AsyncRequest Get(string clipUUID)
    method Cancel (line 251) | public static void Cancel(string clipUUID)
    method RegisterRequestToPool (line 265) | private static void RegisterRequestToPool(AsyncRequest request)
    method RegisterRefreshEvent (line 276) | [InitializeOnLoadMethod]
    method DisposeRefreshEvent (line 285) | private static void DisposeRefreshEvent()
    method ExecutePoolRequests (line 291) | private static void ExecutePoolRequests()
    method ExecuteRequest (line 338) | private static void ExecuteRequest(double time, AsyncRequest request)
    method DownloadClip (line 383) | private static void DownloadClip(AsyncRequest request, string url)
    method OnDownloaded (line 390) | private static void OnDownloaded(AsyncRequest request, byte[] data, Er...
    method GetTemporaryName (line 436) | private static string GetTemporaryName()
    method GeneratePlaceHolder (line 442) | public AudioClip GeneratePlaceHolder()
    method SetError (line 459) | public void SetError(Error error)
    type Status (line 469) | public enum Status

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/Callbacks.cs
  class Callback (line 6) | public static class Callback

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/Dropdown.cs
  type Dropdown (line 9) | public struct Dropdown
    type Item (line 12) | public struct Item
      method Item (line 20) | public Item(string label, GenericMenu.MenuFunction methode)
      method Item (line 29) | public Item(string label, bool enable, GenericMenu.MenuFunction meth...
      method Item (line 39) | public Item(string label, bool enable, bool check, GenericMenu.MenuF...
      method Item (line 48) | public Item(string label)
    method DoLayout (line 59) | public void DoLayout(GUIContent title, params Item[] methodes)
    method DropDown (line 67) | public void DropDown(Item[] methodes)

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/EditorProgressBar.cs
  class EditorProgressBar (line 8) | public static class EditorProgressBar
    method EditorProgressBar (line 12) | static EditorProgressBar()
    method Display (line 22) | public static void Display(string text, float progress)
    method Clear (line 28) | public static void Clear()

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/TextExtend.cs
  class TextExtend (line 9) | public static class TextExtend
    method TypeChar (line 15) | public static void TypeChar(this Text text, char c)
    method RemoveChars (line 28) | public static void RemoveChars(this Text text, int count)
    method SelectAll (line 52) | public static void SelectAll(this Text text)
    method Copy (line 58) | public static void Copy(this Text text)
    method Cut (line 65) | public static void Cut(this Text text)
    method Paste (line 74) | public static void Paste(this Text text)
    method Delete (line 84) | public static void Delete(this Text text)
    method SelectionContains (line 97) | public static bool SelectionContains(this Text text, int id)
    method GetTag (line 107) | public static Tag GetTag(this Text text)
    method GetTags (line 135) | public static List<Tag> GetTags(this Text text)
    method AddTag (line 162) | public static Tag AddTag(this Text text)
    method AddBreak (line 186) | public static Tag AddBreak(this Text text)
    method RemoveTag (line 206) | public static void RemoveTag(this Text text)
    method RemoveTag (line 236) | public static void RemoveTag(this Text text, Tag tag)
    method ClearTags (line 245) | public static void ClearTags(this Text text)
    method AddChars (line 256) | private static void AddChars(Text text, int id, string value)
    method RemoveChars (line 282) | private static void RemoveChars(Text text, int id, int length)
    method CleanString (line 304) | private static string CleanString(string target, params string[] items...
    method Order (line 312) | private static int Order(ref int a, ref int b)
    method GetIDs (line 322) | private static void GetIDs(this Text text, out int min, out int max, o...
    method SetIDs (line 330) | private static void SetIDs(this Text text, int id)
    method SetIDs (line 337) | private static void SetIDs(this Text text, int id, int length)

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/Updates.cs
  class Updates (line 13) | public static class Updates
    type Status (line 22) | public enum Status
    method CheckStatus (line 31) | public static void CheckStatus()
    method Update (line 65) | public static void Update()
    method GetLatestPluginVersion (line 70) | public static void GetLatestPluginVersion()
    method GetSHAKey (line 93) | private static void GetSHAKey()
    method DownloadLastPackage (line 114) | private static void DownloadLastPackage(string shaKey)
    method OpenFile (line 142) | private static void OpenFile(string path)
    method DownloadCallback (line 148) | private static void DownloadCallback()
    type GithubDirectoryInfos (line 166) | [Serializable]
    type GithubFileInfos (line 173) | [Serializable]
    type GithubFile (line 194) | [Serializable]

FILE: Assets/Plugins/Resemble/Editor/GUI/Utils/Utils.cs
  class Utils (line 8) | public static class Utils
    method DrawPendingLabel (line 10) | public static void DrawPendingLabel(string label)
    method DrawErrorBox (line 32) | public static void DrawErrorBox(this Error error, string message = null)
    method DrawLinkLabel (line 48) | public static bool DrawLinkLabel(string label, string linkLabel, GUISt...
    method DrawLinkLabel (line 53) | public static bool DrawLinkLabel(string label, GUIContent linkLabel, G...
    method DrawLinkLabel (line 58) | public static bool DrawLinkLabel(GUIContent label, GUIContent linkLabe...
    method DrawSeparator (line 70) | public static void DrawSeparator()
    method FlatBox (line 78) | public static void FlatBox(Rect rect, Color headerColor, Color backCol...
    method FlatRect (line 91) | public static void FlatRect(Rect rect, Color color, float roundness, f...
    method FlatButton (line 101) | public static bool FlatButton(Rect rect, string label, Color color, fl...
    method FlatButton (line 107) | public static bool FlatButton(Rect rect, GUIContent content, Color col...
    method FlatButton (line 113) | public static bool FlatButton(Rect rect, GUIContent content, Color col...
    method FlatButton (line 121) | public static bool FlatButton(Rect rect, GUIContent content, Color col...
    method FlatButton (line 173) | public static bool FlatButton(Rect rect, string label, Color color)
    method FlatButton (line 179) | public static bool FlatButton(GUIContent label, Color color)
    method FlatButtonLayout (line 186) | public static bool FlatButtonLayout(string label, Color color, float r...
    method FlatButtonLayout (line 191) | public static bool FlatButtonLayout(GUIContent content, Color color, r...
    method FlatButtonLayout (line 197) | public static bool FlatButtonLayout(Texture2D texture, Color color, fl...
    method FlatButtonLayout (line 208) | public static bool FlatButtonLayout(GUIContent content, Color color, f...
    method DragArea (line 217) | public static void DragArea(Rect rect, Object dragAsset)
    method ConnectionRequireMessage (line 259) | public static void ConnectionRequireMessage()
    method BoxWithLink (line 270) | public static bool BoxWithLink(string message, string linkLabel, Messa...
    method BoxWithLink (line 280) | public static void BoxWithLink(string message, string linkLabel, WebPa...
    method Shrink (line 291) | public static Rect Shrink(this Rect rect, float size)
    method Offset (line 297) | public static Rect Offset(this Rect rect, float x, float y, float widt...
    method Drop (line 303) | public static Rect Drop(this Rect rect)
    method OpenProjectInBrowser (line 309) | public static void OpenProjectInBrowser(string projectID)
    method LocalPath (line 314) | public static string LocalPath(string absolutePath)
    method LocalPath (line 322) | public static bool LocalPath(ref string path)
    method Alpha (line 330) | public static Color Alpha(this Color color, float alpha)
    method FindPreviousIndex (line 336) | public static int FindPreviousIndex(float value, float[] array)
    type ButtonState (line 358) | public enum ButtonState

FILE: Assets/Plugins/Resemble/Editor/GUI/Window/OneShot_Window.cs
  class Resemble_Window (line 8) | public partial class Resemble_Window
    method EnableOneShot (line 80) | private static void EnableOneShot()
    method DrawOneShotGUI (line 85) | public void DrawOneShotGUI()
    method DrawVoiceField (line 146) | private void DrawVoiceField()
    method SaveClipFile (line 160) | private void SaveClipFile()
    method SaveAsCharacterPod (line 178) | private void SaveAsCharacterPod()
    method Generate (line 199) | private void Generate()
    method Clear (line 213) | private void Clear()
    method ClearTags (line 219) | private void ClearTags()
    method CopyClipBody (line 224) | private void CopyClipBody()
    method SetDirty (line 229) | public new void SetDirty()
    method GetClipCallback (line 235) | private void GetClipCallback(string audioUri, Error error)
    method GetAllPodsCallback (line 246) | private void GetAllPodsCallback(ResembleClip[] pods, Error error)
    method CreateProjectCallback (line 257) | private void CreateProjectCallback(ProjectStatus status, Error error)

FILE: Assets/Plugins/Resemble/Editor/GUI/Window/Pool_Window.cs
  class Resemble_Window (line 8) | public partial class Resemble_Window
    method DrawPoolGUI (line 22) | public static void DrawPoolGUI()
    method EnablePool (line 46) | private static void EnablePool()
    method RefreshPoolList (line 52) | public static void RefreshPoolList()
    method DrawRequestGUI (line 59) | private static void DrawRequestGUI(AsyncRequest request)

FILE: Assets/Plugins/Resemble/Editor/GUI/Window/Resemble_Window.cs
  class Resemble_Window (line 10) | public partial class Resemble_Window : EditorWindow
    method Open (line 52) | [MenuItem("Window/Audio/Resemble")]
    method Open (line 62) | public static void Open(Tab tab)
    method OnEnable (line 70) | private void OnEnable()
    method OnGUI (line 84) | void OnGUI()
    method OnEditCallback (line 109) | public void OnEditCallback()
    method OnRepaintCallback (line 114) | public void OnRepaintCallback()
    method OnResize (line 120) | private void OnResize()
    method DrawToolbar (line 127) | private void DrawToolbar()
    type Tab (line 152) | public enum Tab

FILE: Assets/Plugins/Resemble/Editor/Plugin Resources/Resources.cs
  class Resources (line 8) | public class Resources : ScriptableObject

FILE: Assets/Plugins/Resemble/Editor/Plugin Resources/Settings.cs
  class Settings (line 10) | public class Settings : ScriptableObject
    type SettingBool (line 29) | public struct SettingBool
      type Type (line 35) | public enum Type
      method SettingBool (line 43) | public SettingBool(bool defaultValue, string key)
      method Load (line 50) | private void Load()
      method Save (line 56) | private void Save()
      method Get (line 62) | public bool Get()
      method Set (line 69) | public void Set(object value)
    type SettingInt (line 78) | public struct SettingInt
      type Type (line 84) | public enum Type
      method SettingInt (line 92) | public SettingInt(int defaultValue, string key)
      method Load (line 99) | private void Load()
      method Save (line 105) | private void Save()
      method Get (line 111) | public int Get()
      method Set (line 118) | public void Set(object value)
    type SettingString (line 127) | public struct SettingString
      type Type (line 133) | public enum Type
      method SettingString (line 141) | public SettingString(string defaultValue, string key)
      method Load (line 148) | private void Load()
      method Save (line 154) | private void Save()
      method Get (line 160) | public string Get()
      method Set (line 167) | public void Set(object value)
    method Connect (line 394) | public static void Connect()
    method Disconnect (line 411) | public static void Disconnect()
    method RefreshProjects (line 418) | public static void RefreshProjects()
    method RefreshVoices (line 444) | public static void RefreshVoices()
    method BindProject (line 473) | public static void BindProject(Project value)
    method UnbindProject (line 481) | public static void UnbindProject()
    method DeleteProject (line 489) | public static void DeleteProject(Project value)
    method ImportClips (line 501) | public static void ImportClips(Project value)
    method ImportProjectWavfiles (line 510) | public static void ImportProjectWavfiles(string path)
    method DownloadWavFiles (line 525) | private static void DownloadWavFiles(string path, ResembleClip[] clips)
    method OpenWindow (line 538) | public static void OpenWindow()
    method SetDirty (line 544) | public new static void SetDirty()
    type PathMethode (line 550) | public enum PathMethode

FILE: Assets/Plugins/Resemble/Editor/Plugin Resources/Styles.cs
  class Styles (line 8) | public static class Styles
    method Load (line 48) | public static void Load()

FILE: Assets/Plugins/Resemble/Editor/Plugin Resources/WebPage.cs
  class WebPageExtensions (line 7) | public static class WebPageExtensions
    method Open (line 12) | public static void Open(this WebPage webPage)
    method Open (line 20) | public static void Open(this WebPage webPage, string addtional)
  type WebPage (line 46) | public enum WebPage

FILE: Assets/Plugins/Resemble/Editor/Serializables/ClipPatch.cs
  class ClipPatch (line 5) | [System.Serializable]
    method ClipPatch (line 11) | public ClipPatch(string title, string body, string voice, bool phonemes)
    method CompareContent (line 17) | public bool CompareContent(ResembleClip clip)
    class Data (line 23) | [System.Serializable]
      method Data (line 30) | public Data(string title, string body, string voice)
    method ToString (line 38) | public override string ToString()
    method ToJson (line 43) | public string ToJson()

FILE: Assets/Plugins/Resemble/Editor/Serializables/ClipStatus.cs
  class ClipStatus (line 3) | [System.Serializable]
    method ToString (line 10) | public override string ToString()

FILE: Assets/Plugins/Resemble/Editor/Serializables/CreateClipRequest.cs
  class CreateClipRequest (line 4) | [System.Serializable]
    method CreateClipRequest (line 12) | public CreateClipRequest(ClipPatch.Data data, bool phonemes)
    method CreateClipRequest (line 20) | public CreateClipRequest(ClipPatch.Data data, string quality, bool raw...
    method Json (line 28) | public string Json()

FILE: Assets/Plugins/Resemble/Editor/Serializables/CreateClipResponse.cs
  class CreateClipResponse (line 4) | [System.Serializable]
    method CreateClipResponse (line 12) | public CreateClipResponse(string jsonFormat)

FILE: Assets/Plugins/Resemble/Editor/Serializables/Error.cs
  type Error (line 3) | [System.Serializable]
    method ToString (line 15) | public override string ToString()
    method Log (line 23) | public void Log()
    method Error (line 28) | public Error(long code, string message)
    method FromJson (line 66) | public static Error FromJson(long code, string jsonError)
    type SerializedErrors (line 74) | [System.Serializable]
      method allText (line 78) | public string allText()

FILE: Assets/Plugins/Resemble/Editor/Serializables/GetClipResponse.cs
  class GetClipResponse (line 4) | [System.Serializable]
    method GetClipResponse (line 18) | public GetClipResponse(string jsonFormat)

FILE: Assets/Plugins/Resemble/Editor/Serializables/Project.cs
  class Project (line 5) | [System.Serializable]
    method FromJson (line 14) | public static Project[] FromJson(string json)
    type SerializableProjectArray (line 19) | [System.Serializable]

FILE: Assets/Plugins/Resemble/Editor/Serializables/ProjectStatus.cs
  class ProjectStatus (line 3) | [System.Serializable]
    method ToString (line 10) | public override string ToString()

FILE: Assets/Plugins/Resemble/Editor/Serializables/ResembleClip.cs
  class ResembleClip (line 5) | [System.Serializable]
    method ToString (line 32) | public override string ToString()
    method FromJson (line 37) | public static ResembleClip FromJson(string json)
    method ArrayFromJson (line 49) | public static ResembleClip[] ArrayFromJson(string json)
    type SerializablePodArray (line 61) | [System.Serializable]

FILE: Assets/Plugins/Resemble/Editor/Serializables/Voice.cs
  class Voice (line 5) | [System.Serializable]
    method FromJson (line 13) | public static Voice[] FromJson(string json)
    type SerializableVoiceArray (line 18) | [System.Serializable]

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/CameraOrbit.cs
  class CameraOrbit (line 5) | public class CameraOrbit : MonoBehaviour
    type Shot (line 25) | [System.Serializable]
      method Lerp (line 32) | public static Shot Lerp(Shot a, Shot b, float t)
    method LateUpdate (line 43) | void LateUpdate()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/Editor/PhonemeReader_Editor.cs
  class PhonemeReader_Editor (line 6) | [CustomEditor(typeof(PhonemeReader))]
    method OnInspectorGUI (line 13) | public override void OnInspectorGUI()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/Editor/PhonemesToBlendShapes_Editor.cs
  class PhonemeToBlendShapes_Editor (line 4) | [CustomEditor(typeof(PhonemesToBlendShapes))]
    method OnEnable (line 12) | private void OnEnable()
    method OnInspectorGUI (line 18) | public override void OnInspectorGUI()
    method LoadBlendShapes (line 66) | private void LoadBlendShapes()
    method CheckRemapArraySize (line 80) | private void CheckRemapArraySize()
    method BlendShapeField (line 92) | private void BlendShapeField(Rect rect, int index)

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/Editor/PhonemesToShader_Editor.cs
  class PhonemeToShader_Editor (line 6) | [CustomEditor(typeof(PhonemesToShader))]
    method OnInspectorGUI (line 13) | public override void OnInspectorGUI()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/EyesFocus.cs
  class EyesFocus (line 3) | [RequireComponent(typeof(Animator))]
    method Awake (line 33) | private void Awake()
    method Update (line 38) | private void Update()
    method OnAnimatorIK (line 57) | private void OnAnimatorIK()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/PhonemeReader.cs
  class PhonemeReader (line 5) | public class PhonemeReader : MonoBehaviour
    method OnReadPhoneme (line 25) | protected virtual void OnReadPhoneme(string label, int groupID, float ...
    method CanRead (line 28) | protected virtual bool CanRead() { return true; }
    method Update (line 32) | protected virtual void Update()
    method GetValues (line 91) | public virtual void GetValues(GetValueCallback callback)
    method GetValues (line 99) | public virtual void GetValues(GetValueCallback callback, float time)
    method GetValues (line 107) | public virtual KeyValuePair<string, float>[] GetValues()
    method GetValues (line 119) | public virtual KeyValuePair<string, float>[] GetValues(float time)
    method Play (line 138) | public void Play()
    method Pause (line 143) | public void Pause()
    method UnPause (line 148) | public void UnPause()
    method Stop (line 153) | public void Stop()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/PhonemesToBlendShapes.cs
  class PhonemesToBlendShapes (line 4) | public class PhonemesToBlendShapes : PhonemeReader
    method Awake (line 13) | protected private void Awake()
    method CanRead (line 18) | protected override bool CanRead()
    method OnReadPhoneme (line 25) | protected override void OnReadPhoneme(string label, int groupID, float...
    method Evaluate (line 34) | public virtual void Evaluate(float time)

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/PhonemesToShader.cs
  class PhonemesToShader (line 4) | public class PhonemesToShader : PhonemeReader
    method Awake (line 15) | protected virtual void Awake()
    method CanRead (line 21) | protected override bool CanRead()
    method OnReadPhoneme (line 28) | protected override void OnReadPhoneme(string label, int groupID, float...
    method Evaluate (line 34) | public virtual void Evaluate(float time)

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/ProceduralEyes.cs
  class ProceduralEyes (line 5) | public class ProceduralEyes : MonoBehaviour
    type Action (line 21) | [System.Serializable]
      method Refresh (line 33) | public void Refresh(float deltatime)
    method Awake (line 68) | void Awake()
    method Update (line 73) | void Update()

FILE: Assets/Plugins/Resemble/Examples/Phonemes/Scripts/SpaceToPlay.cs
  class SpaceToPlay (line 4) | public class SpaceToPlay : MonoBehaviour
    method Update (line 10) | void Update()
    method Invoke (line 16) | public void Invoke()

FILE: Assets/Plugins/Resemble/Scripts/Clip.cs
  class Clip (line 5) | public class Clip : ScriptableObject
    method ContainsLabel (line 29) | public bool ContainsLabel(string label)
    method ContainsLabel (line 40) | public bool ContainsLabel(Label label)
    method ContainsLabel (line 51) | public bool ContainsLabel(string label, out int value)
    method SetPhonemesRaw (line 86) | public void SetPhonemesRaw(PhonemesTimeStamps raw)

FILE: Assets/Plugins/Resemble/Scripts/Emotion.cs
  type Emotion (line 5) | public enum Emotion
  class Emotions (line 16) | public static class Emotions
    method Color (line 28) | public static Color Color(this Emotion emotion)
    method OpenTag (line 33) | public static string OpenTag(this Emotion emotion)
    method CloseTag (line 38) | public static string CloseTag(this Emotion emotion)

FILE: Assets/Plugins/Resemble/Scripts/Label.cs
  type Label (line 3) | [System.Serializable]
    method Label (line 10) | public Label(string text)
    method Label (line 17) | public Label(string text, int value)
    method Equals (line 31) | public override bool Equals(object obj)
    method ToString (line 38) | public override string ToString()
    method GetHashCode (line 43) | public override int GetHashCode()

FILE: Assets/Plugins/Resemble/Scripts/PhonemeData.cs
  class PhonemeData (line 7) | [System.Serializable]
    method PhonemeData (line 14) | public PhonemeData(PhonemesTimeStamps raw, PhonemeTable table)
    method SetData (line 20) | public void SetData(PhonemesTimeStamps raw, PhonemeTable table)
    method UpdateTable (line 26) | public void UpdateTable(PhonemeTable table)

FILE: Assets/Plugins/Resemble/Scripts/PhonemeTables/APIGraph.cs
  class APIGraph (line 8) | public class APIGraph : PhonemeTable
    class Vowels (line 14) | [System.Serializable]
    class Consonants (line 21) | [System.Serializable]
    method RefineData (line 28) | public override Phonemes RefineData(PhonemesTimeStamps raw)

FILE: Assets/Plugins/Resemble/Scripts/PhonemeTables/Editor/APIGraph_Editor.cs
  class APIGraph_Editor (line 7) | [CustomEditor(typeof(APIGraph))]
    method OnInspectorGUI (line 43) | public override void OnInspectorGUI()
    method DrawVowelsGraph (line 57) | private Rect DrawVowelsGraph()
    method DrawPhonemePreview (line 126) | private void DrawPhonemePreview(Rect rect)
    method VowelsContextMenu (line 137) | private void VowelsContextMenu(Rect rect)
    method DrawConsonants (line 188) | private void DrawConsonants()
    method DrawContainer (line 334) | private void DrawContainer(Rect rect, APIGraph.Vowels item, int id, fl...
    method Shrink (line 429) | private Rect Shrink(Rect rect, float size)
    method Offset (line 435) | private Rect Offset(Rect rect, float x, float y, float width, float he...
    method RectFromPoint (line 441) | private Rect RectFromPoint(Vector2 point, float offsetX = 0.0f, float ...

FILE: Assets/Plugins/Resemble/Scripts/PhonemeTables/PhonemeTable.cs
  class PhonemeTable (line 5) | public class PhonemeTable : ScriptableObject, iPhonemeTable
    method RefineData (line 10) | public virtual Phonemes RefineData(PhonemesTimeStamps raw)
    class PhonemeGroup (line 16) | [System.Serializable]

FILE: Assets/Plugins/Resemble/Scripts/PhonemeTables/SimpleRemap.cs
  class SimpleRemap (line 4) | public class SimpleRemap : PhonemeTable
    method RefineData (line 6) | public override Phonemes RefineData(PhonemesTimeStamps raw)

FILE: Assets/Plugins/Resemble/Scripts/PhonemeTables/iPhonemeTable.cs
  type iPhonemeTable (line 3) | public interface iPhonemeTable
    method RefineData (line 5) | Phonemes RefineData(PhonemesTimeStamps raw);

FILE: Assets/Plugins/Resemble/Scripts/Phonemes.cs
  class Phonemes (line 7) | [System.Serializable]
    type PhonemeCurve (line 13) | [System.Serializable]
      method PhonemeCurve (line 20) | public PhonemeCurve(char phoneme, AnimationCurve curve)
    method Evaluate (line 29) | public KeyValuePair<string, float>[] Evaluate(float normalizedTime)

FILE: Assets/Plugins/Resemble/Scripts/PhonemesTimeStamps.cs
  type PhonemesTimeStamps (line 5) | [System.Serializable]
    method ToString (line 20) | public override string ToString()
    method ReadData (line 25) | public void ReadData()

FILE: Assets/Plugins/Resemble/Scripts/Speech.cs
  class Speech (line 7) | [CreateAssetMenu(fileName = "New Speech", menuName = "Resemble Speech", ...
    method GetClip (line 18) | public Clip GetClip(string name)
    method GetAudio (line 29) | public AudioClip GetAudio(string name)
    method GetUserData (line 35) | public string GetUserData(string name)
    method GetClipsWithLabel (line 41) | public List<Clip> GetClipsWithLabel(string label)
    method GetClipsWithLabel (line 54) | public List<Clip> GetClipsWithLabel(string label, int value)
    method GetClipsWithLabel (line 67) | public List<Clip> GetClipsWithLabel(Label label)

FILE: Assets/Plugins/Resemble/Scripts/Tag.cs
  class Tag (line 6) | [System.Serializable]
    method Tag (line 17) | public Tag(Emotion emotion, int idA, int idB)
    method Tag (line 26) | public Tag(float breakTime, int id)
    method Tag (line 36) | public Tag(Tag tag, int idA, int idB)
    method ParseBreak (line 46) | public static Tag ParseBreak(string data, int id)
    method ParseEmotion (line 54) | public static Tag ParseEmotion(string data, int start, int end)
    method ToString (line 61) | public override string ToString()
    type Type (line 73) | public enum Type
    method OpenTag (line 80) | public string OpenTag()
    method CloseTag (line 93) | public string CloseTag()
    method Contains (line 106) | public bool Contains(int id)
    method Contains (line 111) | public ChangeState Contains(int id, int length)
    method AddCharacters (line 138) | public void AddCharacters(int id, int length)
    method RemoveCharacters (line 155) | public bool RemoveCharacters(int id, int length)
    method ClearCharacters (line 186) | public bool ClearCharacters(int id, int length, out Tag otherTag)
    type ChangeState (line 214) | public enum ChangeState
  class Tags (line 225) | public static class Tags
    method Color (line 237) | public static Color Color(this Tag.Type tag)

FILE: Assets/Plugins/Resemble/Scripts/Text.cs
  class Text (line 6) | [System.Serializable]
    method BuildResembleString (line 34) | public string BuildResembleString()
    method ParseResembleString (line 57) | public void ParseResembleString(string rawString)
    type TagParser (line 128) | private struct TagParser
      method TagParser (line 130) | public TagParser(int id, string value)
      method ToString (line 149) | public override string ToString()
    type TagKey (line 166) | private struct TagKey
      method TagKey (line 172) | public TagKey(Tag tag, bool open)
      method ToString (line 179) | public override string ToString()
    method CallOnEdit (line 190) | public void CallOnEdit()
    method CallOnChangeSelect (line 196) | public void CallOnChangeSelect()
Copy disabled (too large) Download .json
Condensed preview — 383 files, each showing path, character count, and a content snippet. Download the .json file for the full structured content (46,956K chars).
[
  {
    "path": ".gitignore",
    "chars": 511,
    "preview": "[Ll]ibrary/\n[Tt]emp/\n[Oo]bj/\n[Bb]uild/\n[Pp]rojectSettings/ProjectVersion.txt\n[Tt]emp/\n[Bb]uilds/\n[Bb]ackups/\n[Ll]ogs/\n[R"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/AudioClip Icon.psd.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: d8a065e12dabe9c418b51525994ad985\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/BoxBloc.shader",
    "chars": 2487,
    "preview": "Shader \"Hidden/Ressemble/BoxBloc\" \r\n{\r\n\tProperties\r\n\t{\r\n\t\t_StencilComp(\"Stencil Comparison\", Float) = 8\r\n\t\t_Stencil(\"Ste"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/BoxBloc.shader.meta",
    "chars": 204,
    "preview": "fileFormatVersion: 2\nguid: 141736c3605ea5f409d75ef3bca5121f\nShaderImporter:\n  externalObjects: {}\n  defaultTextures: []\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Break.png.meta",
    "chars": 2679,
    "preview": "fileFormatVersion: 2\nguid: 93cc70252f68a75468a611368c24d614\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/AddEmotion.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 3e8522b9eabe65d4aa6405db73e09103\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/BindProject.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 2c11940a86037df41bb4a9f5ca3cb73d\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/CreateResembleSpeech.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 8176c9826fd11bd4587b9f98fd9cb77a\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/MakeAClip.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 074ccc5427b9f6c48a6fbdd48befbd79\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/OneShots.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 6525a74c61ba67e4eac16230eec098e6\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_Abs.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 237953bde200936429fe5d0d0fde09c7\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_AbsSub.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 9c3d1032e1d1a0e41bd86b20f852f9a4\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_Mir.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: f6ffec570336e4f4ea56bae6391e5f39\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_MirSub.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 9665fcaa158bfa14fa392325833e5faa\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_Rel.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 57d39843de203d74ca3634b4eceee81d\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Path_RelSub.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 7c1021d79290c234c97c54fe71f102c7\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/SetupProject.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: b79a668b552455c4a9fe2dc06360208e\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc/Userdata.png.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: aaa29409a4024194bb8fda287773d62e\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Doc.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: d54588f07923ff34abcf76efc67af50e\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/ExternalLink.psd.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 0955e96553cadfb48b293dd1f99aff1a\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Helvetica.ttf.meta",
    "chars": 496,
    "preview": "fileFormatVersion: 2\nguid: be60bfb435fff2b4ab8d2cf748a1b25c\nTrueTypeFontImporter:\n  externalObjects: {}\n  serializedVers"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Icon.psd.meta",
    "chars": 2681,
    "preview": "fileFormatVersion: 2\nguid: 95588b7c499ae544589ae4b2d9576341\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Loading.png.meta",
    "chars": 2356,
    "preview": "fileFormatVersion: 2\nguid: 50f4a889468b9db4cad1d994bb14d853\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Loading.shader",
    "chars": 2234,
    "preview": "Shader \"Hidden/Ressemble/Loading\" \r\n{\r\n\tProperties\r\n\t{\r\n\t\t_MainTex(\"Font Texture\", 2D) = \"white\" {}\r\n\t\t_Color(\"Text Colo"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Loading.shader.meta",
    "chars": 282,
    "preview": "fileFormatVersion: 2\nguid: 78bca071a80ca914c94dee0727d7fe32\nShaderImporter:\n  externalObjects: {}\n  defaultTextures:\n  -"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/PhonemesTable.psd.meta",
    "chars": 2357,
    "preview": "fileFormatVersion: 2\nguid: 26bb277a4d1c3474db1228b17292330d\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/Pod.psd.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: 7141f17c8c84bd14c92d3f7dc06219f3\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/ProcessAudioclip.meta",
    "chars": 155,
    "preview": "fileFormatVersion: 2\nguid: 5bc78681a20100349a602d423bb35862\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetB"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/TextBloc.shader",
    "chars": 2618,
    "preview": "Shader \"Hidden/Ressemble/TextBloc\" \r\n{\r\n\tProperties\r\n\t{\r\n\t\t_MainTex(\"Font Texture\", 2D) = \"white\" {}\r\n\t\t_Color(\"Text Co"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/TextBloc.shader.meta",
    "chars": 204,
    "preview": "fileFormatVersion: 2\nguid: 9baa43913a7fbab4ebcfa075b0183455\nShaderImporter:\n  externalObjects: {}\n  defaultTextures: []\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets/logo.png.meta",
    "chars": 2685,
    "preview": "fileFormatVersion: 2\nguid: f6424b8c8c299204291c5e86a2049d1f\nTextureImporter:\n  internalIDToNameTable: []\n  externalObjec"
  },
  {
    "path": "Assets/Plugins/Resemble/Assets.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 3f5dd42bd43b7854b95351dfc43eb41f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/API/APIBridge.cs",
    "chars": 12764,
    "preview": "using System;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing UnityEngine.Networking;\r"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/API/APIBridge.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 144651c09788ab64783b03d0635ade06\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/API/Task.cs",
    "chars": 2202,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.Structs;\r\n\r\nnamespace Resemble\r\n{\r\n    /// <summary> Request form"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/API/Task.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: ce1b87939a74b7c4cb9cd9f93d1f6c67\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/API.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: e167d6a49167a99439d37d5d242e31a3\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/AudioPreview.cs",
    "chars": 3668,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing System.Reflection;\r\nusing UnityEngine;\r\nusing UnityE"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/AudioPreview.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: c63d7472e65fef4408ada9358e2c987d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/ClipExtend.cs",
    "chars": 1840,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemb"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/ClipExtend.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: ce8d2839c015c1f48a35eace84b5afb6\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Clip_Editor.cs",
    "chars": 26993,
    "preview": "using System.Linq;\r\nusing System.IO;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing R"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Clip_Editor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 0b96950d52e7da547959d9a3faba9b2b\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Phonemes_Editor.cs",
    "chars": 3520,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.GUIEditor;\r\nusing Resemble;\r\n\r\npublic class Phonemes_Editor : Edi"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Phonemes_Editor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 5578f13206421ce418b8fd8ed0f2eb1c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Speech_Editor.cs",
    "chars": 12338,
    "preview": "using System.Linq;\r\nusing System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Speech_Editor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: d5809f94fc8dcd44f912031d479628e3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Text_Editor.cs",
    "chars": 30732,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble;\r\n\r"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors/Text_Editor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 2648b8610d7d09a4a918a555295a31dc\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/CustomEditors.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: a9b90c78ad16d6e42bbf43d3cb361f2f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/ClipPopup.cs",
    "chars": 4145,
    "preview": "using System.Linq;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing UnityEditor.IMGUI.C"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/ClipPopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 776b420ca19078a4992ae0692364d968\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/DeletePopup.cs",
    "chars": 2542,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    public class DeletePopup : EditorWindow\r\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/DeletePopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: e3573fe219658414c9cb161fa06b49ca\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/ImportPopup.cs",
    "chars": 6390,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemb"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/ImportPopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 18de056e9596cda4f8a0c5201da3b1ed\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/NotificationsPopup.cs",
    "chars": 6005,
    "preview": "using System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    public"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/NotificationsPopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 57bc0c3cbd28b2b4d8f18c5559cdc8ad\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/PopupButton.cs",
    "chars": 1001,
    "preview": "using UnityEngine;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    /// <summary> Useful class to make a button that will display"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/PopupButton.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 0104c57ea6c1b334c8ea03766b733cf2\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/StringPopup.cs",
    "chars": 2508,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    public class StringPopup : EditorWindow\r\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/StringPopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 4e2344511fd4cad4889055ff6a17a57c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/TagPopup.cs",
    "chars": 3095,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble;\r\n\r"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/TagPopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 26f63d610687aa640b158a66d884be2d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/VoicePopup.cs",
    "chars": 3058,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing UnityEditor."
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups/VoicePopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8874697eab7280e449a48d6b2bf0951e\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Popups.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 6cd513bc44e81e54b80c3266a0e64420\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Help.cs",
    "chars": 14083,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    /// <summary> Help tab of preference wind"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Help.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 958c9c28f73e2a246a3a5e80ceb9b2a4\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Options.cs",
    "chars": 5870,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    /// <summary> Paths tab of preference win"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Options.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 005b2244e6ae1914ab0a2b02acf6e7f6\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Project.cs",
    "chars": 9867,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.Structs;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    /// <summary> Pr"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Project.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8a2af25ced4488c46bf58e26b2becd6f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Window.cs",
    "chars": 4231,
    "preview": "using UnityEditor;\r\nusing UnityEngine;\r\nusing UnityEngine.UIElements;\r\nusing System.Linq;\r\nusing System.Reflection;\r\nusi"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/Settings_Window.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 9a35d98a4deeb2a4fb4ab5d5811f2ad3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/WelcomePopup.cs",
    "chars": 882,
    "preview": "using UnityEditor;\r\nusing Resemble;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n    /// <summary> Open preferences window on the"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings/WelcomePopup.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 93e91603ad15c904588414ba159e13ab\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Settings.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 9d0ed3df4039cc0439ee34aede1b9446\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/AsyncRequest.cs",
    "chars": 16819,
    "preview": "using System.IO;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble;\r\nusing Resemble.GUIEditor;\r\nusing Resemble.Str"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/AsyncRequest.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: c2847689294f4b64fad238bf2d4aed77\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Callbacks.cs",
    "chars": 964,
    "preview": "using Resemble.Structs;\r\n\r\nnamespace Resemble\r\n{\r\n    /// <summary> Contains various callbacks to simplify the usage of "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Callbacks.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 6f4a9dafc6c81744886ae368223a2f06\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Dropdown.cs",
    "chars": 2633,
    "preview": "using System.Collections;\nusing System.Collections.Generic;\nusing UnityEngine;\nusing UnityEditor;\nusing Resemble;\n\nname"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Dropdown.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: f501d737233e0fb4f9dabd45f77471b3\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/EditorProgressBar.cs",
    "chars": 885,
    "preview": "using UnityEditor;\nusing System.Linq;\nusing System.Reflection;\nusing Resemble;\n\nnamespace Resemble.GUIEditor\n{\n    publ"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/EditorProgressBar.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 710c95c7f51f0a9468556c3ef22047f9\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/TextExtend.cs",
    "chars": 11365,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble;\r\n\r"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/TextExtend.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 60f8e0ce742ac214e8dd985395e7fbc9\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Updates.cs",
    "chars": 7470,
    "preview": "using System;\nusing System.Net;\nusing System.Collections;\nusing System.Collections.Generic;\nusing System.IO;\nusing Syst"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Updates.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 5fb1b31b89876884b9e90017e81fe83c\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Utils.cs",
    "chars": 14368,
    "preview": "using UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble;\r\nusing Resemble.Structs;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n   "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils/Utils.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 4002d6958e6c75349867aaaccf68f916\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Utils.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: c5860a172c9c0f240886d087cfcd8e61\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/OneShot_Window.cs",
    "chars": 8655,
    "preview": "using System.IO;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.Structs;\r\n\r\nnamespace Resemble.GUIEditor\r\n{\r\n  "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/OneShot_Window.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 2e8c09c00bcf7b240aac74997c76eba4\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/Pool_Window.cs",
    "chars": 4553,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemb"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/Pool_Window.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: bdfba80d2bd6c3b48bebf1d6ad588aef\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/Resemble_Window.cs",
    "chars": 4670,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.Str"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window/Resemble_Window.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: cb7b125df79ff44468a1cf8dfaf9dfe5\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI/Window.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 7db8c01143ad6b3489375d296b37f2f4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/GUI.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: cd8d54958c618c441950f49894db2d03\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Resources.asset",
    "chars": 2280,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSou"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Resources.asset.meta",
    "chars": 189,
    "preview": "fileFormatVersion: 2\nguid: 7357e8e8aa87fe948bdef35bd9f9c7bd\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Resources.cs",
    "chars": 3059,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemb"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Resources.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 97596b31ef035cc458c4ba7cc167904b\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Settings.asset",
    "chars": 397,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &11400000\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_CorrespondingSou"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Settings.asset.meta",
    "chars": 189,
    "preview": "fileFormatVersion: 2\nguid: e2d3125866657cb46a70216c365a6599\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Settings.cs",
    "chars": 18902,
    "preview": "using System.Linq;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\nusing Resemble.Structs;\r\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Settings.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8ec1a61af7b103b44adfd0840239d03f\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Styles.cs",
    "chars": 6425,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\nnamespace Resemb"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/Styles.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: c15b4b416afd7bb4aab2535c256d31db\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/WebPage.cs",
    "chars": 2755,
    "preview": "using System.Collections.Generic;\r\nusing UnityEngine;\r\n\r\nnamespace Resemble\r\n{\r\n    /// <summary> Utility class to quick"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources/WebPage.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: d4aee47956bab934db12aeb9fd7c1f61\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Plugin Resources.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: b2c4bad49e50fed4694b10871b09367a\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ClipPatch.cs",
    "chars": 1236,
    "preview": "using UnityEngine;\r\n\r\nnamespace Resemble.Structs\r\n{\r\n    [System.Serializable]\r\n    public class ClipPatch\r\n    {\r\n     "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ClipPatch.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 9902bd4c7d9965844a08c6d250662613\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ClipStatus.cs",
    "chars": 365,
    "preview": "namespace Resemble.Structs\r\n{\r\n    [System.Serializable]\r\n    public class ClipStatus\r\n    {\r\n        public string stat"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ClipStatus.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 764a1bf3a3e1ca14382a5139fca06a78\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/CreateClipRequest.cs",
    "chars": 935,
    "preview": "namespace Resemble.Structs\r\n{\r\n    /// <summary> Response format of the api after a Create clip request. </summary>\r\n   "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/CreateClipRequest.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: a2a70f47624ae78438093c7dee858016\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/CreateClipResponse.cs",
    "chars": 597,
    "preview": "namespace Resemble.Structs\n{\n    /// <summary> Response format of the api after a Create clip request. </summary>\n    ["
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/CreateClipResponse.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 7cae2610089ff274d96d2dfd63fecbcd\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Error.cs",
    "chars": 3731,
    "preview": "namespace Resemble.Structs\r\n{\r\n    [System.Serializable]\r\n    public struct Error\r\n    {\r\n        public bool exist;\r\n  "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Error.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 2a7678f5d669532499dca099ea597c42\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/GetClipResponse.cs",
    "chars": 958,
    "preview": "namespace Resemble.Structs\n{\n    /// <summary> Response format of the api after a GetClip request. </summary>\n    [Syst"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/GetClipResponse.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 69387bfc79e6c9449a3a969e2fe660c7\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Project.cs",
    "chars": 639,
    "preview": "using UnityEngine;\n\nnamespace Resemble.Structs\n{\n    [System.Serializable]\n    public class Project\n    {\n        publi"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Project.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 9abab11933ab4d84b8c8ae8c598350af\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ProjectStatus.cs",
    "chars": 332,
    "preview": "namespace Resemble.Structs\n{\n    [System.Serializable]\n    public class ProjectStatus\n    {\n        public string statu"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ProjectStatus.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 41d2acab9b50a58429758443bdab041d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ResembleClip.cs",
    "chars": 1893,
    "preview": "using UnityEngine;\r\n\r\nnamespace Resemble.Structs\r\n{\r\n    [System.Serializable]\r\n    public class ResembleClip\r\n    {\r\n  "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/ResembleClip.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 8259935170415e64288760c3cd3b480d\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Voice.cs",
    "chars": 585,
    "preview": "using UnityEngine;\n\nnamespace Resemble.Structs\n{\n    [System.Serializable]\n    public class Voice\n    {\n        public "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables/Voice.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 50c291f12a98359459bff531cb9488d2\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Editor/Serializables.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: e237ad6b64887664e9364fb2a16c0ddb\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Editor.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 1cab55b3cb9d7754c8f2f57c6f1bf9bd\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Animations/Talking.controller",
    "chars": 4222,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!1102 &-8644254919610408396\nAnimatorState:\n  serializedVersion: 5\n  m_Obj"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Animations/Talking.controller.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 475d8f2b16a899146aef5096cdfe0fbc\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Animations/xbot@Talking.fbx.meta",
    "chars": 31903,
    "preview": "fileFormatVersion: 2\nguid: e381fc87b54255d4ab2eeb17646d5a63\nModelImporter:\n  serializedVersion: 19300\n  internalIDToName"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Animations.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: ecaab69f178c40246bf0f288482781d7\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/BlendShape/Hey buddy.wav.meta",
    "chars": 458,
    "preview": "fileFormatVersion: 2\nguid: c326c4fb04742bf43b5eedb6c101bb95\nAudioImporter:\n  externalObjects: {}\n  serializedVersion: 6\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/BlendShape.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 5f43531d077d7f940b5ffbb2dcc2587f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_BlendShape/Hey buddy.wav.meta",
    "chars": 458,
    "preview": "fileFormatVersion: 2\nguid: 4d8b7a853ad76ec478df9be548754604\nAudioImporter:\n  externalObjects: {}\n  serializedVersion: 6\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_BlendShape.asset",
    "chars": 106313,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-7829481213900429424\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_Corr"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_BlendShape.asset.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 4a0d763b8c55c01459703169c0fc7875\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_BlendShape.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: e40363afafde0704e94d8aed7be1b908\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_Shader/Hey buddy.wav.meta",
    "chars": 458,
    "preview": "fileFormatVersion: 2\nguid: c8b09bbc179be3c409f9766568db57d8\nAudioImporter:\n  externalObjects: {}\n  serializedVersion: 6\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_Shader.asset",
    "chars": 170944,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-15824898440723167\nMonoBehaviour:\n  m_ObjectHideFlags: 0\n  m_Corres"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_Shader.asset.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 98cd58a61037d3844af4d7fad19848f5\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Example_Shader.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: ef68e9b0ad1f3cd4caae0b26aaba4794\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Shader/Hey buddy.wav.meta",
    "chars": 458,
    "preview": "fileFormatVersion: 2\nguid: 25018932ff906c3499cefb120aac68e0\nAudioImporter:\n  externalObjects: {}\n  serializedVersion: 6\n"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio/Shader.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: ad5b97e7a212f4f4fb96be1d121c7e2f\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Audio.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 4ea0345edab018748a26d648b6f2598c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Ground _Shader.mat",
    "chars": 2151,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Ground _Shader.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 6fc2eb351667a4740ae32555a84476b2\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Ground_BlendShapes.mat",
    "chars": 2163,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Ground_BlendShapes.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 93b8362933b0397499d3147973ed0bf8\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack.mat",
    "chars": 9598,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 19ad08f392e65a049917bcf8b7097b42\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack_Beeswax.mat",
    "chars": 9922,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack_Beeswax.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: b935429a8c14b5f449ad6a14cf32fc4d\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack_Glass.mat",
    "chars": 9248,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Backpack_Glass.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: be9d8998c0616b040bdfeeb36afd27fa\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Eyes.mat",
    "chars": 9302,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Eyes.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: c98cda8a8114b6a47ba750a73ee46a00\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Hair.mat",
    "chars": 9312,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Hair.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: adc2a3e77427ff3458e05ac0133d36ef\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet.mat",
    "chars": 9507,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 5b0603effb60e764d8caa4e9d4b31a4b\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Beeswax.mat",
    "chars": 9870,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Beeswax.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 33b22eab4158fff4eabc6f98bb19e012\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Face.mat",
    "chars": 10950,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Face.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: f235cfc4956d31847a9a78ca7b180f66\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Glass.mat",
    "chars": 9417,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Helmet_Glass.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 6771526c483604b4ebf06b8f87532ff4\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Skin.mat",
    "chars": 9767,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Skin.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: f81ec9f29f3edbf49b01db30856a1f5c\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Suit.mat",
    "chars": 9721,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Suit.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 1b77ab49bc387fb4ebfbc873e09aa794\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Suit_Beeswax.mat",
    "chars": 10006,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Suit_Beeswax.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 3dbb161704c0ee243bc0a85079da3cd6\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Teeth.mat",
    "chars": 9080,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!21 &2100000\nMaterial:\n  serializedVersion: 6\n  m_ObjectHideFlags: 0\n  m_"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer/Terraformer_A_Teeth.mat.meta",
    "chars": 182,
    "preview": "fileFormatVersion: 2\nguid: 1ae26984f20207440849dcecbd381075\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials/Terraformer.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: d64d5356d856ae445a171e2b54128e32\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Materials.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 09f3f73c11b240643ba5139df82ed15c\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Miscs/PhonemeExample_PP.asset",
    "chars": 24271,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!114 &-7242520394362994205\nMonoBehaviour:\n  m_ObjectHideFlags: 3\n  m_Corr"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Miscs/PhonemeExample_PP.asset.meta",
    "chars": 189,
    "preview": "fileFormatVersion: 2\nguid: dec4d21bf98392f438c37efc872bb60f\nNativeFormatImporter:\n  externalObjects: {}\n  mainObjectFile"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Miscs.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 156d28e763f30294da6d9ac8abe28122\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Models/Terraformer_Blendshapes.fbx.meta",
    "chars": 44279,
    "preview": "fileFormatVersion: 2\nguid: a8077ff5f03bbb546b3732192423a62c\nModelImporter:\n  serializedVersion: 19300\n  internalIDToName"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Models/Terraformer_Shader.fbx.meta",
    "chars": 2402,
    "preview": "fileFormatVersion: 2\nguid: 4d11a17b7a4fdab4e9c52eb055121e47\nModelImporter:\n  serializedVersion: 19300\n  internalIDToName"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Models.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: b19a855620304ef44abddaf94943e5c4\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scenes/ResembleExample_Blendshapes.unity",
    "chars": 165791,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersi"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scenes/ResembleExample_Blendshapes.unity.meta",
    "chars": 155,
    "preview": "fileFormatVersion: 2\nguid: 9f476fa6889f68343be8dec6a77275c4\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetB"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scenes/ResembleExample_Shader.unity",
    "chars": 156133,
    "preview": "%YAML 1.1\n%TAG !u! tag:unity3d.com,2011:\n--- !u!29 &1\nOcclusionCullingSettings:\n  m_ObjectHideFlags: 0\n  serializedVersi"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scenes/ResembleExample_Shader.unity.meta",
    "chars": 155,
    "preview": "fileFormatVersion: 2\nguid: f3cd6ca7ff8b7234cb513194df6ab229\nDefaultImporter:\n  externalObjects: {}\n  userData: \n  assetB"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scenes.meta",
    "chars": 172,
    "preview": "fileFormatVersion: 2\nguid: 349205cce12786c43b291d71de00c13b\nfolderAsset: yes\nDefaultImporter:\n  externalObjects: {}\n  us"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scripts/CameraOrbit.cs",
    "chars": 2482,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\n\r\npublic class CameraOrbit : MonoBehav"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scripts/CameraOrbit.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: 91557a6dca21b004288adf2178beb411\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scripts/Editor/PhonemeReader_Editor.cs",
    "chars": 1294,
    "preview": "using System.Collections;\r\nusing System.Collections.Generic;\r\nusing UnityEngine;\r\nusing UnityEditor;\r\n\r\n[CustomEditor(ty"
  },
  {
    "path": "Assets/Plugins/Resemble/Examples/Phonemes/Scripts/Editor/PhonemeReader_Editor.cs.meta",
    "chars": 243,
    "preview": "fileFormatVersion: 2\nguid: d4104aa06bba7164b9b1c1d566afcdfb\nMonoImporter:\n  externalObjects: {}\n  serializedVersion: 2\n "
  }
]

// ... and 183 more files (download for full content)

About this extraction

This page contains the full source code of the resemble-ai/resemble-unity-text-to-speech GitHub repository, extracted and formatted as plain text for AI agents and large language models (LLMs). The extraction includes 383 files (186.0 MB), approximately 11.7M tokens, and a symbol index with 551 extracted functions, classes, methods, constants, and types. Use this with OpenClaw, Claude, ChatGPT, Cursor, Windsurf, or any other AI tool that accepts text input. You can copy the full output to your clipboard or download it as a .txt file.

Extracted by GitExtract — free GitHub repo to text converter for AI. Built by Nikandr Surkov.

Copied to clipboard!