Giter Club home page Giter Club logo

mech3ax-py's People

Contributors

tobywf avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

Forkers

bonicim

mech3ax-py's Issues

Supernova model has rendering artifacts on shoulders

MechWarrior 3 version

Version 1.00 (U.S.)
Version 1.01 (U.S.)
Version 1.02 (U.S.)
Version 1.00 (Deutsch)

  • I'm using an original CD
  • I'm willing to provide a copy of the file causing the issue for debugging
  • Not Pirate's Moon expansion

What happened?

For the high-poly Supernova model (mech_supernova.json), there are flickering artefacts when an animation is rendered.

Steps to Reproduce

Operating system: Windows 10, macOS Sierra (10.12)
Python version: Python 3.7.3 (default, Mar 27 2019, 09:23:32)
Blender version: Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)

  • I'm using a Python version of 3.7 or higher
  • I'm using a Blender version of 2.80 or higher
  • I'm using a virtual environment
  1. Extract data, this works fine
  2. Run Blender export script on mech_supernova.json with animation run
  3. Open Blender
  4. Render animation with default settings. Flickering occurs around the shoulder area.

Detailed Description

Could be z-fighting in Blender or a normals issue.

Low-poly chicken walker 'mechs have incorrect thigh rotation

MechWarrior 3 version

Version 1.00 (U.S.)
Version 1.01 (U.S.)
Version 1.02 (U.S.)
Version 1.00 (Deutsch)

  • I'm using an original CD
  • I'm willing to provide a copy of the file causing the issue for debugging
  • Not Pirate's Moon expansion

What happened?

For some low-poly chicken walker 'mechs, the thigh rotation is incorrect on the static model.

Steps to Reproduce

Operating system: Windows 10, macOS Sierra (10.12)
Python version: Python 3.7.3 (default, Mar 27 2019, 09:23:32)
Blender version: Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)

  • I'm using a Python version of 3.7 or higher
  • I'm using a Blender version of 2.80 or higher
  • I'm using a virtual environment
  1. Extract data, this works fine
  2. Run Blender export script.
  3. Open Blender. Model looks wrong.

Detailed Description

For mech_cauldron_1, mech_daishi_1, mech_puma_1, and mech_supernova_1, the thigh rotation is incorrect. At least the X-axis rotation needs to be inverted (negated), for the other axis it's hard to tell as they are 180 degrees, so it doesn't make a difference.

Improve Blender export script default setup

Which area of the project is your feature request related to?

The Blender install script could be improved to automatically perform actions I usually do in Blender:

Detailed Description

  • Hide the cockpit windows (currently texture-less, #3 ), or put it on another layer
  • Add a camera that's looking at the 'mech. I usually use location (0, -60, 8) with rotation (80, 0, 0)
  • Set the default render output to the current directory, with filename of the model + animation and enough placeholders for the length of the animation (example: mech_madcat_run## for up to 99 frames)
  • Set the default FPS to 30, which looks right for now (25 seems slow)
  • Maybe move the firepoints/empties to a different layer, to reduce clutter?

'Mech limbs look weird when applying animations

MechWarrior 3 version

Version 1.00 (U.S.)
Version 1.01 (U.S.)
Version 1.02 (U.S.)
Version 1.00 (Deutsch)

  • I'm using an original CD
  • I'm willing to provide a copy of the file causing the issue for debugging
  • Not Pirate's Moon expansion

What happened?

In general, most of the animation data is applied to the model correctly. But sometimes it doesn't quite work. For e.g. the Mad Cat model, the hands are too far from the torso for several animations (stand, walk, run, collapser).

Steps to Reproduce

Operating system: Windows 10, macOS Sierra (10.12)
Python version: Python 3.7.3 (default, Mar 27 2019, 09:23:32)
Blender version: Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)

  • I'm using a Python version of 3.7 or higher
  • I'm using a Blender version of 2.80 or higher
  • I'm using a virtual environment
  1. Extract data, this works fine
  2. Run Blender export script:
    $ blender --background --factory-startup --python model2blend.py -- \
      mechlib/mech_madcat.json mechtex/ --anim "run"
    Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)
    found bundled python: /Applications/Blender.app/Contents/Resources/2.80/python
    Converting 'mechlib/mech_madcat.json' to 'mech_madcat_run.blend' with animation 'run'
    Textures: mechtex
    Materials: mechlib/materials.json
    Info: Total files 25 | Changed 0 | Failed 0
    
    Blender quit
  3. Open Blender. Model looks wrong.

Detailed Description

It's possible the parenting isn't quite right, but it works for most other 'mechs, the static model, and the feet/toes.

Because the animation data isn't fully understood, there could be a flag or more data on how to apply it. I don't think the issue is kinematics, for one there's no evidence the game supported kinematics and the arms would look oddly stretched if the hand positions were correct.

Mad Cat

