Skip to main content

Getting Started

VoiceCulture is built with flexibility and editor tooling in mind. To get started, you'll need to configure the project-level and editor-level settings through Unreal's Developer Settings system.


1. Voice Culture Settings (Project)

The main configuration for runtime behavior is handled via the USSVoiceCultureSettings class, accessible through Project Settings > Voice Culture.

This is where you define the supported cultures, default fallback, and runtime culture preferences.

Available Properties

  • DefaultLanguageFallback
    The fallback culture to use when a localized voice is missing.
    Example: "en"

  • CurrentLanguage
    The current runtime language. Used to resolve which voice line to play. This can be updated at runtime (e.g., via UI or platform settings).

  • SupportedVoiceCultures
    A set of culture codes (e.g., "en", "fr", "ja") representing the languages supported by your game.

  • bUsePreviewLanguageInGame
    If enabled, the preview language (set below) will be used in PIE (Play In Editor) and runtime simulation. Useful for development testing.

  • PreviewLanguage
    The culture code used for previewing during development if the above option is enabled.

Example

Screenshot

[/Script/SSVoiceCulture.SSVoiceCultureSettings]
DefaultLanguage=en
bUsePreviewLanguageInGame=False
PreviewLanguage=fr
+SupportedVoiceCultures=en
+SupportedVoiceCultures=fr
+SupportedVoiceCultures=jp

2. Editor Settings (Per-User)

The editor-specific configuration is handled by USSVoiceCultureEditorSettings, available under Editor Preferences > Voice Editor Settings.

These settings are stored per user, allowing each team member to have independent configurations for workflows like auto-population and strategy profiles.

Available Properties

  • StrategyProfiles
    A list of custom profiles defining how voice assets are filtered, categorized, or named. Useful for tooling or batch imports.

  • ActiveVoiceProfileName
    The name of the currently active profile from the list above.

  • FallbackProfile
    A default profile used in case the active profile is invalid or missing.

  • bAutoSaveAfterAutoPopulate
    If enabled, the system will save voice assets automatically after a bulk operation (like auto-populate). Great for reducing manual steps.

  • bAutoPopulateOverwriteExisting
    Allows overwriting existing voice data when auto-populating assets.

Screenshot

3. Accessing the Settings in Code

You can access the project-level settings statically from anywhere in your code:

const USSVoiceCultureSettings* Settings = USSVoiceCultureSettings::GetSetting();
FString CurrentLang = Settings->GetCurrentLanguage();

To get the editor settings (for use in tools or custom editor workflows):

const USSVoiceCultureEditorSettings* EditorSettings = USSVoiceCultureEditorSettings::GetSetting();

If you need to modify the settings during runtime or editor scripts, use the mutable versions:

USSVoiceCultureSettings* MutableSettings = USSVoiceCultureSettings::GetMutableSetting();
MutableSettings->CurrentLanguage = TEXT("ja");
MutableSettings->SaveConfig();