Since the V11 Gameplay Tag Update the Character Editor replaces EAnatomy and E_CDA_Collection enumerations with Anatomy and Collection gameplay tags. This affects numerous Blueprints that deal with Customization Data Assets.
The Gameplay Tags are used to group and filter for Customization Data Assets.
See Anatomies and Collections for usage details.
See Unreal Engine documentation about Gameplay Tags for in-depth details.
The Character Editor provides a CharacterEditorBase.ini that is restricted via DefaultGameplayTags.ini. If you have additional content, a second non-restricted CharacterEditor.ini is used.
The restricted base defines mandatory and the other one optional gameplay tags as described below.
The DefaultGameplayTags.ini defines a simple restriction rule for our base INI file. This simply protects you from accidentally deleting mandatory gameplay tags, without those the Character Editor product would not function.
[/Script/GameplayTags.GameplayTagsSettings]
ImportTagsFromConfig=True
+RestrictedConfigFiles=(RestrictedConfigName="CharacterEditorBase.ini",Owners=("Polyphoria"))
The CharacterEditorBase.ini defines the above-mentioned gameplay tags used for CDA assignment and filtering.
There are several namespaces of gameplay tags:
Namespace | Description |
---|---|
CharacterEditor | Base namespace of the product |
CharacterEditor.Anatomy | Used for Anatomies, e.g. CharacterEditor.Anatomy.Human.Female.Adult |
CharacterEditor.Anatomy.# | Special anatomy filters, e.g. CharacterEditor.Anatomy.#.Any |
CharacterEditor.Collection | Used for Collections, e.g. CharacterEditor.Collection.Default |
CharacterEditor.Collection.# | Special collection filters, e.g. CharacterEditor.Collection.#.Any |
CharacterEditor.Gender | Used to split anatomies, e.g. CharacterEditor.Gender.Female |
CharacterEditor.Generation | Used to split anatomies, e.g. CharacterEditor.Generation.Adult |
CharacterEditor.Race | Used to split anatomies, e.g. CharacterEditor.Race.Human |
Download CharacterEditorBase.ini
[/Script/GameplayTags.RestrictedGameplayTagsList]
; CharacterEditor
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor",DevComment="")
; CharacterEditor.Anatomy
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.#",DevComment="Only meant for grouping. Do not use directly, use child tags instead.")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.#.Any",DevComment="Filter for matching CDAs with ANY anatomy specified.")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.#.None",DevComment="Filter for matching CDAs with NO anatomy specified.")
; CharacterEditor.Anatomy.Human
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.Human",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.Human.Female.Adult",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.Human.Female.Child",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.Human.Male.Adult",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.Human.Male.Child",DevComment="")
; CharacterEditor.Anatomy.MetaHumanTalNRW
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.MetaHumanTalNRW",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.MetaHumanTalNRW.Female.Adult",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Anatomy.MetaHumanTalNRW.Male.Adult",DevComment="")
; CharacterEditor.Collection
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Collection",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Collection.#",DevComment="Only meant for grouping. Do not use directly, use child tags instead.")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Collection.#.Any",DevComment="Filter for matching CDAs with ANY collection specified.")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Collection.#.None",DevComment="Filter for matching CDAs with NO collection specified.")
; CharacterEditor.Collection.Default
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Collection.Default",DevComment="")
; CharacterEditor.Gender
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Gender",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Gender.Diverse",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Gender.Female",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Gender.Male",DevComment="")
; CharacterEditor.Generation
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Generation",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Generation.Adult",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Generation.Child",DevComment="")
; CharacterEditor.Race
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Race",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Race.Human",DevComment="")
RestrictedGameplayTagList=(bAllowNonRestrictedChildren=True,Tag="CharacterEditor.Race.MetaHumanTalNRW",DevComment="")
The CharacterEditor.ini extends the base gameplay tags, e.g. with your custom Anatomies and Collections or with tags that are required by other Character-Editor-compatible Polyphoria content.
If you have compatible Polyphoria content, you can copy required gameplay tags from the code below and paste them into your project's INI file, or directly create the gameplay tags inside the Unreal Engine, once you have added the new content to your project.
[/Script/GameplayTags.GameplayTagsList]
; CharacterEditor.Anatomy.Barbarian
GameplayTagList=(Tag="CharacterEditor.Anatomy.Barbarian",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Barbarian.Female",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Barbarian.Female.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Barbarian.Male",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Barbarian.Male.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Race.Barbarian",DevComment="")
; CharacterEditor.Anatomy.Dwarf
GameplayTagList=(Tag="CharacterEditor.Anatomy.Dwarf",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Dwarf.Female",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Dwarf.Female.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Dwarf.Male",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Dwarf.Male.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Race.Dwarf",DevComment="")
; CharacterEditor.Anatomy.Elf
GameplayTagList=(Tag="CharacterEditor.Anatomy.Elf",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Elf.Female",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Elf.Female.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Elf.Male",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Elf.Male.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Race.Elf",DevComment="")
; CharacterEditor.Anatomy.Orc
GameplayTagList=(Tag="CharacterEditor.Anatomy.Orc",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Orc.Female",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Orc.Female.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Orc.Male",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Anatomy.Orc.Male.Adult",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Race.Orc",DevComment="")
; CharacterEditor.Collection (Core Package Examples)
GameplayTagList=(Tag="CharacterEditor.Collection.EveningDress",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.MilitaryCitizenMix",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Sport",DevComment="")
; CharacterEditor.Collection (Other Polyphoria Content)
GameplayTagList=(Tag="CharacterEditor.Collection.AsianArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Barbarian",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Biker",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.CitizenNPC",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Cultist",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Druids",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Dwarves",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Elves",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.FantasyArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.HeavyArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Mage",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.MedievalArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.MedievalNPC",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Military",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.MixedMedievalHeavyArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.OrcArmour",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.PostApoSurvivor",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Rogue",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Samurai",DevComment="")
GameplayTagList=(Tag="CharacterEditor.Collection.Tribe",DevComment="")