Giter VIP home page Giter VIP logo

3dsmax-xplnobj's Introduction

The X-Plane .obj exporter for the 3Ds Max.

Warning

Importing is still under developing and doesn't work properly!

Dependencies

  • CMake [3.10.0+] building tool.
  • Conan [1.6+] package manager.
  • Python 3 - is needed for the Conan.
  • XplnObj is used via conan.
  • sts-signals is used via conan.
  • sts-semver is used via conan.
  • jsonformoderncpp is used via conan.
  • 3Ds Max SDK. Usually you can find it on 3Ds Max installation CD or image.
  • Since 3Ds Max 2018 the plug-in uses Qt for building some GUI elements.
    The QT isn't used via conan so you have to install it manually.
    • 3Ds Max 2018 - requires QT [5.6.2]
    • 3Ds Max 2019 - requires QT [5.6.3] (which is binary compatible with [QT 5.6.2])

Memo for the library developers

  • release-checklist see this file when you are making a release.
  • change log this file has to be filled during the release process and contains information about changes. It is in the reStructuredText format.

Developing and Building

  • You have to install conan and add:
  • You have to get the 3DsMax SDK and then put it into your conan repository or your conan local cache.
    See Conan 3dsmax SDK recipes.
  • Adjust the file conanfile.txt. You may comment unnecessary 3DsMax SDK version with the # symbol. It also turns off corresponding build targets.
...
#3DsMaxSdk2009/last@steptosky/stable   isn't used
3DsMaxSdk2010/last@steptosky/stable    is used
...
  • If you are going to compile the plug-in for 3Ds Max version greater than 2017 you have to install certain versions of QT. See dependencies section above.
    Then you have to specify environment variables with path to QT something like this C:\Qt\Qt5.6.3\5.6.3\msvc2017_64:
    • 3DSMAX_2018_QT=path to certain QT version where bin and include folders are located.
    • 3DSMAX_2019_QT=path to certain QT version where bin and include folders are located.
  • If you are going to develop you may generate the Visual Studio 2017 project with the file msvc-2017.bat in the root repository folder.
    You may copy that file and make necessary changes as you wish using the origin script as the example.
    You may copy conanfile.txt and name it as dev-conanfile.txt then this file will be used during project generation. It is useful when you are developing only for certain 3Ds Max versions but you want all the versions to be built with your CI.
    Don't forget to update data in the dev-conanfile.txt when you pull new changes from the repository or you changed commit or branch because dependencies' versions could also be changed.
  • If you just want to build the plugins you may use the scripts inside the ci folder.
    Pay attention those scripts must be run from the root repository folder ci/build-vs2017.bat.
    • ci/build-release-vs2017.bat - Builds and installs release target only. This script is usually used for making public release versions.
    • ci/build-vs2017.bat - Builds and installs release and debug targets. This script is usually used in CI jobs for checking your work.
  • If you are going to upload built plugins to github:
    • You have to build and install github-release. And make it accessible via your PATH environment variable.
    • Adjust REPOSITORY_NAME and REPOSITORY_USER_NAME variables in the file StsUploadToGithub.cmake if necessary.
    • Set the environment variable GITHUB_TOKEN - your access token from github account.
    • Run ci/upload-to-github.bat the release targets of the project must be built and installed for all supported 3DsMax versions.
      Release tag must not exist in github repository otherwise the script stops with the error that the tag already exists.

Cmake variables

Variables Type Description
ADD_3DMAXS_EXEC ON/OFF If enabled then the default 3DsMaxs' path to 3dsmax.exe will be added as the command for debugging. It is adjusted to be used with the Visual Studio 2017, it may not work with other ones.

Copyright

Copyright (c) 2018, StepToSky team. All rights reserved.
www.steptosky.com

3dsmax-xplnobj's People

Contributors

pancir avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

3dsmax-xplnobj's Issues

X-OBJ values saved through every session

It looks like values of the x-obj (Layer Group, specular etc.) are not only being saved within a 3ds max session but also after restart or even reboot.

