Jump to content

vagonumero13 tools (REDELBE, rdbtool, g1mtools, doa6decsave) Update 17 Aug: REDELBE 3.0


Recommended Posts

  • 1 month later...
Posted

Question about REDELBE and layer 2. I'm tired of my replays replacing costumes. I'm wondering if there's a command that could go in the redelbe ini that would prevent that and/or an easier way to make the modded outfits the default outfits (rather than layer 2s) other than copying and pasting each single Character and Material file into the redelbe/CharacterEditor and redelbe/MaterialEditor section. Thanks in advance!

  • 4 weeks later...
  • 2 weeks later...
  • 1 month later...
  • 3 months later...
  • 2 months later...
  • 5 weeks later...
Posted
于 6/16/2020 在 3:54 上午, vagonumero13 说:

 

对于查看动画,Joschka 的工具效果更好:https://forum.xentax.com/viewtopic.php?f=16&t=21666&p=159339#p159339

面部动画的情况是我必须解决的一个特殊情况。

 

我不确定 Atelier Ryza 的情况,但也许是 g1m 的情况是,在另一个 g1m 中具有骨架(例如一些 g1m 有网格,而另一个 g1m 只有骨架)。Dissidia NT 就是这种情况,我怀疑 Atelier Ryza 可能是这种情况,但我还没有检查过。

修复类似的事情需要提示用户使用另一个 g1m。

您能否重新分享工具链接?您共享的 API 将无法再访问。谢谢!

  • 2 months later...
Posted

if you're a degen like me and need to batch process a bunch of models with g1m_xml.exe for some reason here's a script you can run in the g1m tools folder

 

import os
import sys
import subprocess
import argparse

def process_file(exe_path, file_path):
    """
    Runs g1m_xml.exe on a single .g1m file, automatically pressing Enter.
    """
    print(f"Processing: {file_path}")
    try:
        # Run the EXE with the .g1m file as argument, send newline to stdin
        result = subprocess.run(
            [exe_path, file_path],
            input=b"\n",
            stdout=subprocess.PIPE,
            stderr=subprocess.PIPE,
            check=True
        )
        # Decode and print the EXE's stdout
        output = result.stdout.decode("utf-8", errors="ignore").strip()
        if output:
            print(output)
    except subprocess.CalledProcessError as e:
        err = e.stderr.decode("utf-8", errors="ignore").strip()
        print(f"Error on {file_path}:\n{err}")

def main():
    parser = argparse.ArgumentParser(
        description="Batch-decompile .g1m files to XML using g1m_xml.exe"
    )
    parser.add_argument(
        "directory",
        help="Root directory containing .g1m files"
    )
    parser.add_argument(
        "--exe",
        default="g1m_xml.exe",
        help="Path to g1m_xml.exe (default: g1m_xml.exe in current folder)"
    )
    args = parser.parse_args()

    # Resolve absolute paths
    root_dir = os.path.abspath(args.directory)
    exe_path = os.path.abspath(args.exe)

    if not os.path.isfile(exe_path):
        print(f"Executable not found: {exe_path}")
        sys.exit(1)

    # Walk through directory tree
    for dirpath, _, filenames in os.walk(root_dir):
        for fname in filenames:
            if fname.lower().endswith(".g1m"):
                full_path = os.path.join(dirpath, fname)
                process_file(exe_path, full_path)

    print("Batch processing complete.")

if __name__ == "__main__":
    main()

 

  • 11 months later...

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...