LogoLogo
API Status
  • 👋Welcome
  • 🌐What is Morpheus Platform?
    • Interoperability
  • â„šī¸Help
    • 📗Glossary
    • 🆘Support
    • Firewall problems
    • EULA
  • CREATION
    • 🎮Unreal Development
      • ⚡Get Started
        • âš’ī¸Download the Editor
        • âĢUpload Content
        • 🌎Creating your own map
        • 📝Morpheus Base Project
        • ❓Differences from Unreal
          • 🧍Character Configuration
        • 📡Morpheus Networking
          • Introduction to Morpheus Networking
          • Network Levels
          • Replicated Properties
          • RPCs
          • Morpheus Render Targets
          • Morpheus Array
          • Networking FAQ
          • Replicating Sublevels
      • 📚Features & Guides
        • 📒Example Plugin
          • Nameplates
          • In-game roles
          • Resizing
        • 🏊Actor Pooling
        • 🔊Audio
        • 🎭Avatars
          • Creating an Avatar
          • Attachments
            • MML Attachments
          • Custom Animation Variables
          • Importing an NFT collection
          • Capsules and Mesh Transforms
        • 🤖Bots
        • đŸŽ™ī¸Chat
          • Unreal Text Chat
        • đŸŽ›ī¸Control Panels
          • Control Panel Configuration
          • DJ booth mission control
          • Observer Controls
        • 🔉Crowd Audio
        • đŸ¤ŧCrowd Rendering
          • Legacy Animated Crowd
            • Animated Crowd Console Commands
            • Attaching static meshes to crowd members
          • Crowd Materials
          • Performance Parameters
          • Live Config Settings
          • Crowd Animation
            • Crowd Anim Blueprint
              • User Guide - Crowd Anim Blueprint
              • Reference Guide - ABP Nodes
                • Animation Playback
                • States and State Machines
                • Variables
                • Transitions
                • Special
                • Blends
                • Additional Notes
        • 🍱Helpers & Extras
          • "Instanced Objects" in Blueprints
          • Objects with "world context"
          • Making DataAsset classes
          • Duplicate Objects
          • The Bootflow Subsystem
          • The "Wait For Condition" System
          • Advanced Graphics settings
          • Listening to inputs on UObjects
          • Morpheus UserID
          • World Services
          • M2Extras: Skins System
        • đŸ–Ĩī¸Loading Screen
        • ⚡Live Config
          • Editing for a World
          • Editing Locally
          • Default Settings
          • Accessing via Blueprint
          • Adding New Settings
          • Overriding Defaults
          • Using Arrays
        • 🧊MML
        • đŸ•ēMotion Capture
        • 📡Networking
        • đŸ“ĸNotifications
        • Raycastable Crowd
        • 🌐Singletons
        • 📱Streaming & Multiplatform
          • GFN on mobile
        • đŸ–Ĩī¸UI
          • "UI Mode"
        • đŸ—ƒī¸User Collections
          • Creating a New Object Definition
          • Accessing from Unreal
            • Creating Objects Definitions
            • Transfer Objects
            • User Collection Views
            • Receiving Updates
        • đŸ“ēVideo Players
          • Embedded Video Player
          • Millicast video streaming
            • How to Setup an In-Game Video Stream
            • Picture-in-Picture mode
          • Streaming Video Player
            • How to Setup a URL Video Player
            • Picture-in-Picture mode
        • 🐞Visual Debugging
          • Inspector
        • đŸĒŸWeb UI
        • Online Services
          • KV Store Service
        • 💠Web Requests
          • Http Requests
            • Legacy HTTP Nodes
          • JSON Handling
          • WebSockets
          • Identity Validation
          • Allowed External URLs
          • Walkthrough Example
            • Example Counter Service
        • âœˆī¸World Travel
          • World Travel in the editor
        • Avatar Physics Assets
        • Action Gameplay Helper Components
      • 🔑Workflows
        • â†—ī¸Upgrade the Editor
          • đŸ–Ĩī¸Version History
        • âš™ī¸Editing Project Settings
        • 📈Profiling
        • đŸ§ēMarketplace Importing
        • đŸ› ī¸Extra Workflows
          • Setup Play-in-Editor
          • Setup Local Asset Validation
          • Adding Gameplay Tags
          • Validating Game Assets
          • Custom Connection Modes
          • Connect Editor to a World
          • Common Issues
      • 📚Useful Reading
        • ⭐Best Practices
    • 🌎Worlds
      • 📩Invite Players
        • Setting Role Groups
      • Persistent Worlds
      • Always on Worlds
    • 📅Running events
      • ✅Large scale events - Checklist
      • 👾Anti-Cheat (EAC)
      • 🎮Player Entry
        • 📱React Native
        • Steam
        • đŸ’ģHardware Reqs
      • đŸŽĨBroadcast
        • 📹OBS Integration
      • Failover
      • 🏁Capacity And Queue Management
  • ADMINS
    • đŸ‘ĒAccess Control
      • Adding metaverse contributors
      • Creating a new project
    • 💲Pricing
      • Development Support
      • Included Usage & Overages
      • Cloud Streaming
      • Access Modes
      • War Room Support
      • Platform SLA
    • âš™ī¸Settings
      • đŸ—ƒī¸Projects
  • APIs and Tooling
    • đŸ–Ĩī¸API Reference
      • Accounts
      • Events
      • Key/Value Store
      • Organizations
      • Realtime
      • User Profile
      • World Builder
      • Worlds
    • đŸ’ģTemplate Web App
      • đŸ’ĸModeration
    • Pixel Streaming
    • 🚀Launcher
  • Integrations
    • 📊Analytics
      • Sending events from web
      • 🎮Sending Events from Unreal
    • đŸ’ŦChat
      • 🎮Integrating Pubnub with your Unreal Project
      • Adding Moderation to Chat