Not sure if that works as designed or is a bug but it's sometimes annoying when you set some values, change to another project and forget to delete all values before placing new x-objs.

Maybe that can be limited to one 3ds max session only.

Message from a user "Exporter Dataref Value Limit" 2018-04-20 ~10UTC

This message was written by a user to our email.

Hello guys,
I noticed that there is a limitation in terms of the maximum numbers in the animation setting for an x-plane object. When you have an animation you can set the value to maximum 10000. If you have an animation bound to a timer dataref (in my case a ship driving around) I would need values up to 99999. Would that be possible to fix?

Named Lights not up to date

The current list of Named Lights is not up to date, a lot of lights are missing. Is there any way to include them manually or even automatically read out the Resources/bitmaps/world/lites/lights.txt?

I couldn't find any source file for the lights within the script.

2018... 2019... Version

Hi,
thanks first for the previous plug-ins to 3ds Max versions until 2017.
After unfortunately the version 2018 has been omitted, I wonder if there is still a plug-in for the new version of 3ds Max 2019? Or does the development end with the 2017 version?
3ds Max 2017 was one of the most useless versions ever. But, people love your exporter and would certainly be happy about the development. Although it might not be freeware.
Thank you for all the previous work. 😃
B.R.

Optimisation needed

Need points export with checking if point with same XYZ and UVW coordinates already exist

LODs ordering problem

Please adjust export sequence according to object's name in 3ds. Now export sequence corresponds to first created->first exported. It is inroper for example if you export LODs.
P.S. Where can I download dlu with light names fix? Can you mail it?

X-LOD scale issue

Hi Pancir,

just found out that the export for the LOD (ATTR_LOD) has an interesting scaling question - not so much an issue.

The LOD attribute fields are in meters but the value is scaled (inversely to the value of the parent object) - which is fine but very confusing.

Example, when using system units of millimeters, units set to meters, and a scale of 0.001 in X-OBJ:
A 50 in the near or far boxes for X-LOD (which 3DS displays in meters so it reads 50.0m) ends up putting a value of 50000 in the output OBJ file (50km). I was expecting that to stay at 50.

Not a problem as the inputs can be scaled appropriately in the X-LOD input but food for thought if there's a way to have the LOD distance not scale (so in our example, 50 meters entered in 3DS stays 50m in the output file).

Cheers,

EM

TEXTURE_DRAPED

When a draped command is applied to a geometry the object uses ATTR_draped command correctly. However it still uses TEXTURE instead of TEXTURE_DRAPED which leads to an incorrect behaviour. Same with Normal Map.

Textures doesn't show

Hi there,

Cannot get the textures to show after export from max with the plugin, neither in the plane maker nor in the simulator. Is there any info on how to appy textures in max with this plugin exactly?

What I tried without success:

  • set the texture files (DDS) within max on the plugin's roll interface then export
  • all the above + applying a material with the same texture set as diffuse bitmap then export

Do we have to name the material that we apply with a specific name? Do we have to apply material in max at all or setting in the plugin is enough? Any specific mandatory file structure in the max scene's folder?

Mirrored shapes export bug

Mirrored shapes with option "Transform" exported with flipped normals. Mirrored with modifier "Mirror" exported OK.
See attachment.
mirrored bug

help

I do not understand the process,Could you send me an example for 3Dmax to x-plane obj,thank you

[ISSUE] Parts of 3d model are transparent, and textures are misaligned

Hi i just exported my 3d model to X-Plane and icountered 2 issues.

  1. some parts of the 3d model are transparent (some parts are just not there )
  2. The texture does not line up with 3d model even though i have uv unwrapped it and textured it using that uv map. Is there any way to perserve UV maps?

im using 3ds max 2017

file extension

When exporting, the plugin uses .OBJ in all caps but WED and XP use lowercase --> .obj
Can you update this? Please.

Draw order - translucency

