Skip to content

Exporting a Player Character Model

Adam Graves edited this page Jul 5, 2023 · 1 revision

This feature allows you to export a glTF model of a player character model with customized equipment. If you ever wanted a 3D model of your (classic) EverQuest character how they looked in game with the equipment they were wearing, this can do that for you.

What doesn't work/export:

  • Weapon animations (bow, whip, several epics) - this can potentially be addressed in a future update
  • Particles

1. Set relevant settings in 'settings.txt':

EverQuestDirectory - just like for all other Extractor functions you'll need a local copy of the EQ Trilogy client

ServerDatabasePath - if you want to be able to lookup equipment by name, you'll need to set this. See Setting Up a Database Connection

ExportAllAnimationFrames and ExportedAnimationTypes - whether or not you want animations included in your model, and if so, which types to include.

ExportGltfInGlbFormat - when false, it produces a .gltf file, .bin, and associated texture images separate. When true, the model is packaged as a single .glb file.

2. Set up player equipment json

In the same directory as the Extractor, there is a file named PcEquip.json. Edit this file in a text editor (something like VS Code works well so you can get syntax highlighting/formatting). When you are done, you can overwrite the existing PcEquip.json or save it as a new file. The properties include:

Face - an integer ranging from 0 to 7. Each number represents the different face+hair combinations that were chosen at character creation.

RaceGender - three letter identifier for the player character's race and gender. Possible values: "BAF", "BAM", "DAF", "DAM", "DWF", "DWM", "ELF", "ELM", "ERF", "ERM", "GNF", "GNM", "HAF", "HAM", "HIF", "HIM", "HOF", "HOM", "HUF", "HUM", "IKF", "IKM", "OGF", "OGM", "TRF", "TRM"

Primary Name, Secondary Name, and Name properties: These are optional. If present, a lookup will be done in the database for an item that starts with the provided name that can be worn in the corresponding slot. The one exception to the slot restriction is that equipment that is Primary slot only can also be put into the Secondary slot. If multiple items are found that meet the criteria, the first result is chosen. Note that the database is quite inconsistent with its use of apostrophes (sometimes they're backticks, sometimes they're omitted, even when other items in a set include it). If you know that, for a given slot, no other item starts with that name, use a shortened version in the Name property that stops before the apostrophe. E.g. Elder Spiritist instead of Elder Spiritist's Breastplate.

Primary ID and Secondary ID: You can provide the identifier for held equipment if you know it. In the database, this is items.idfile. It will start with IT and end with a number. E.g. Blackened Alloy Bastard Sword is IT58, Aegis of Life is IT205, Enchanter epic is IT157... Primary Name and Secondary Name will be ignored if their respective IDs are present.

Each piece of worn equipment has its own Name, Material, and Color properties. Head also has an additional Velious boolean property. When true, the exported character will be wearing their respective race+gender's Velious Custom helm. If Name is not blank, the Material and Color will be overidden by the item in the database based on the provided Name.

Material - an integer that represents the material of worn equipment. Typically:

  • 0 is None/cloth
  • 1 is Leather
  • 2 is Chain
  • 3 is Plate
  • 4 is Monk
  • 10 - 16 are Robe textures. (Chest only)
  • 17 - 23 are Velious armor.

Color - Color for tinted armor. This can be represented as a color name (E.g. red or green), a 6 character hex string, prefixed with a # (like CSS color values) or by a decimal value, which is how they're stored in the database. Leave it as null for untinted.

3. Run the extractor with the "pc" argument

Open a command-line prompt in the same directory as the LanternExtractor.exe. If you only use the pc argument, the exporter will reference the PcEquip.json in the same directory. Alternatively, you can also provide a path to your own json file. If you're using cmd the command to run will look like:
lanternextractor pc or lanternextractor pc MyCustomPcEquip.json In PowerShell:
.\lanternextractor pc or .\lanternextractor pc MyCustomPcEquip.json

Extracted character models will go in the Exports folder. If you specified your own json file, it will create a folder with that filename. Alternatively, it will use the RaceGender code. Additionally, a copy of the json with a timestamp in the name will be created. If any items were queried from the database, the related data will be printed from the corresponding query results.

Example

For more, see Examples

Given a PcEquip.json with the following content:

{
  "Face": 4,
  "RaceGender": "IKM",
  "Primary ID": "",
  "Primary Name": "Sceptre of Destruction",
  "Secondary ID": "IT145",
  "Secondary Name": "",
  "Head": {
    "Name": "",
    "Material": 2,
    "Color": "Blue",
    "Velious": false,
  },
  "Wrist": {
    "Name": "",
    "Material": 1,
    "Color": null
  },
  "Arms": {
    "Name": "",
    "Material": 2,
    "Color": "#44FFAA"
  },
  "Hands": {
    "Name": "Blood Cured",
    "Material": 0,
    "Color": null
  },
  "Chest": {
    "Name": "",
    "Material": 4,
    "Color": null
  },
  "Legs": {
    "Name": "Wolf Caller",
    "Material": 0,
    "Color": null
  },
  "Feet": {
    "Name": "Golden Efreeti",
    "Material": 0,
    "Color": null
  }
}

The resulting model will look like:

IKM

Clone this wiki locally