For the Mad Cat, the hands are attached/should be attached to the arms and the torso (torso -> larm/rarm -> lhand/rhand).

madcat_anim_issue

Vulture

The Vulture has a similar issue like the Mad Cat, but worse.

vulture_anim_issue

Orion

The feet don't quite look right and seem to have "exploded" in the run animation:

orion_anim_issue

Advanced Texture Extraction

Which area of the project is your feature request related to?

CLI or mech3_from_zbd

Detailed Description

I've observed on some texture ZBD files (non-MW3) that you may encounter a failure which stops all execution on the current textures#.zbd file. It may be useful to have either:

  1. The ability to skip that file and attempt to continue processing the rest of the ZBD.
  2. Separate the extraction and conversion commands for textures entirely.

Cockpit windows need a texture

Which area of the project is your feature request related to?

Some materials don't have texture names, and the material data isn't well-enough understood to extract material properties. So once the models are exported to Blender, the cockpit windows don't have a texture or material properties and just appear grey.

Detailed Description

Hack around it

Two options: Can if part name == head, then apply cockpit material. Or, the unnamed materials are known, so could manually have workarounds for them in the script.

Figure out the material data

So far, I haven't been able to find where the material data is loaded or used, because COM/DirectX is full of C++ classes which virtual tables and other indirection. More reverse engineering is needed, or maybe somebody from the community knows.

Support for the Pirate's Moon expansion

Which area of the project is your feature request related to?

The Pirate's Moon expansion adds six new 'mechs. It would be awesome to be able to extract them, too.

Detailed Description

The first step would be to run existing extraction functions on Pirate's Moon and document what works and what doesn't. The reason I haven't done this is time, but contributions are welcome!

Sunder model has UV issues on bottom of the thigh

MechWarrior 3 version

Version 1.00 (U.S.)
Version 1.01 (U.S.)
Version 1.02 (U.S.)
Version 1.00 (Deutsch)

  • I'm using an original CD
  • I'm willing to provide a copy of the file causing the issue for debugging
  • Not Pirate's Moon expansion

What happened?

For the high-poly Sunder model (mech_sunder.json), there are UV issues on the bottom of the thigh.

Steps to Reproduce

Operating system: Windows 10, macOS Sierra (10.12)
Python version: Python 3.7.3 (default, Mar 27 2019, 09:23:32)
Blender version: Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)

  • I'm using a Python version of 3.7 or higher
  • I'm using a Blender version of 2.80 or higher
  • I'm using a virtual environment
  1. Extract data, this works fine
  2. Run Blender export script on mech_sunder.json with animation run
  3. Open Blender. Model looks wrong.

Detailed Description

The issue occurs on the static model, but is most visible when the run animation is applied.

sunder_uv_issue

Would be good to know if this happens on any other model.

Blender script doesn't work with Cauldron Born/Bushwacker

MechWarrior 3 version

Version 1.00 (U.S.)
Version 1.01 (U.S.)
Version 1.02 (U.S.)
Version 1.00 (Deutsch)

  • I'm using an original CD
  • I'm willing to provide a copy of the file causing the issue for debugging
  • Not Pirate's Moon expansion

What happened?

Export script errors out when converting mech_bushwacker.json and mech_cauldron.json with "face already exists".

Steps to Reproduce

Operating system: Windows 10, macOS Sierra (10.12)
Python version: Python 3.7.3 (default, Mar 27 2019, 09:23:32)
Blender version: Blender 2.80 (sub 74) (hash 06312c6d2db8 built 2019-07-11 19:16:32)

  • I'm using a Python version of 3.7 or higher
  • I'm using a Blender version of 2.80 or higher
  • I'm using a virtual environment
  1. Export 'mechs
  2. Try to run script with against mech_bushwacker.json or mech_cauldron.json
blender \
   --background 
   --factory-startup \
   --python model2blend.py -- \
   mechlib/mech_bushwacker.json mechtex/
  1. Results in ValueError: faces.new(verts): face already exists

Detailed Description

Traceback (most recent call last):
  File "mech3ax/model2blend.py", line 268, in <module>
    main()
  File "mech3ax/model2blend.py", line 264, in main
    model_to_blend(args.model, args.tex_dir, blend_path, materials, args.anim)
  File "mech3ax/model2blend.py", line 179, in model_to_blend
    root = _create_objects(model, None, get_material)
  File "mech3ax/model2blend.py", line 76, in _create_objects
    _create_objects(child, obj, get_material)
  File "mech3ax/model2blend.py", line 76, in _create_objects
    _create_objects(child, obj, get_material)
  File "mech3ax/model2blend.py", line 76, in _create_objects
    _create_objects(child, obj, get_material)
  File "mech3ax/model2blend.py", line 56, in _create_objects
    face = bm.faces.new(bm.verts[i] for i in vertex_indices)
ValueError: faces.new(verts): face already exists

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.