Files
metaverseDubai/docs/NPC_DIALOGUE.md

6.9 KiB

NPC Dialogue System - Dubai Metaverse

Overview

This document describes the ChatGPT-powered dynamic dialogue system for NPCs in the Dubai Metaverse project (optional feature).

System Architecture

Overview

The dialogue system integrates ChatGPT API to generate dynamic, context-aware dialogue for NPCs, allowing for natural conversations with players.

Components

  1. BP_DialogueSystem: Main dialogue system blueprint
  2. API Integration: ChatGPT API client
  3. Dialogue Handler: Handles dialogue requests and responses
  4. NPC Integration: Integrates with NPC behavior system

ChatGPT API Integration

API Setup

  1. API Key: Obtain ChatGPT API key from OpenAI
  2. Secure Storage: Store API key securely (environment variable, not in repository)
  3. API Client: Create API client in blueprint or C++
  4. Configuration: Configure API endpoint and settings

API Configuration

  • Model: GPT-3.5-turbo or GPT-4
  • Temperature: 0.7-0.9 (creative but coherent)
  • Max Tokens: 100-200 (concise responses)
  • System Prompt: Define NPC personality and context

Dialogue System Blueprint

BP_DialogueSystem

Main dialogue system controller

Functions

RequestDialogue

  • Purpose: Request dialogue from ChatGPT
  • Input: Player message, NPC context
  • Output: Generated dialogue response
  • Implementation: API call to ChatGPT

ProcessResponse

  • Purpose: Process API response
  • Input: API response
  • Output: Formatted dialogue
  • Implementation: Parse and format response

GetNPCContext

  • Purpose: Get NPC context for dialogue
  • Input: NPC reference
  • Output: NPC context (name, location, personality)
  • Implementation: Gather NPC information

NPC Context

Context Information

NPC Identity

  • Name: NPC name
  • Role: NPC role (tourist, resident, business person)
  • Personality: Personality traits
  • Background: Background information

Location Context

  • Current Location: Where NPC is located
  • District: Dubai Marina
  • Landmarks: Nearby landmarks
  • Activities: Current activities

Conversation Context

  • Previous Messages: Conversation history
  • Topic: Current conversation topic
  • Mood: NPC mood/emotional state

System Prompts

NPC Personality Prompts

Example: Tourist NPC

You are a tourist visiting Dubai Marina. You are friendly, curious, and excited about Dubai. 
You speak in a casual, enthusiastic manner. Keep responses brief (1-2 sentences). 
You know about Dubai Marina, Cayan Tower, and the luxury lifestyle in Dubai.

Example: Resident NPC

You are a resident of Dubai Marina. You are knowledgeable about the area, professional, 
and helpful. You speak in a friendly but professional manner. Keep responses brief (1-2 sentences). 
You know about local restaurants, shops, and the Marina lifestyle.

Example: Business Person NPC

You are a business person in Dubai. You are professional, busy, and focused. 
You speak in a professional, concise manner. Keep responses brief (1-2 sentences). 
You know about business in Dubai, the financial district, and professional services.

Dialogue Flow

Player Interaction

  1. Player Approaches NPC: Player interacts with NPC
  2. Dialogue UI: Dialogue UI appears
  3. Player Input: Player types or selects message
  4. Dialogue Request: System requests dialogue from ChatGPT
  5. NPC Response: NPC speaks generated dialogue
  6. Continuation: Conversation continues

Implementation

  1. Interaction System: Use interaction system to trigger dialogue
  2. UI Widget: Create dialogue UI widget
  3. API Call: Make API call to ChatGPT
  4. Response Processing: Process and display response
  5. Audio: Play NPC voice (optional, text-to-speech)

API Integration Script

npc_dialogue_api.py

Python script for API integration (optional)

Functions

  • send_dialogue_request: Send request to ChatGPT API
  • process_response: Process API response
  • format_dialogue: Format dialogue for display

Usage

  • Standalone: Run as standalone service
  • Integration: Integrate with Unreal via HTTP requests
  • Caching: Cache responses for performance

Performance Considerations

Optimization

  1. Caching: Cache common responses
  2. Rate Limiting: Limit API calls per NPC
  3. Response Time: Optimize for quick responses
  4. Fallback: Fallback to pre-written dialogue if API fails

Cost Management

  1. API Costs: Monitor API usage and costs
  2. Token Limits: Limit tokens per request
  3. Request Frequency: Limit request frequency
  4. Caching: Cache responses to reduce API calls

Security

API Key Security

  • Never Commit: Never commit API keys to repository
  • Environment Variables: Use environment variables
  • Secure Storage: Store keys securely
  • Access Control: Limit access to API keys

Input Validation

  • Sanitize Input: Sanitize player input
  • Length Limits: Limit input length
  • Content Filtering: Filter inappropriate content

Testing

Dialogue Testing

  1. Quality: Test dialogue quality
  2. Context: Test context awareness
  3. Personality: Test NPC personality consistency
  4. Response Time: Test response time

Integration Testing

  1. NPC Integration: Test with NPC system
  2. UI Integration: Test with dialogue UI
  3. Performance: Test performance impact
  4. Error Handling: Test error handling

Fallback System

Pre-Written Dialogue

Fallback if API unavailable

  • Greetings: Pre-written greetings
  • Common Responses: Common response templates
  • Topics: Pre-written dialogue for common topics

Implementation

  1. Dialogue Database: Store pre-written dialogue
  2. Topic Matching: Match player input to topics
  3. Response Selection: Select appropriate response
  4. Fallback Trigger: Trigger fallback if API fails

Troubleshooting

Common Issues

Issue: API not responding

  • Solution: Check API key and connection
  • Solution: Implement fallback system
  • Solution: Check rate limits

Issue: Dialogue quality poor

  • Solution: Refine system prompts
  • Solution: Adjust temperature settings
  • Solution: Improve context information

Issue: Response time too slow

  • Solution: Implement caching
  • Solution: Optimize API calls
  • Solution: Use faster API model

Documentation

API Documentation

Document API integration:

  • API setup
  • Configuration
  • Usage
  • Error handling

Dialogue Documentation

Document dialogue system:

  • NPC personalities
  • Context information
  • System prompts
  • Usage examples

Version: 1.0 Last Updated: [Current Date]

Note: This is an optional feature. The project can function without ChatGPT integration using pre-written dialogue or no dialogue system.