I release now a version which seems to be complete, here are the features supported by this plugin for this version:
- Mesh using triangles as faces
- Duplicate vertices handling
- Materials and texture filename (you must manage your texture image yourself, it's not included in the nx3 file)
- Texture UV coords
- Bones transformations including rotation (dae was not supporting rotation...)
- Meshes without armature with meshes with armatures (bones)
- Import/export of file using multiple material ID and multiple textures per material ID
What is not supported at this time:
- Skeletal animations (but the model and vertices location & weight related to bones can be modified as animation data is not in nx3 files but in a naf file)
- Matrix based animations (even modifying it's static mesh is not possible as these animation is in the nx3 file)
- Export of meshes/armature which origin is not (0,0,0)
So with this plugin, you can edit simple files, not big structure or some mobs. But if you encounter a file that an error different from these posted here, you can post it too so I will be able to manage them correctly in later versions
How to install it
So to install the plugin, use the same architecture as the blender arch, if you have Blender x86 you must use the x86 version of the plugin. (no matter if you're running a x86 or x64 version of windows). For Blender x64 use the x64 version of the plugin.
You can't mix x86 and x64, it will throw an error if you try that.
So to install it:
- Copy the io_scene_btrf folder in x.xx/scripts/addons where x.xx is the version of blender and is in the same folder as blender.exe
- Open blender
- Go to menu: "File->User preferences"
- Choose the tab "Addons" in the new opened window (with title: Blender User Preferences)
- Search for "Rappelz NX3 Format"
- tick the checkbox at the right of the line with "Import-Export: Rappelz NX3 Format"
- Click on the "Save As Default" button at the bottom left of the window
How to open a nx3 file
To open a NX3 file:
- Go to menu: "File->Import->Rappelz NX3 (.nx3)"
- Select your nx3 file then click on the button "Import NX3"
To have textures in blender, the texture must be in the same folder as the NX3 file. And blender may have problem when rendering DDS textures in the realtime 3D view (but the real texture is correct. You can still choose to convert the texture to another format like png and change the texture filename extension using a hex editor the nx3 file)
So here an example of a exported custom mesh (which was created by Gr4ph0s):
The same char but moving, the sword follow the hand (the sword is bound to the hand using a bone)
I attached the binary dll with the plugin for blender, if one of the zip does not work, try the other one. You can also compile it using the
1handaxe_smallaxe.zip contains 1handaxe_smallaxe.nx3 & .dds which are the one rappelz read, and 1handaxe_smallaxe_tga.nx3 and tga which are the same files but using a tga texture which blender can correctly read.
To find out how to have a exportable mesh with bones, import an existing one to see the layout in the outliner.
Armature and bones
Basically, you should just have a mesh object in a armature object.
See more here:
Assign an object to an armature to have bones
Important notes
Textures
Textures must be available to rappelz by either injecting them in data.00x or putting it in resources folder with the name hashed. The texture format MUST be DDS. If blender does not handle well the DDS texture, you can convert it to another format like TGA or PNG, but remember to convert it back to DDS before exporting the final model. Rappelz won't accept other files than DDS, and will show the weapon untextured in that case.
Use triangles, not quads for faces
Before exporting to nx3, you must have only triangles.
You can do that by selecting your object, then go into Edit mode.
Then select all vertices (with A shortcut) and triangulates all faces (with CTRL + T shortcut or in the menu Mesh -> Faces -> Triangulates Faces)
Assign weight to all vertices
Select your weapon, go to weight mode.
click on "Vertex selection masking for painting" (3rd button on the right of the mode combobox with "Vertex Paint" in it, it a cube with a vertex at the upper left of the cube)
At the left panel (hide/unhide it with the T key), set the Weight to 1 (under "Multi-Paint")
Then select all vertex by pressing "A" key while having the mouse in the 3D view. Vertices should all be yellow. If vertices are already yellow, press 2 times A to be sure to select all of them, even hidden ones. Then press SHIFT + K (or go to menu "Weights -> Set Weights")
This will set all vertex weight to 1 even hidden ones.
Incorrect position in-game (like weapon not in hands of the char), or how to set the origin of an object properly
You must set the origin to 0 for bones to work properly. You can do that by selecting your weapon (in object mode), then press CTRL + A while having the mouse in the 3D view. Then select Location. Do the same for Scale and Rotation.
Updates
Updated files are on github:
You can download import_btrf.py and export_btrf.py and replace the old one. This will update scripts.
I bumped the version to 1.2 and the new zip files contain up to date plugin. The DLL and tml files are moved to the directory where .py files are.
The 1.3 version allow to import more files, files that contain several meshes are supported (like betrayal) and texture/materials are correctly mapped. It use now blender 2.68 (else you will have not well mapped textures). Export of multiple objects is supported (even if not all have bones).
For any bug report, please go here:
This way, anyone will be able to see if it's bug was already corrected or is already noticed there.
If you don't want a github account, then post here