Pancir, question on the best way to setup draw order.
For translucency, x-plane requires surfaces behind a transparent / translucent object to be drawn first. What is the best way to setup faces so I can specify which ones get exported "First" so they are drawn before the translucent ones?
I'm playing around with elements but not knowing which order things happen, I assume I need to re-order vertices/faces as x-plane probably draws in the order it sees them in the .OBJ.

Thanks!

M

Objects floating in the scen

Hi,
I have an issue.
Evey objet I export from 3dsmax, displays in the Xplane floating above the terrain, tarmac or runway. I have verified that the object is set to Z=0, I have tried exporting planes set to 0, and even so, they appear floating. Any ideas?
What am I doing wrong?

plugin for 3ds max 2021

Hi!
Thank you for a great plugin!
Do you have plans to update your plugin for 3ds max 20 and 21?

Thanks

Custom light name does not export

If "Light type" is set to "Param" and "Light Param" is set to "Custom" instead of "Custom name" to obj file export "LIGHT_PARAM light_params_custom".

Param Light custom name field and export

Having a minor issues exporting a PARAM type light with a custom name (so, using a light that is not in the default pick list for param type lights):

Steps to reproduce: 2.2.1 release:

  1. add a spot (or omni) light to the model
  2. change x-plane attribute to "Param light"
  3. change x-plane param light type to "Custom"
  4. Observe: custom name field is still disabled - a custom name cannot be entered - such as - "sodium_flood_XYZBTSS". Expected behavior: the custom name field is active so a custom name can be entered.
  5. deselect the light object in the model, and then reselect it (forces a rollup update)
  6. Observe: custom name field is now enabled and a custom name can be entered
  7. set custom name and additional parameters as needed
  8. export model
  9. Observe: export light name says "light_params_custom" in the OBJ output file instead of the custom name entered in the custom field. Expected behavior: the custom light name is exported.

This happens in Max 2015, 2016 and 2017. I should note I have the rollup docked on the UI so not sure if that has anything to do with the custom name box getting enabled for input.

I also installed the 2.2.0 release to check and observed the same behavior.

Perhaps I missed something in how it's supposed to work and should go read the manual again :)

Cheers,

M

Custom lights interface bug.

If set light param to "Custom" under light type "Param" then custom name field is unavailable untill reselect object.

Maya/3DsMax

I'm wondering why not a plug in for Autodesk Maya? Both Maya and 3DsMax are held under the Autodesk umbrella and can similarly import .fbx, .obj etc. I guess it's not so much an issue as a request for consideration toward any thoughts of expanding future development of add-ons or plug-ins for importing X-plane .obj into what might be considered one of the most modern and evolved 3D modeling softwares available, with Blender amazingly coming in as well perhaps even surpassing in many ways would also be a consideration?

Wrong line export

I have a 3-segment line with 3ds max coords:
0.88521 3.23816 1.952
0.00000 2.38316 4.100
-0.88521 3.23816 1.952
But inside obj file after export I get this weired coordinates:
VLINE -1.95200 6.69064 -1.07349 0.50000 0.50000 0.50000
VLINE -4.10000 5.83563 -1.95870 0.50000 0.50000 0.50000
VLINE -1.95200 6.69064 -2.84391 0.50000 0.50000 0.50000

And also there is a problem with IDX section in case if model have both polys and lines.
In this case vertex index order for lines may not be the same as for polys.
For example in my model IDX sections starts as: IDX10 2 1 0 3 0 1 6 5 4 7
And if I have for example 2 lines with 3 segments in each I will have a problem. Instead of ids order for lines "0 1 2 3 4 5" I get "2 1 0 3 0 1" and lines will not draw correctly.
Solution is simple: change POINT_COUNTS section and increase indices count as poly cnt + line cnt and add separate IDX for lines in the end of IDX section.
You can see it here: https://forums.x-plane.org/index.php?/forums/topic/48604-vt-records-and-vline-records-and-indices/#comment-539252

Would be nice if you could fix this two annoying bugs.

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.