Powered by GitBook
On this page
  • Implementation
  • Creating new emotes
  • Configuration
  • Enabling/Disabling Emotes for a role
  • Changing settings at runtime
  • Blueprint functions
  • Live Config Settings
  • Debugging in Editor

Was this helpful?

  1. CREATION
  2. Unreal Development
  3. Features & Guides

Emotes

Last updated 3 months ago

Was this helpful?

Due for Simplification, please speak to support for further info.

31/10/2024: Our Emotes system is a layer built on top of other functionality that enables anim montages to be played in Foreground and Crowd rendering levels. We are planning to simplify this approach and better expose the underlying API.

Support for the Emote system will decrease as we are treating it as an example of functionality rather than a feature in itself.

As part of the simplification, we will be removing Super Emotes from the platform.

MSquared will not be addressing cosmetic issues (such as those in the Emote wheel itself) going forward, but will be ensuring the emotes themselves still function correctly.

Emotes are enabled by default and are accessed by players pressing B and clicking an icon.

Implementation

The main implementationof emotes is in JM_PlayerEmoteComponent

Other key classes include:

  • Emote Selection can be overridden at runtime via Blueprint on the JM_PlayerEmoteComponent

Creating new emotes

Emotes are configured by creating a Primary Data Asset of the type J_EmotePrimaryAsset.

These emotes can then be added to the default selection set on the role component or set as overrides at runtime.

Configuration

Enabling/Disabling Emotes for a role

  1. In your editor, enable Emotes Enabled in the Role Configuration Overrides section of the Role Configuration section of the roles data table to expose it.

  2. Change the Emotes Enabled setting to true or false to enable or disable emotes for this role

Configuring Default Emote Selection

  1. In your editor, enable Emote Selection in the Role Configuration Overrides section of the Role Configuration section of the roles data table to expose it.

  2. Assign a J_EmoteSelectionData asset to the Emote Selection setting.

By default these emotes are available:

Field
Description

Profile as Emote

Emote used to show the Player's profile picture

Pick Me Emote

This emote is used in place of the Player's profile picture when Profile as Emote is disabled via the live config flag Profile.ProfileAsEmoteEnabled

Emotes

This is an array containing all other emotes. To use the default WBP_EmoteSelector UI, this must be 7 elements long.

Changing settings at runtime

Blueprint functions

Emote Selection can be changed at runtime by calling the following functions on the JM_PlayerEmoteComponent:

  • OverrideEmotesEnabled

  • OverrideEmoteSelectionSlotAtIndex

  • OverrideEmoteSelectionSetFromAsset

  • OverrideProfileAsEmote

  • OverridePickMeEmote

Overrides can be cleared with the following functions:

  • ClearEmotesEnabledOverride

  • ClearAllEmoteSelectionOverrides

  • ClearEmoteSelectionOverrideAtIndex

  • ClearProfileAsEmoteOverride

  • ClearPickMeEmoteOverride

Live Config Settings

All emote settings live in game.json

Key
Default Value
Description

Emotes.Enabled

true

Project wide setting to enable/disable emotes

Emotes.EmoteWheelEnabled

true

Project wide setting to enable/disable the emote wheel UI

Emotes.ClearEmoteSelectionOverridesOnRoleChanged

false

Setting to optionally clear all override settings on role changes.

Emotes.MaxObjectPoolSize

20

Max number of Emote objects to pool.

Emotes.MaxSoundDistance

5000.0

Max distance for emote sounds to be heard

Debugging in Editor

Console commands are available for all of the above functions to test functionality:

  • M2.Emotes.OverrideEmotesEnabled [bool Enabled] - Overrides Emotes enabled

  • M2.Emotes.OverrideEmoteSelectionSlotAtIndex [Index Emote Name] - Overrides an emote slot at Index with the given Emote Primary Asset name e.g. M2.Emotes.OverrideEmoteSelectionSlotAtIndex 5 PDA_Emote_Icon_ThumbsUp

  • M2.Emotes.OverrideEmoteSelectionSetFromAsset [Emote Selection Asset Name] - Overrides all emotes with the given Emote selection asset name e.g. DA_EmoteSelection_Default

  • M2.Emotes.OverrideProfileAsEmote [Emote Name] - Overrides the Profile As Emote slot with the given Emote Primary Asset name e.g. PDA_Emote_Icon_ThumbsUp

  • M2.Emotes.OverridePickMeEmote [Emote Name] - Overrides the Pick Me Emote slot with the given Emote Primary Asset name e.g. PDA_Emote_Icon_ThumbsUp

  • M2.Emotes.ClearAllEmoteSelectionOverrides - Clears all emote selection overrides

  • M2.Emotes.ClearEmoteSelectionOverrideAtIndex [Index] - Clears emote selection override in slot with the given Index

  • M2.Emotes.ClearProfileAsEmoteOverride - Clears the Profile As Emote override

  • M2.Emotes.ClearPickMeEmoteOverride - Clears the Pick Me Emote override

Emote Selection - The set of emotes that appear in the Emote Wheel UI (WBP_EmoteSelector) are configured via the using the Emote Selection property.

Emotes can be disabled per game role in your project's by:

You can configure which emotes are available in your experience in your project's by:

🎮
📚
👍
Roles table
roles data table
roles data table
Emotes in use in a test gym
Clap Emote settings example
Emote Selection Setting on the Role
Emote Selection settings