Catalog PyPI
PACKAGE EXPLORERView in registry

AGIDMGen

PyPI

Generates identity mods (a character's own model, written out as a mod) for 3DMigoto-based anime game mod loaders

Versions collected1
Direct dependencies2From release 0.1.0
Last observed21 Oct, 09:04 UTC

README

Version 0.1.0 documentation

Anime Game Identity Mod Generator (AGIDMGen)

Static Badge Static Badge Static Badge GitHub Actions Workflow Status


Makes identity mods: a mod of a character that looks exactly like the character already does in the game.


An identity mod changes nothing you can see. It is the character's own model, textures and colours, written out as a mod folder. That makes it the perfect starting point for making your own mod, or for checking that a mod loader works.

A sub-project of Anime Game Remap (AG Remap).


Contributors

Albert Gold (Active Lead Maintainer)@albertgold
The Council (Maintainer Team)The Council Badge

Requirements

  • Python (version 3.9 and up)
    • When installing Python, tick the box "Add python.exe to PATH" at the bottom of the first screen.
  • An internet connection (the character's files are downloaded for you)

Supported Games

GameMod LoaderThe word to type
GIGIMIgimi
WuWaWWMIwwmi

[!TIP] Just want the mod? Every character's identity mod is already made for you in the Mods folder. That page also lists every character's name you can type below.


How to Run

  • Choose your pick of which way to run it:

    • Choice A:   Quickstart! 🟢    (for beginners)
    • Choice B:   CMD WITHOUT a Script 🟡    (recommended if you run by CMD)
    • Choice C:   CMD with a Script 🟡    (the convention that other GIMI scripts follow)
    • Choice D:   API 🟠    (for expert coders)

Choice A: Let's Start ! 🟢

STEP 1:

  • Right-click AGIDMGen.py, choose "Save link as...", and save the script into GIMI's or WWMI's Mods folder.

STEP 2:

  • Double click on the script, and answer its two questions:

    • Which game? Type gimi for GI or wwmi for WuWa, then enter
    • Which characters? Type the character's name (eg. Yelan), then enter. For several characters, put a space between their names. For every character, type all.
  • A new folder with the character's name (eg. Yelan) appears beside the script, holding the mod. When the script says == Press ENTER to exit ==, press enter.

[!TIP] Copy the character's name as it is written in the Mods list. The new folder is named exactly as you typed it.

[!NOTE] The first run installs what the script needs (numpy, and AG Remap's API), so it takes a little longer. Later runs skip that.

STEP 3:

  • Open the game and enjoy it

Choice B: Run on CMD Without a Script 🟡

STEP 1:

  • Install the generator onto your computer by opening cmd and typing:
python -m pip install -U AGIDMGen

then enter

( you can now run the program anywhere without copying a script! )

STEP 2:

  • open cmd in GIMI's or WWMI's Mods folder and type the game's word, the character's name, then --download:
python -m AGIDMGen gimi Yelan --download

then enter

( or type only python -m AGIDMGen, and it asks you, as in Choice A )

STEP 3:

  • Open the game and enjoy it

Choice C: Run on CMD With a Script 🟡

STEP 1:

STEP 2:

  • open cmd in that Mods folder and type python AGIDMGen.py, the game's word, the character's name, then --download.

    eg. for Yelan in GI:

python AGIDMGen.py gimi Yelan --download

then enter

eg. for Sanhua in WuWa:

python AGIDMGen.py wwmi Sanhua --download

[!TIP]

  • Want several characters? Put a space between their names: python AGIDMGen.py gimi Yelan YelanTranquil --download
  • Want every character? Use --all instead of a name: python AGIDMGen.py gimi --download --all
  • Already have GI-Model-Importer-Assets or WWMI-Assets? Give the full path to the character's folder instead of its name, without --download: python AGIDMGen.py gimi "C:\path\to\GI-Model-Importer-Assets\PlayerCharacterData\Yelan"

STEP 3:

  • Open the game and enjoy it


Choice D: API Usage 🟠

Tool developers can make identity mods within their own code!

API Setup

Make sure you first install the module by typing into cmd:

python -m pip install -U AGIDMGen

API Example

import AGIDMGen as IDMG
import FixRaidenBoss2 as FRB          # AG Remap's API: its logger works for both libraries

service = IDMG.IDModGenService(IDMG.ModLoaders.GIMI, names = ["Yelan", "YelanTranquil"], outputFolder = "Mods", logger = FRB.Logger())
service.generate()

print("Made:", sorted(service.stats.generated))

IDModGenService makes each mod into <outputFolder>/<name>, from download folders (names = [...]) or from asset folders (assetsFolders = [...]). A character that fails does not stop the others: it is recorded in service.stats, and nothing is printed unless you give it a logger.

More API examples

In a server, give each request its own logger, and either read what it wrote afterwards or forward each line as it is written:

class ForwardingLogger(FRB.BaseLogger):
    def write(self, message: str):
        send_to_frontend(message)          # eg. a websocket, a queue, a database row

    def read(self, desc: str) -> str:
        return ""                          # nothing interactive on a server

logger = FRB.Logger(logTxt = True, verbose = False)     # or: ForwardingLogger()
service = IDMG.IDModGenService(IDMG.ModLoaders.GIMI, names = ["Yelan"], outputFolder = folder, logger = logger)
service.generate()
transcript = logger.loggedTxt

From asset folders:

service = IDMG.IDModGenService(IDMG.ModLoaders.WWMI, assetsFolders = ["WWMI-Assets/PlayerCharacterData/Sanhua"], outputFolder = "Mods")
service.generate()

One character, directly. Unlike the service, the generators raise an error when they fail:

mod = IDMG.GIMIIdentityModGenerator().generate("GI-Model-Importer-Assets/PlayerCharacterData/Yelan", "Mods/Yelan")
mod = IDMG.WWMIIdentityModGenerator().generateFromRepo("Sanhua", "Mods/Sanhua", version = "2.5")
print("\n".join(mod.getSummary()))

Every character with a download folder: IDMG.ModDownloader.getCharacters(IDMG.ModLoaders.GIMI)



Command Options

Add these after the character's name. The Game column says which game has the option.

OptionsGameDescription
-h, --helpAllshow the help message and exit
--downloadAllthe names typed are characters' names: download their files and make their mods from them
--allAllwith --download: make the mod of every character
--out folderAllthe folder the mods are made in, as <folder>/<name>. If this option is not specified, then the mods are made in the current folder.
--version strAllwith --download: the game version wanted, eg. 4.0. If this option is not specified, then the newest version is used.
--name strAllthe character's name inside the mod (one character only)
--log folderAllalso write everything printed into <folder>/IDModGenLog.txt
--quietAllprint only errors
--proxy strAllwith --download: the link to the proxy server, for those whose internet access must go through a proxy
--downloadFolder folderAllwith --download: keep the downloaded files in <folder>/<name>. If this option is not specified, then they are deleted afterwards.
--localData REPO=folderAllwith --download: copy the files of AGRemap or AGIDMGen from a copy of its Data/Mod Downloads folder on your computer, instead of downloading them (can be given more than once)
--noFixGIleave the ORFix / NNFix lines out of the mod
--faceRegister strGIthe slot the face texture is bound to. If this option is not specified, then ps-t0 is used (some 6.x skins need ps-t1).
--assetPrefix strGIwhat the asset folder's files start with, when that is not the folder's name (one asset folder only)
--textureFrom B=C:O[:plain|normalMap]GIpart B, which has no textures of its own, uses object O of part C's textures, eg. Bang=Body:A (can be given more than once)
--author strWuWathe mod author WWMI shows. If this option is not specified, then Anime Game Remap is used.
--noTexturesWuWaleave the textures out
--rawBonesWuWawrite bone indices as vg_offset + local index, instead of through the vg_map

[!NOTE] The command ends with exit code 0 when every mod was made, 1 when one could not be (or the options are not valid), and 2 when a WWMI mod's shape keys do not match its Metadata.json.


Downloads & popularity

Awaiting observations

No metric observations yet

Download counts and popularity will appear here as the collector receives them.

Versions 1

Collected releases
VersionPublishedDirect dependenciesOpen version
0.1.011 Oct 20262

Package advisories

0
No matching advisories collected

This describes our collected data; it is not a security assessment.

Repository

PENDING
alex-au1/anime-game-identity-mod-generator

Shared repository data · GitHub

License detected in repository
Not collected

Metadata history

Meaningful changes
Current collected state Current

Observed since 21 Oct, 09:04 UTC

No superseded metadata states collected. Unchanged observations do not create new revisions.

Record identity

package:b322c9bc93d39cba7e2df2431071bf81bbac30bcf236e33e76eeea8eb2fed0dc