├── .github
└── workflows
│ └── documentation.yml
├── .gitignore
├── .vscode
└── settings.json
├── Assets
├── NPCEngine.meta
├── NPCEngine
│ ├── Demo.meta
│ ├── Demo
│ │ ├── AdvancedDemo.meta
│ │ ├── AdvancedDemo
│ │ │ ├── AdvancedDemo.unity
│ │ │ ├── AdvancedDemo.unity.meta
│ │ │ ├── AdvancedDemoLightingSettings.lighting
│ │ │ ├── AdvancedDemoLightingSettings.lighting.meta
│ │ │ ├── Characters.meta
│ │ │ ├── Characters
│ │ │ │ ├── Guard1.asset
│ │ │ │ ├── Guard1.asset.meta
│ │ │ │ ├── Guard2.asset
│ │ │ │ ├── Guard2.asset.meta
│ │ │ │ ├── Poorman.asset
│ │ │ │ ├── Poorman.asset.meta
│ │ │ │ ├── Tavernkeeper.asset
│ │ │ │ ├── Tavernkeeper.asset.meta
│ │ │ │ ├── Traveller.asset
│ │ │ │ ├── Traveller.asset.meta
│ │ │ │ ├── VillageElder.asset
│ │ │ │ ├── VillageElder.asset.meta
│ │ │ │ ├── VillageElderSon.asset
│ │ │ │ ├── VillageElderSon.asset.meta
│ │ │ │ ├── VillageElderSon2.asset
│ │ │ │ └── VillageElderSon2.asset.meta
│ │ │ ├── Locations.meta
│ │ │ ├── Locations
│ │ │ │ ├── MournsteadVillage.asset
│ │ │ │ └── MournsteadVillage.asset.meta
│ │ │ ├── Prefabs.meta
│ │ │ ├── Prefabs
│ │ │ │ ├── DialogueUI.prefab
│ │ │ │ ├── DialogueUI.prefab.meta
│ │ │ │ ├── NPC.prefab
│ │ │ │ └── NPC.prefab.meta
│ │ │ ├── README.md
│ │ │ ├── README.md.meta
│ │ │ ├── Resources.meta
│ │ │ ├── Resources
│ │ │ │ ├── Dialogues.meta
│ │ │ │ └── Dialogues
│ │ │ │ │ ├── Guard.json
│ │ │ │ │ ├── Guard.json.meta
│ │ │ │ │ ├── Placeholder.json
│ │ │ │ │ ├── Placeholder.json.meta
│ │ │ │ │ ├── Tavernkeeper.json
│ │ │ │ │ ├── Tavernkeeper.json.meta
│ │ │ │ │ ├── VillageElder.json
│ │ │ │ │ └── VillageElder.json.meta
│ │ │ ├── Scripts.meta
│ │ │ └── Scripts
│ │ │ │ ├── LerpRotate.cs
│ │ │ │ └── LerpRotate.cs.meta
│ │ ├── BasicDemo.meta
│ │ └── BasicDemo
│ │ │ ├── Basic.unity
│ │ │ ├── Basic.unity.meta
│ │ │ ├── Scripts.meta
│ │ │ └── Scripts
│ │ │ ├── ButtonDisableEnable.cs
│ │ │ ├── ButtonDisableEnable.cs.meta
│ │ │ ├── ChatbotCaller.cs
│ │ │ ├── ChatbotCaller.cs.meta
│ │ │ ├── SemanticSimilarityCaller.cs
│ │ │ ├── SemanticSimilarityCaller.cs.meta
│ │ │ ├── StatusChecker.cs
│ │ │ ├── StatusChecker.cs.meta
│ │ │ ├── TextToSpeechCaller.cs
│ │ │ └── TextToSpeechCaller.cs.meta
│ ├── Documentation_api.pdf
│ ├── Documentation_api.pdf.meta
│ ├── Documentation_tutorials.pdf
│ ├── Documentation_tutorials.pdf.meta
│ ├── Integrations.meta
│ ├── Integrations
│ │ ├── VIDEIntegration.meta
│ │ ├── VIDEIntegration.unitypackage.meta
│ │ └── VIDEIntegration
│ │ │ ├── VIDEDialogueSystem.cs
│ │ │ └── VIDEDialogueSystem.cs.meta
│ ├── Lib.meta
│ ├── Lib
│ │ ├── AsyncIO.dll
│ │ ├── AsyncIO.dll.meta
│ │ ├── ICSharpCode.SharpZipLib.dll
│ │ ├── ICSharpCode.SharpZipLib.dll.meta
│ │ ├── NetMQ.dll
│ │ ├── NetMQ.dll.meta
│ │ ├── System.Buffers.dll
│ │ ├── System.Buffers.dll.meta
│ │ ├── System.Memory.dll
│ │ ├── System.Memory.dll.meta
│ │ ├── System.Runtime.CompilerServices.Unsafe.dll
│ │ └── System.Runtime.CompilerServices.Unsafe.dll.meta
│ ├── Prefabs.meta
│ ├── Prefabs
│ │ ├── NPCEngineManager.prefab
│ │ └── NPCEngineManager.prefab.meta
│ ├── Resources.meta
│ ├── Resources
│ │ ├── discord.png
│ │ ├── discord.png.meta
│ │ ├── file-text.png
│ │ ├── file-text.png.meta
│ │ ├── github.png
│ │ ├── github.png.meta
│ │ ├── settings.png
│ │ └── settings.png.meta
│ ├── Scripts.meta
│ └── Scripts
│ │ ├── API.meta
│ │ ├── API
│ │ ├── Classification.cs
│ │ ├── Classification.cs.meta
│ │ ├── Control.cs
│ │ ├── Control.cs.meta
│ │ ├── PersonaDialogue.cs
│ │ ├── PersonaDialogue.cs.meta
│ │ ├── SemanticQuery.cs
│ │ ├── SemanticQuery.cs.meta
│ │ ├── SpeechToText.cs
│ │ ├── SpeechToText.cs.meta
│ │ ├── TextGeneration.cs
│ │ ├── TextGeneration.cs.meta
│ │ ├── TextToSpeech.cs
│ │ └── TextToSpeech.cs.meta
│ │ ├── Components.meta
│ │ ├── Components
│ │ ├── AbstractDialogueSystem.cs
│ │ ├── AbstractDialogueSystem.cs.meta
│ │ ├── AbstractSpeechToText.cs
│ │ ├── AbstractSpeechToText.cs.meta
│ │ ├── Character.cs
│ │ ├── Character.cs.meta
│ │ ├── ChatbotContexts.meta
│ │ ├── ChatbotContexts
│ │ │ ├── FantasyChatbotContext.cs
│ │ │ ├── FantasyChatbotContext.cs.meta
│ │ │ ├── FantasyChatbotTextGeneration.cs
│ │ │ └── FantasyChatbotTextGeneration.cs.meta
│ │ ├── ColliderLocationTrigger.cs
│ │ ├── ColliderLocationTrigger.cs.meta
│ │ ├── DialogueUI.cs
│ │ ├── DialogueUI.cs.meta
│ │ ├── DictationRecognizerSTT.cs
│ │ ├── DictationRecognizerSTT.cs.meta
│ │ ├── Location.cs
│ │ ├── Location.cs.meta
│ │ ├── NPCEngineManager.cs
│ │ ├── NPCEngineManager.cs.meta
│ │ ├── NPCEngineSTT.cs
│ │ ├── NPCEngineSTT.cs.meta
│ │ ├── NonPlayerCharacter.cs
│ │ ├── NonPlayerCharacter.cs.meta
│ │ ├── PlayerCharacter.cs
│ │ ├── PlayerCharacter.cs.meta
│ │ ├── TTSGenerator.cs
│ │ └── TTSGenerator.cs.meta
│ │ ├── Editor.meta
│ │ ├── Editor
│ │ ├── NPCEngineConfigEditor.cs
│ │ ├── NPCEngineConfigEditor.cs.meta
│ │ ├── NPCEngineManagerEditor.cs
│ │ ├── NPCEngineManagerEditor.cs.meta
│ │ ├── NPCEngineWelcomeWindow.cs
│ │ ├── NPCEngineWelcomeWindow.cs.meta
│ │ ├── NonPlayerCharacterEditor.cs
│ │ ├── NonPlayerCharacterEditor.cs.meta
│ │ ├── TTSGeneratorEditor.cs
│ │ └── TTSGeneratorEditor.cs.meta
│ │ ├── NPCEngineConfig.cs
│ │ ├── NPCEngineConfig.cs.meta
│ │ ├── RPC.meta
│ │ ├── RPC
│ │ ├── RPCBase.cs
│ │ ├── RPCBase.cs.meta
│ │ ├── RPCImpl.cs
│ │ ├── RPCImpl.cs.meta
│ │ ├── RPCTypes.cs
│ │ └── RPCTypes.cs.meta
│ │ ├── Utilities.meta
│ │ └── Utilities
│ │ ├── AudioSourceQueue.cs
│ │ ├── AudioSourceQueue.cs.meta
│ │ ├── ChildProcessTracker.cs
│ │ ├── ChildProcessTracker.cs.meta
│ │ ├── CoroutineUtility.cs
│ │ ├── CoroutineUtility.cs.meta
│ │ ├── SavWav.cs
│ │ ├── SavWav.cs.meta
│ │ ├── Singleton.cs
│ │ └── Singleton.cs.meta
└── StreamingAssets.meta
├── Documentation
├── api
│ ├── .manifest
│ ├── NPCEngine.API.Classification.yml
│ ├── NPCEngine.API.Control.yml
│ ├── NPCEngine.API.PersonaDialogue.yml
│ ├── NPCEngine.API.SemanticQuery.yml
│ ├── NPCEngine.API.ServiceMetadata.yml
│ ├── NPCEngine.API.ServiceStatus.yml
│ ├── NPCEngine.API.SpeechToText.yml
│ ├── NPCEngine.API.TextGeneration-1.yml
│ ├── NPCEngine.API.TextToSpeech.yml
│ ├── NPCEngine.API.yml
│ ├── NPCEngine.Components.AbstractDialogueSystem.yml
│ ├── NPCEngine.Components.AbstractSpeechToText.yml
│ ├── NPCEngine.Components.Character.yml
│ ├── NPCEngine.Components.ChatLine.yml
│ ├── NPCEngine.Components.ColliderLocationTrigger.yml
│ ├── NPCEngine.Components.DialogueUI.yml
│ ├── NPCEngine.Components.DictationRecognizerSTT.yml
│ ├── NPCEngine.Components.FantasyChatbotContext.yml
│ ├── NPCEngine.Components.FantasyChatbotTextGeneration.yml
│ ├── NPCEngine.Components.Location.yml
│ ├── NPCEngine.Components.NPCEngineManager.yml
│ ├── NPCEngine.Components.NPCEngineSTT.yml
│ ├── NPCEngine.Components.NonPlayerCharacter.yml
│ ├── NPCEngine.Components.PlayerCharacter.yml
│ ├── NPCEngine.Components.TTSGenerator.yml
│ ├── NPCEngine.Components.yml
│ ├── NPCEngine.NPCEngineConfig.yml
│ ├── NPCEngine.NPCEngineConfigEditor.yml
│ ├── NPCEngine.NPCEngineException.yml
│ ├── NPCEngine.NonPlayerCharacterEditor.yml
│ ├── NPCEngine.RPC.APICommunicatorHTTPImpl.yml
│ ├── NPCEngine.RPC.APICommunicatorZMQImpl.yml
│ ├── NPCEngine.RPC.RPCBase.yml
│ ├── NPCEngine.RPC.RPCRequestMessage-1.yml
│ ├── NPCEngine.RPC.RPCResponseError.yml
│ ├── NPCEngine.RPC.RPCResponseErrorData.yml
│ ├── NPCEngine.RPC.RPCResponseMessage-1.yml
│ ├── NPCEngine.RPC.Request.yml
│ ├── NPCEngine.RPC.RequestDispatcherImpl.yml
│ ├── NPCEngine.RPC.ServerType.yml
│ ├── NPCEngine.RPC.yml
│ ├── NPCEngine.ServiceConfigDescriptor.yml
│ ├── NPCEngine.TTSGeneratorEditor.yml
│ ├── NPCEngine.Utility.AudioSourceQueue.yml
│ ├── NPCEngine.Utility.CoroutineUtility.yml
│ ├── NPCEngine.Utility.Singleton-1.yml
│ ├── NPCEngine.Utility.yml
│ ├── NPCEngine.yml
│ └── toc.yml
├── docfx.json
├── filterConfig.yml
├── index.md
├── resources
│ ├── basic_scene_first.png
│ ├── callbacks.png
│ ├── chatbot_chat.png
│ ├── chatbot_context.png
│ ├── fav.svg
│ ├── favicon.ico
│ ├── logo.svg
│ ├── npc_engine_console.png
│ ├── npc_engine_server_script.png
│ ├── player_character.png
│ ├── scene-setup-audio-source.PNG
│ ├── scene-setup-cube.png
│ ├── scene-setup-how-it-should-look.png
│ ├── scene-setup-npc-component.PNG
│ ├── scene-setup-player.png
│ ├── scene-setup-result.png
│ ├── scene-setup-stt.png
│ ├── scene-setup-testing.png
│ ├── scene-setup-ui.png
│ ├── semantic_sim_caller.png
│ ├── semantic_similarity.png
│ ├── settings.svg
│ ├── setup-scene-cube-character.png
│ ├── setup-scene-cube-persona.png
│ ├── setup-scene-cube-test-objects.PNG
│ ├── setup-scene-cube-testing.PNG
│ ├── setup-scene-manager-start.PNG
│ ├── setup-scene-manager-started.PNG
│ ├── speech_to_text.png
│ ├── text_to_speech.png
│ ├── threshold.png
│ └── topics.png
├── toc.yml
└── tutorials
│ ├── advanced_demo.md
│ ├── basic_demo.md
│ ├── scene_setup.md
│ └── toc.yml
├── LICENSE
├── Packages
└── manifest.json
├── ProjectSettings
├── AudioManager.asset
├── ClusterInputManager.asset
├── DynamicsManager.asset
├── EditorBuildSettings.asset
├── EditorSettings.asset
├── GraphicsSettings.asset
├── InputManager.asset
├── NavMeshAreas.asset
├── PackageManagerSettings.asset
├── Physics2DSettings.asset
├── PresetManager.asset
├── ProjectSettings.asset
├── QualitySettings.asset
├── TagManager.asset
├── TimeManager.asset
├── UnityConnectSettings.asset
├── VFXManager.asset
├── VersionControlSettings.asset
└── XRSettings.asset
└── README.md
/.github/workflows/documentation.yml:
--------------------------------------------------------------------------------
1 | name: Example documentation
2 |
3 | on:
4 | push:
5 | branches:
6 | - main
7 |
8 | jobs:
9 | # Build the documentation
10 | build:
11 | runs-on: windows-latest # Required by DocFX
12 | steps:
13 | - name: Checkout
14 | uses: actions/checkout@v2
15 | # with:
16 | # submodules: true
17 |
18 | - name: Install DocFX
19 | run: choco install -y docfx
20 |
21 | - name: Install wkhtmltopdf
22 | run: choco install -y wkhtmltopdf
23 |
24 | - name: Use README.md as index.md
25 | run: cp README.md Documentation/index.md
26 |
27 | - name: Build
28 | run: docfx Documentation/docfx.json
29 |
30 | # Upload the generated documentation
31 | - name: Upload site artifact
32 | uses: actions/upload-artifact@v1
33 | with:
34 | name: _site
35 | path: _site # Must equals the 'build.dest' value on your docfx.json
36 |
37 | # Deploy the generated documentation to the gh-pages branch
38 | deploy:
39 | needs: build
40 | runs-on: ubuntu-latest
41 | steps:
42 | - name: Checkout
43 | uses: actions/checkout@v2
44 | # with:
45 | # submodules: true
46 |
47 | # Download the generated documentation
48 | - name: Download site artifact
49 | uses: actions/download-artifact@v1
50 | with:
51 | name: _site
52 |
53 | - name: Deploy
54 | uses: peaceiris/actions-gh-pages@v3
55 | with:
56 | github_token: ${{ secrets.GITHUB_TOKEN }}
57 | publish_branch: gh-pages
58 | publish_dir: _site
59 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | # This .gitignore file should be placed at the root of your Unity project directory
2 | #
3 | # Get latest from https://github.com/github/gitignore/blob/master/Unity.gitignore
4 | #
5 | /[Ll]ibrary/
6 | /[Tt]emp/
7 | /[Oo]bj/
8 | /[Bb]uild/
9 | /[Bb]uilds/
10 | /[Ll]ogs/
11 | /[Uu]ser[Ss]ettings/
12 |
13 | # MemoryCaptures can get excessive in size.
14 | # They also could contain extremely sensitive data
15 | /[Mm]emoryCaptures/
16 |
17 | # Asset meta data should only be ignored when the corresponding asset is also ignored
18 | !/[Aa]ssets/**/*.meta
19 |
20 | # Uncomment this line if you wish to ignore the asset store tools plugin
21 | # /[Aa]ssets/AssetStoreTools*
22 |
23 | # Autogenerated Jetbrains Rider plugin
24 | /[Aa]ssets/Plugins/Editor/JetBrains*
25 |
26 | # Visual Studio cache directory
27 | .vs/
28 |
29 | # Idea
30 | .idea/
31 |
32 | # Gradle cache directory
33 | .gradle/
34 |
35 | # Autogenerated VS/MD/Consulo solution and project files
36 | ExportedObj/
37 | .consulo/
38 | *.csproj
39 | *.unityproj
40 | *.sln
41 | *.suo
42 | *.tmp
43 | *.user
44 | *.userprefs
45 | *.pidb
46 | *.booproj
47 | *.svd
48 | *.pdb
49 | *.mdb
50 | *.opendb
51 | *.VC.db
52 |
53 | # Unity3D generated meta files
54 | *.pidb.meta
55 | *.pdb.meta
56 | *.mdb.meta
57 |
58 | # Unity3D generated file on crash reports
59 | sysinfo.txt
60 |
61 | # Builds
62 | *.apk
63 | *.aab
64 | *.unitypackage
65 |
66 | # Crashlytics generated file
67 | crashlytics-build.properties
68 |
69 | # Packed Addressables
70 | /[Aa]ssets/[Aa]ddressable[Aa]ssets[Dd]ata/*/*.bin*
71 |
72 | /[Aa]ssets/[Ss]treamingAssets/*
73 | /[Aa]ssets/VIDE
74 | /[Aa]ssets/RPGPP_LT
75 | /[Aa]ssets/Polytope\ Studio
76 | /[Aa]ssets/ModularFirstPersonController
77 | /[Aa]ssets/VIDE.meta
78 | /[Aa]ssets/RPGPP_LT.meta
79 | /[Aa]ssets/Polytope\ Studio.meta
80 | /[Aa]ssets/ModularFirstPersonController.meta
81 |
82 | # Packaged modules
83 |
84 | /[Aa]ssets/NPCEngine/Demo/AdvancedDemo/AdvancedDemo.unitypackage*
85 | /[Aa]ssets/NPCEngine/Integrations/VIDE Dialogues Integration.unitypackage*
86 |
87 | # Docs
88 | _site/**
89 | Documentation/_site_pdf/**
90 | **/.cache/**
91 | Documentation/obj/**
92 | /[Aa]ssets/*
93 | !/[Aa]ssets/NPCEngine
94 | /Packages/packages-lock.json
95 | /ProjectSettings/ProjectVersion.txt
96 |
97 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "files.exclude":
3 | {
4 | "**/.DS_Store":true,
5 | "**/.git":true,
6 | "**/.gitignore":true,
7 | "**/.gitmodules":true,
8 | "**/*.booproj":true,
9 | "**/*.pidb":true,
10 | "**/*.suo":true,
11 | "**/*.user":true,
12 | "**/*.userprefs":true,
13 | "**/*.unityproj":true,
14 | "**/*.dll":true,
15 | "**/*.exe":true,
16 | "**/*.pdf":true,
17 | "**/*.mid":true,
18 | "**/*.midi":true,
19 | "**/*.wav":true,
20 | "**/*.gif":true,
21 | "**/*.ico":true,
22 | "**/*.jpg":true,
23 | "**/*.jpeg":true,
24 | "**/*.png":true,
25 | "**/*.psd":true,
26 | "**/*.tga":true,
27 | "**/*.tif":true,
28 | "**/*.tiff":true,
29 | "**/*.3ds":true,
30 | "**/*.3DS":true,
31 | "**/*.fbx":true,
32 | "**/*.FBX":true,
33 | "**/*.lxo":true,
34 | "**/*.LXO":true,
35 | "**/*.ma":true,
36 | "**/*.MA":true,
37 | "**/*.obj":true,
38 | "**/*.OBJ":true,
39 | "**/*.asset":true,
40 | "**/*.cubemap":true,
41 | "**/*.flare":true,
42 | "**/*.mat":true,
43 | "**/*.meta":true,
44 | "**/*.prefab":true,
45 | "**/*.unity":true,
46 | "build/":true,
47 | "Build/":true,
48 | "Library/":true,
49 | "library/":true,
50 | "obj/":true,
51 | "Obj/":true,
52 | "ProjectSettings/":true,
53 | "temp/":true,
54 | "Temp/":true
55 | }
56 | }
--------------------------------------------------------------------------------
/Assets/NPCEngine.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 37415cb51094b0349be754ff8a3c157b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e6b1a8747a74d0741b08d923f0e4cff4
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3b705b8dcb6d8704ab82d2f6f4514cbd
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/AdvancedDemo.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d2809ab9b90eea7419d8d90d4c505d35
3 | timeCreated: 1560250850
4 | licenseType: Store
5 | DefaultImporter:
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/AdvancedDemoLightingSettings.lighting:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!850595691 &4890085278179872738
4 | LightingSettings:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_Name: AdvancedDemoLightingSettings
10 | serializedVersion: 3
11 | m_GIWorkflowMode: 1
12 | m_EnableBakedLightmaps: 1
13 | m_EnableRealtimeLightmaps: 1
14 | m_RealtimeEnvironmentLighting: 1
15 | m_BounceScale: 1
16 | m_AlbedoBoost: 1
17 | m_IndirectOutputScale: 1
18 | m_UsingShadowmask: 1
19 | m_BakeBackend: 2
20 | m_LightmapMaxSize: 1024
21 | m_BakeResolution: 40
22 | m_Padding: 2
23 | m_TextureCompression: 1
24 | m_AO: 0
25 | m_AOMaxDistance: 1
26 | m_CompAOExponent: 1
27 | m_CompAOExponentDirect: 0
28 | m_ExtractAO: 0
29 | m_MixedBakeMode: 2
30 | m_LightmapsBakeMode: 1
31 | m_FilterMode: 1
32 | m_LightmapParameters: {fileID: 15204, guid: 0000000000000000f000000000000000, type: 0}
33 | m_ExportTrainingData: 0
34 | m_TrainingDataDestination: TrainingData
35 | m_RealtimeResolution: 2
36 | m_ForceWhiteAlbedo: 0
37 | m_ForceUpdates: 0
38 | m_FinalGather: 0
39 | m_FinalGatherRayCount: 256
40 | m_FinalGatherFiltering: 1
41 | m_PVRCulling: 1
42 | m_PVRSampling: 1
43 | m_PVRDirectSampleCount: 32
44 | m_PVRSampleCount: 512
45 | m_PVREnvironmentSampleCount: 256
46 | m_PVREnvironmentReferencePointCount: 2048
47 | m_LightProbeSampleCountMultiplier: 4
48 | m_PVRBounces: 2
49 | m_PVRMinBounces: 1
50 | m_PVREnvironmentMIS: 1
51 | m_PVRFilteringMode: 1
52 | m_PVRDenoiserTypeDirect: 1
53 | m_PVRDenoiserTypeIndirect: 1
54 | m_PVRDenoiserTypeAO: 1
55 | m_PVRFilterTypeDirect: 0
56 | m_PVRFilterTypeIndirect: 0
57 | m_PVRFilterTypeAO: 0
58 | m_PVRFilteringGaussRadiusDirect: 1
59 | m_PVRFilteringGaussRadiusIndirect: 5
60 | m_PVRFilteringGaussRadiusAO: 2
61 | m_PVRFilteringAtrousPositionSigmaDirect: 0.5
62 | m_PVRFilteringAtrousPositionSigmaIndirect: 2
63 | m_PVRFilteringAtrousPositionSigmaAO: 1
64 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/AdvancedDemoLightingSettings.lighting.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e44cb3a0a7bf3ca40b606fe9fd2123b6
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 4890085278179872738
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 80e8bb51c59c62b4d84d53de6aad6925
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Guard1.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: Guard1
14 | m_EditorClassIdentifier:
15 | Name: Village guard Idwal
16 | voiceId: 110
17 | Persona: 'I like being a guard in a small village because its safe.
18 |
19 | I like
20 | drinking a lot.
21 |
22 | I don''t like to do work.'
23 | testLocation: {fileID: 0}
24 | testCharacter: {fileID: 0}
25 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Guard1.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 41bd9c791edf3514c894875cad46693c
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Guard2.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: Guard2
14 | m_EditorClassIdentifier:
15 | Name: Village guard Mael
16 | voiceId: 111
17 | Persona: 'I like being a guard in a small village because its safe.
18 |
19 | I like
20 | drinking a lot.
21 |
22 | I don''t like to do work.'
23 | testLocation: {fileID: 0}
24 | testCharacter: {fileID: 0}
25 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Guard2.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: a927f41f844df5e48b8001d70a61efc9
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Poorman.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: Poorman
14 | m_EditorClassIdentifier:
15 | Name: Poorman Teilo
16 | voiceId: 109
17 | Persona: 'I am a drunkard.
18 |
19 | I barely have money to survive.
20 |
21 | I do any work
22 | just to get a drink.
23 |
24 | Sometimes I steal to get a drink.'
25 | testLocation: {fileID: 0}
26 | testCharacter: {fileID: 0}
27 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Poorman.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4b43d847cf921e5459421bf917490cbb
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Tavernkeeper.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: Tavernkeeper
14 | m_EditorClassIdentifier:
15 | Name: Tavernkeeper Gawain
16 | voiceId: 107
17 | Persona: 'I own a tavern called "Windy Place".
18 |
19 | I am rude with customers.
20 |
21 | I
22 | sell beer and food.'
23 | testLocation: {fileID: 0}
24 | testCharacter: {fileID: 0}
25 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Tavernkeeper.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 745a07649277b644caa66d17eaade8bc
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Traveller.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: Traveller
14 | m_EditorClassIdentifier:
15 | Name: Traveller
16 | Persona: 'I travel the world
17 |
18 | Nobody knows me
19 |
20 | My clothes are dirty and
21 | rough'
22 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/Traveller.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 2b6c1ac40264439408a38a25b085aa0f
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElder.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: VillageElder
14 | m_EditorClassIdentifier:
15 | Name: Village Elder Crowford
16 | voiceId: 23
17 | Persona: 'I am an elder of Mournstead village.
18 |
19 | I have two sons and a loving
20 | wife.
21 |
22 | I am old and wise.
23 |
24 | I don''t want my younger son to go on the
25 | adventure.'
26 | testLocation: {fileID: 0}
27 | testCharacter: {fileID: 0}
28 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElder.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3eed93491ea63254b9058b384e0be5d4
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElderSon.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: VillageElderSon
14 | m_EditorClassIdentifier:
15 | Name: Village Elder's son Brice
16 | voiceId: 114
17 | Persona: 'I am an older son of a village elder.
18 |
19 | I like to use my fathers power.
20 |
21 | I
22 | like it here.'
23 | testLocation: {fileID: 0}
24 | testCharacter: {fileID: 0}
25 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElderSon.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c81071cedf2b1e443bf29325ef28c630
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElderSon2.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: f5cd5916f5a50814e8db8fb86e73b2c9, type: 3}
13 | m_Name: VillageElderSon2
14 | m_EditorClassIdentifier:
15 | Name: Village Elder's son Conwy
16 | voiceId: 34
17 | Persona: 'I am a younger son of a village elder.
18 |
19 | I hate this village.
20 |
21 | I
22 | want to go on an adventure.'
23 | testLocation: {fileID: 0}
24 | testCharacter: {fileID: 0}
25 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Characters/VillageElderSon2.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: e84153344d993674f9aebdf76b2bee03
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Locations.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 53ecfeeeb4c28e547961f527b92adb9c
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Locations/MournsteadVillage.asset:
--------------------------------------------------------------------------------
1 | %YAML 1.1
2 | %TAG !u! tag:unity3d.com,2011:
3 | --- !u!114 &11400000
4 | MonoBehaviour:
5 | m_ObjectHideFlags: 0
6 | m_CorrespondingSourceObject: {fileID: 0}
7 | m_PrefabInstance: {fileID: 0}
8 | m_PrefabAsset: {fileID: 0}
9 | m_GameObject: {fileID: 0}
10 | m_Enabled: 1
11 | m_EditorHideFlags: 0
12 | m_Script: {fileID: 11500000, guid: e8769e9e1ba015c4fa2866e19690d115, type: 3}
13 | m_Name: MournsteadVillage
14 | m_EditorClassIdentifier:
15 | Name: Mournstead village
16 | Description: "A small mountain village. \nThe air is fresh, birds are chirping
17 | and the weather is great."
18 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Locations/MournsteadVillage.asset.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0ada7c2e7e18fec47b92a5a5d54c19d3
3 | NativeFormatImporter:
4 | externalObjects: {}
5 | mainObjectFileID: 11400000
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Prefabs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: fc0759105624f9d4799c28b4eaf2825b
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Prefabs/DialogueUI.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: b53d5867f2e10e045bd57e62a3fa7b1c
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Prefabs/NPC.prefab.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 578a280f62951e64aa6f6c2923d79162
3 | PrefabImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/README.md:
--------------------------------------------------------------------------------
1 | # Advanced Demo
2 |
3 | [Advanced Demo](https://npc-engine.github.io/npc-engine-unity/tutorials/advanced_demo.html) shows how higher-level components work and how to integrate NPC Engine into your game.
4 |
5 | ## Dependencies
6 | - Advanced demo scene requires these free asset store packages:
7 | - [VIDE dialogues](https://assetstore.unity.com/packages/tools/ai/vide-dialogues-69932)
8 | - [Modular First Person Controller](https://assetstore.unity.com/packages/3d/characters/modular-first-person-controller-189884)
9 | - [Low Poly Modular Armours](https://assetstore.unity.com/packages/3d/characters/lowpoly-modular-armors-free-pack-199890)
10 | - [RPG Poly Pack - Lite](https://assetstore.unity.com/packages/3d/environments/landscapes/rpg-poly-pack-lite-148410)
11 | - You also need to import VIDE Dialogues Integration from `NPC Engine/Integrations` folder
12 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/README.md.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 4bba4c74e74502748950ddfd93f6bd68
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 7485ef9255a89a8438c06a72503b4c57
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 375c4ae078415a3488dfb9f4e3288d1f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Guard.json:
--------------------------------------------------------------------------------
1 | {"dID":15627,"playerDiags":5,"actionNodes":0,"startPoint":0,"loadTag":"","previewPanning":false,"autosave":true,"locEdit":false,"showSettings":true,"pd_isp_0":false,"pd_rect_0":[-1050,160],"pd_comSize_0":1,"pd_ID_0":0,"pd_pTag_0":"","pd_sprite_0":"","pd_expand_0":false,"pd_vars0":0,"pd_0_com_0iSet":0,"pd_0_com_0oAns":1,"pd_0_com_0oAct":-1,"pd_0_com_0text":"Huh, what do you want?","pd_0_com_0extraD":"ExtraData","pd_0_com_0showmore":false,"pd_0_com_0visible":true,"pd_0_com_0audio":"","pd_0_com_0sprite":"","pd_isp_1":true,"pd_rect_1":[-670,100],"pd_comSize_1":11,"pd_ID_1":1,"pd_pTag_1":"","pd_sprite_1":"","pd_expand_1":false,"pd_vars1":0,"pd_1_com_0iSet":1,"pd_1_com_0oAns":2,"pd_1_com_0oAct":-1,"pd_1_com_0text":"[Bandits on the road]Is there any bandits?","pd_1_com_0extraD":"ExtraData","pd_1_com_0showmore":false,"pd_1_com_0visible":true,"pd_1_com_0audio":"","pd_1_com_0sprite":"","pd_1_com_1iSet":1,"pd_1_com_1oAns":2,"pd_1_com_1oAct":-1,"pd_1_com_1text":"[Bandits on the road]Is it safe to travel?","pd_1_com_1extraD":"ExtraData","pd_1_com_1showmore":false,"pd_1_com_1visible":true,"pd_1_com_1audio":"","pd_1_com_1sprite":"","pd_1_com_2iSet":1,"pd_1_com_2oAns":2,"pd_1_com_2oAct":-1,"pd_1_com_2text":"[Bandits on the road]Are these roads safe?","pd_1_com_2extraD":"ExtraData","pd_1_com_2showmore":false,"pd_1_com_2visible":true,"pd_1_com_2audio":"","pd_1_com_2sprite":"","pd_1_com_3iSet":1,"pd_1_com_3oAns":4,"pd_1_com_3oAct":-1,"pd_1_com_3text":"[Job]I am looking for work","pd_1_com_3extraD":"ExtraData","pd_1_com_3showmore":false,"pd_1_com_3visible":true,"pd_1_com_3audio":"","pd_1_com_3sprite":"","pd_1_com_4iSet":1,"pd_1_com_4oAns":4,"pd_1_com_4oAct":-1,"pd_1_com_4text":"[Job]Does anyone need help around here?","pd_1_com_4extraD":"ExtraData","pd_1_com_4showmore":false,"pd_1_com_4visible":true,"pd_1_com_4audio":"","pd_1_com_4sprite":"","pd_1_com_5iSet":1,"pd_1_com_5oAns":4,"pd_1_com_5oAct":-1,"pd_1_com_5text":"[Job]Is there any jobs here?","pd_1_com_5extraD":"ExtraData","pd_1_com_5showmore":false,"pd_1_com_5visible":true,"pd_1_com_5audio":"","pd_1_com_5sprite":"","pd_1_com_6iSet":1,"pd_1_com_6oAns":-1,"pd_1_com_6oAct":-1,"pd_1_com_6text":"[]Bye","pd_1_com_6extraD":"ExtraData","pd_1_com_6showmore":false,"pd_1_com_6visible":true,"pd_1_com_6audio":"","pd_1_com_6sprite":"","pd_1_com_7iSet":1,"pd_1_com_7oAns":-1,"pd_1_com_7oAct":-1,"pd_1_com_7text":"[]See you later","pd_1_com_7extraD":"ExtraData","pd_1_com_7showmore":false,"pd_1_com_7visible":true,"pd_1_com_7audio":"","pd_1_com_7sprite":"","pd_1_com_8iSet":1,"pd_1_com_8oAns":3,"pd_1_com_8oAct":-1,"pd_1_com_8text":"[Villare Elder] Where can I find village elder","pd_1_com_8extraD":"ExtraData","pd_1_com_8showmore":false,"pd_1_com_8visible":true,"pd_1_com_8audio":"","pd_1_com_8sprite":"","pd_1_com_9iSet":1,"pd_1_com_9oAns":3,"pd_1_com_9oAct":-1,"pd_1_com_9text":"[Villare Elder] I am looking for the village elder","pd_1_com_9extraD":"ExtraData","pd_1_com_9showmore":false,"pd_1_com_9visible":true,"pd_1_com_9audio":"","pd_1_com_9sprite":"","pd_1_com_10iSet":1,"pd_1_com_10oAns":3,"pd_1_com_10oAct":-1,"pd_1_com_10text":"[Villare Elder] Where is the elder of this village","pd_1_com_10extraD":"ExtraData","pd_1_com_10showmore":false,"pd_1_com_10visible":true,"pd_1_com_10audio":"","pd_1_com_10sprite":"","pd_isp_2":false,"pd_rect_2":[-110,30],"pd_comSize_2":1,"pd_ID_2":2,"pd_pTag_2":"","pd_sprite_2":"","pd_expand_2":false,"pd_vars2":0,"pd_2_com_0iSet":2,"pd_2_com_0oAns":1,"pd_2_com_0oAct":-1,"pd_2_com_0text":"No bandits were seen around here","pd_2_com_0extraD":"ExtraData","pd_2_com_0showmore":false,"pd_2_com_0visible":true,"pd_2_com_0audio":"","pd_2_com_0sprite":"","pd_isp_3":false,"pd_rect_3":[-80,170],"pd_comSize_3":1,"pd_ID_3":3,"pd_pTag_3":"","pd_sprite_3":"","pd_expand_3":false,"pd_vars3":0,"pd_3_com_0iSet":3,"pd_3_com_0oAns":1,"pd_3_com_0oAct":-1,"pd_3_com_0text":"Village elder and his sons are infront of the house with a cart.","pd_3_com_0extraD":"ExtraData","pd_3_com_0showmore":false,"pd_3_com_0visible":true,"pd_3_com_0audio":"","pd_3_com_0sprite":"","pd_isp_4":false,"pd_rect_4":[-140,370],"pd_comSize_4":1,"pd_ID_4":4,"pd_pTag_4":"","pd_sprite_4":"","pd_expand_4":false,"pd_vars4":0,"pd_4_com_0iSet":4,"pd_4_com_0oAns":1,"pd_4_com_0oAct":-1,"pd_4_com_0text":"Village elder is looking for someone to travel to town for him.","pd_4_com_0extraD":"ExtraData","pd_4_com_0showmore":false,"pd_4_com_0visible":true,"pd_4_com_0audio":"","pd_4_com_0sprite":""}
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Guard.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d1724eefd4eef4d47a1b3fee9a452bb3
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Placeholder.json:
--------------------------------------------------------------------------------
1 | {"dID":84360,"playerDiags":1,"actionNodes":0,"startPoint":0,"loadTag":"","previewPanning":false,"autosave":true,"locEdit":false,"showSettings":true,"pd_isp_0":true,"pd_rect_0":[-850,190],"pd_comSize_0":1,"pd_ID_0":0,"pd_pTag_0":"","pd_sprite_0":"","pd_expand_0":false,"pd_vars0":0,"pd_0_com_0iSet":-1,"pd_0_com_0oAns":-1,"pd_0_com_0oAct":-1,"pd_0_com_0text":"","pd_0_com_0extraD":"ExtraData","pd_0_com_0showmore":false,"pd_0_com_0visible":true,"pd_0_com_0audio":"","pd_0_com_0sprite":""}
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Placeholder.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 94132a107cad1784489415945b0ef09f
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Tavernkeeper.json:
--------------------------------------------------------------------------------
1 | {"dID":437,"playerDiags":4,"actionNodes":0,"startPoint":0,"loadTag":"","previewPanning":false,"autosave":true,"locEdit":false,"showSettings":true,"pd_isp_0":false,"pd_rect_0":[-2670,-220],"pd_comSize_0":1,"pd_ID_0":0,"pd_pTag_0":"","pd_sprite_0":"","pd_expand_0":false,"pd_vars0":0,"pd_0_com_0iSet":0,"pd_0_com_0oAns":1,"pd_0_com_0oAct":-1,"pd_0_com_0text":"Yes? What do you want?","pd_0_com_0extraD":"ExtraData","pd_0_com_0showmore":false,"pd_0_com_0visible":true,"pd_0_com_0audio":"","pd_0_com_0sprite":"","pd_isp_1":true,"pd_rect_1":[-1720,-260],"pd_comSize_1":10,"pd_ID_1":1,"pd_pTag_1":"","pd_sprite_1":"","pd_expand_1":false,"pd_vars1":0,"pd_1_com_0iSet":1,"pd_1_com_0oAns":2,"pd_1_com_0oAct":-1,"pd_1_com_0text":"[Job]I am looking for work","pd_1_com_0extraD":"ExtraData","pd_1_com_0showmore":false,"pd_1_com_0visible":true,"pd_1_com_0audio":"","pd_1_com_0sprite":"","pd_1_com_1iSet":1,"pd_1_com_1oAns":2,"pd_1_com_1oAct":-1,"pd_1_com_1text":"[Job]Does anyone need help around here?","pd_1_com_1extraD":"ExtraData","pd_1_com_1showmore":false,"pd_1_com_1visible":true,"pd_1_com_1audio":"","pd_1_com_1sprite":"","pd_1_com_2iSet":1,"pd_1_com_2oAns":2,"pd_1_com_2oAct":-1,"pd_1_com_2text":"[Job]Is there any jobs here?","pd_1_com_2extraD":"ExtraData","pd_1_com_2showmore":false,"pd_1_com_2visible":true,"pd_1_com_2audio":"","pd_1_com_2sprite":"","pd_1_com_3iSet":1,"pd_1_com_3oAns":2,"pd_1_com_3oAct":-1,"pd_1_com_3text":"[Job]I am looking for work","pd_1_com_3extraD":"ExtraData","pd_1_com_3showmore":false,"pd_1_com_3visible":true,"pd_1_com_3audio":"","pd_1_com_3sprite":"","pd_1_com_4iSet":1,"pd_1_com_4oAns":2,"pd_1_com_4oAct":-1,"pd_1_com_4text":"[Job]Does anyone need help around here?","pd_1_com_4extraD":"ExtraData","pd_1_com_4showmore":false,"pd_1_com_4visible":true,"pd_1_com_4audio":"","pd_1_com_4sprite":"","pd_1_com_5iSet":1,"pd_1_com_5oAns":2,"pd_1_com_5oAct":-1,"pd_1_com_5text":"[Job]Is there any jobs here?","pd_1_com_5extraD":"ExtraData","pd_1_com_5showmore":false,"pd_1_com_5visible":true,"pd_1_com_5audio":"","pd_1_com_5sprite":"","pd_1_com_6iSet":1,"pd_1_com_6oAns":3,"pd_1_com_6oAct":-1,"pd_1_com_6text":"[Looking for village elder]I am looking for village elder","pd_1_com_6extraD":"ExtraData","pd_1_com_6showmore":false,"pd_1_com_6visible":true,"pd_1_com_6audio":"","pd_1_com_6sprite":"","pd_1_com_7iSet":1,"pd_1_com_7oAns":3,"pd_1_com_7oAct":-1,"pd_1_com_7text":"[Looking for village elder]Where can I find village elder","pd_1_com_7extraD":"ExtraData","pd_1_com_7showmore":false,"pd_1_com_7visible":true,"pd_1_com_7audio":"","pd_1_com_7sprite":"","pd_1_com_8iSet":1,"pd_1_com_8oAns":-1,"pd_1_com_8oAct":-1,"pd_1_com_8text":"[]Bye","pd_1_com_8extraD":"ExtraData","pd_1_com_8showmore":false,"pd_1_com_8visible":true,"pd_1_com_8audio":"","pd_1_com_8sprite":"","pd_1_com_9iSet":1,"pd_1_com_9oAns":-1,"pd_1_com_9oAct":-1,"pd_1_com_9text":"[]See you later","pd_1_com_9extraD":"ExtraData","pd_1_com_9showmore":false,"pd_1_com_9visible":true,"pd_1_com_9audio":"","pd_1_com_9sprite":"","pd_isp_2":false,"pd_rect_2":[-1800,-610],"pd_comSize_2":1,"pd_ID_2":2,"pd_pTag_2":"","pd_sprite_2":"","pd_expand_2":false,"pd_vars2":0,"pd_2_com_0iSet":2,"pd_2_com_0oAns":1,"pd_2_com_0oAct":-1,"pd_2_com_0text":"Village elder is looking for someone to travel to town for him.","pd_2_com_0extraD":"ExtraData","pd_2_com_0showmore":false,"pd_2_com_0visible":true,"pd_2_com_0audio":"","pd_2_com_0sprite":"","pd_isp_3":false,"pd_rect_3":[-1200,-320],"pd_comSize_3":1,"pd_ID_3":4,"pd_pTag_3":"","pd_sprite_3":"","pd_expand_3":false,"pd_vars3":0,"pd_3_com_0iSet":3,"pd_3_com_0oAns":1,"pd_3_com_0oAct":-1,"pd_3_com_0text":"He is standing with his sons there across the village square.","pd_3_com_0extraD":"ExtraData","pd_3_com_0showmore":false,"pd_3_com_0visible":true,"pd_3_com_0audio":"","pd_3_com_0sprite":""}
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/Tavernkeeper.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 0e78aa73893f55f48a9616cad674fc8e
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Resources/Dialogues/VillageElder.json.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 11e10a9dfdf8b3a48b78c72d9c66a439
3 | TextScriptImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: c0542190a79afd34aa55c0049b371448
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Scripts/LerpRotate.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Collections.Generic;
3 | using UnityEngine;
4 |
5 | ///
6 | /// This script is used to rotate characters towards the camera during dialogue.
7 | ///
8 | public class LerpRotate : MonoBehaviour
9 | {
10 | public Vector3 axis;
11 | public Vector3 forward;
12 | public Transform target;
13 | public float speed = 1;
14 |
15 | public float threshold = 0.1f;
16 |
17 | private bool rotate = false;
18 |
19 | private void Start()
20 | {
21 | target = Camera.main.transform;
22 | }
23 |
24 | public void StartRotate()
25 | {
26 | rotate = true;
27 | }
28 |
29 | public void StopRotate()
30 | {
31 | rotate = false;
32 | }
33 |
34 |
35 | // Update is called once per frame
36 | void Update()
37 | {
38 | if (rotate)
39 | {
40 |
41 | Vector3 currentVector = transform.TransformVector(forward);
42 | var targetVector = target.position - transform.position;
43 | // Rotation between current vector and target vector around axis
44 | var projectedCurrentVector = Vector3.ProjectOnPlane(currentVector, axis);
45 | var projectedTargetVector = Vector3.ProjectOnPlane(targetVector, axis);
46 | float fromToAngle = Vector3.SignedAngle(projectedCurrentVector, projectedTargetVector, axis);
47 | if (fromToAngle > threshold)
48 | {
49 | transform.RotateAround(transform.position, axis, fromToAngle * speed * Time.deltaTime);
50 | }
51 | else if (fromToAngle < -threshold)
52 | {
53 | transform.RotateAround(transform.position, axis, fromToAngle * speed * Time.deltaTime);
54 | }
55 | }
56 | }
57 | }
58 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/AdvancedDemo/Scripts/LerpRotate.cs.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 033d0a586d1f4cf4aad0cbc289704f73
3 | MonoImporter:
4 | externalObjects: {}
5 | serializedVersion: 2
6 | defaultReferences: []
7 | executionOrder: 0
8 | icon: {instanceID: 0}
9 | userData:
10 | assetBundleName:
11 | assetBundleVariant:
12 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/BasicDemo.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 319043a9a67e41c4c8266b554b61970f
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/BasicDemo/Basic.unity.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: d70812f228915d24ca92ccf1deadef2e
3 | DefaultImporter:
4 | externalObjects: {}
5 | userData:
6 | assetBundleName:
7 | assetBundleVariant:
8 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/BasicDemo/Scripts.meta:
--------------------------------------------------------------------------------
1 | fileFormatVersion: 2
2 | guid: 3052401cee10f344a85b59fc17a949d5
3 | folderAsset: yes
4 | DefaultImporter:
5 | externalObjects: {}
6 | userData:
7 | assetBundleName:
8 | assetBundleVariant:
9 |
--------------------------------------------------------------------------------
/Assets/NPCEngine/Demo/BasicDemo/Scripts/ButtonDisableEnable.cs:
--------------------------------------------------------------------------------
1 | using System.Collections;
2 | using System.Linq;
3 | using NPCEngine.API;
4 | using NPCEngine.Components;
5 | using NPCEngine.Utility;
6 | using UnityEngine;
7 | using UnityEngine.UI;
8 |
9 | public class ButtonDisableEnable : MonoBehaviour
10 | {
11 | private Button button;
12 | public string serviceName;
13 | void Start()
14 | {
15 | button = gameObject.GetComponent