Jump to content

X-Packer 2017 / X-Rey 2.7 released


tekken57

Recommended Posts

I created another two video tutorials which I'm posting in the X-Packer thread as well. These tutorials took me about a week to create and even longer to upload. Take the time to say thank you if you view the tutorials.

 

Tutorial on Editing Shaders / Shader Params and toggling objects on / off in X-rey

 

Tutorial on Sculpting using 3dsmax / Mudbox / X-Rey (intermediate / advanced)

 

It covers the following topics:

- Importing a reference model
- Sculpting in 3dsmax and mudbox
- Retopology using wrapit
- Creation of AO maps
- Creation of face detail textures
- Exporting vertex normals
- Creating PBR textures from diffuse textures
- Importing the model back into yobj format using X-Rey

 

Link to comment
Share on other sites

13 hours ago, zhigge said:

thanks forthe hard work, even tho i don't use XREY.. but thanks for continuing to support the modding community.

You're welcome. The tutorials can be applied to the xbox and ps3 versions of the game as well.

Link to comment
Share on other sites

With X-Packer, can I replace the Referee with Shane McMahon? If yes, how? I tried to extract slot no 152 (according to a list i've found that's Shane) and replaced no 255 (referee) with it. But it didn't change anything

Link to comment
Share on other sites

On 8/17/2017 at 0:04 AM, JE2601 said:

With X-Packer, can I replace the Referee with Shane McMahon? If yes, how? I tried to extract slot no 152 (according to a list i've found that's Shane) and replaced no 255 (referee) with it. But it didn't change anything

Yes you can. you need to replace the pac files with the Shane pac. It may cause your game to freeze though, not sure.

 

X-rey 2.3 released and has been emailed:

v. 2.3

- Added a bulk export function for objects and animations

  • Like 1
Link to comment
Share on other sites

Finally finished the script to export all the morph targets. Tutorial below:

 

You will need two scripts for this tutorial:

1. Batch import / export script: http://josbalcaen.com/scripts/max/batch-exportimport/

2. Export morph targets script coded by me:
https://mega.nz/#!JkdHSZYK!zCZAFBvXTTTTcrw7nVKsbxwXZ1_dJJgNVxMIWIdPZ7Q

 

 

Plain text version of my script above should the link expire:

 

-- Coded by tekken57 

global counter = 2
global morpherName
global mainSelection = $
global morphes = #()
global arraySize = 0
global i
global j
global t
global morphercount = 0


saveDir = getSavePath caption:"Select path to export animations to" 


out_name = saveDir --+ @"\" + objName 
--print out_name
global out_file 

global UVFormat = "vt % % 0\n"

fn PrintPoint pt = (
		format "v % % %\n" pt.x (pt.z ) (pt.y * -1) to:out_file
	) 	
	
	fn PrintPointNormal pt = (
		format "vn % % %\n" (pt.x * -1) (pt.z) pt.y to:out_file
	)

	fn PrintPointUV pt = (
		format "vt % % 0\n" pt.x pt.y to:out_file
	) 	

	fn PrintPointInt pt = (
		x = (int(pt.x) - 1) + 1
		y = (int(pt.y) - 1) + 1
		z = (int(pt.z) - 1) + 1
		format "f %/% %/% %/% \n" x x y y z z to:out_file
	) 	

	function ExtractUvs obj whereto =
	(
		n = obj.numTVerts
		
		for i = 1 to n do 
		(

			v = GetTVert obj i
			append whereto v

		)

	)

	function DumpUvs src = 
	(

		--Format "\"uvs\": [[" to:out_file

		num = src.count

		if num > 0 then
		(

			for i = 1 to num do
			(

				uvw = src[i]

				u = uvw.x

				
					v = uvw.y
				

				Format UVFormat u v to:out_file			

			)

		)

		

	)
	
	
	function ExtractColors obj whereto =
	(

		nColors = GetNumCPVVerts obj
		
		if nColors > 0 then
		(

			for i = 1 to nColors do
			(

				c = GetVertColor obj i
				append whereto c

			)

		)

	)

	
	function DumpColors src useColors = 
	(

		

		num = src.count

		if num > 0 and useColors then
		(

			for i = 1 to num do
			(

				col = src[i]
				--format "vs % \n" col.x  to:out_file			
				r = col.r as Float
				g = col.g as float
				b = col.b as float
				
				--r = r/255
				--g = g/255
				--b= b/255
				
				hexNum = ( bit.shift r 16 ) + ( bit.shift g 8 ) + b
				
				--hexColor = formattedPrint hexNum format:"#x"
				-- Format "%" hexColor to:ostream

				--decColor = formattedPrint hexNum format:"#d"
				--Format "% \n" decColor to:out_file		
				--Format "vs % % %\n"	 r g b to:out_file		
				Format "vs % \n"	 hexNum to:out_file		
				
					

			)

		)

		

	)	
	
fn exportMeshTekken out_name2 = 
(
	out_file = createfile out_name2
for j in selection do
(

		
local sel = convertToMesh j
	--print (sel)	
	
case classOf sel of
(
editable_poly: polyOp.setFaceMatID sel (polyOp.getFaceSelection sel) counter
Editable_Mesh: 
	(
		
		
		local face_selection = #{}
		local base_obj = sel
		local num_faces = getNumFaces base_obj f
		num_verts = j.numverts 
		
			-- Vertex Positions 
			
			for i = 1 to num_verts do
			(
				vert = getVert j i
				PrintPoint vert
			)
			
			--normals
			for i = 1 to num_verts do
			(
				vert = getNormal j i				
				PrintPointNormal vert
				
			)
			
			-- Vertex Texture Coordinates 
		
			/*
			for i = 1 to num_faces do
			(
				-- Iterate over faces 				
				tvface = getTVFace j i
				for k = 1 to 3 do (
					--if (k > 1) then format ", " to:out_file
					-- Get a specific texture vertex
					tvert = getTVert j tvface[k]		
					PrintPointUV tvert
				)
			)
			*/
			mergedUvs = #()
			ExtractUvs j mergedUvs
			DumpUvs mergedUvs
			
			
			
			-- get vertex colors
				/*	
			if getNumCPVVerts j > 0 then
			(
			mergedColors = #()
			ExtractColors j mergedColors
			DumpColors mergedColors true
			)
			
			*/
			--get faces 
			
			format "g Object0 \n" to:out_file
			format "s 1 \n" to:out_file
			
			--format "    \"indices\" : [" to:out_file
			for i = 1 to num_faces do
			(
				--if (i > 1) then format ", " to:out_file
				face = getFace j i
				PrintPointInt face
			)
			--format "]\n" to:out_file

			


	
)
)
counter = counter + 1
--print (counter)
--print (classOf sel)

)

close out_file
)



for t = 1 to 150 do
		(
			morpherName = WM3_MC_GetName $.Morpher t
			if morpherName != "- empty -" then morphercount = morphercount + 1
				if toLower morpherName != "object0" then
				(
					WM3_MC_SetValue $.Morpher t 0.00
				)
				else
				(
					WM3_MC_SetValue $.Morpher t 100.00
				)
		
			--print     morpherName
		)
		
	


		
for i = 1 to morphercount do
(
	select mainSelection	
	morpherName = WM3_MC_GetName $.Morpher i
	print morpherName 

	--If morph name is not empty clone and set morph to 100.00
	if morpherName != "- empty -" and  trimLeft (trimRight morpherName) != ""  then
	(
		WM3_MC_SetValue $.Morpher i 100.00
		if toLower morpherName != "object0" then
		(	
		out_name = saveDir + @"\" + morpherName + ".obj"
		--print out_name
		)
		else
		(
			out_name = saveDir + @"\" + "Anim_0.obj"
			--print out_name			
		)
		
		
		
		--exportMeshTekken out_name
		
		if selection.count != 0 do
		(
			theClasses = exporterPlugin.classes
			_objIdx = findItem theClasses ObjExp
			-- with *.OBJ export dialog
			--exportFile (GetDir #scene + "/exportTest" ) selectedOnly:on using:theClasses[_objIdx]
			-- without *.OBJ export dialog
			exportFile (out_name) #noprompt selectedOnly:on using:theClasses[_objIdx]
		)
		
		if toLower morpherName != "object0" then
		(
			WM3_MC_SetValue $.Morpher i 0.00
		)
		
		
		
	)
)
  • Thanks 1
Link to comment
Share on other sites

Thanks for this tutorial.

This may be a totaly noob question but how can I access the animations of the original model? I just received the new X-Rey, overwrote the old X-Rey by copy & paste and opened a 000.yobj file and can not see the animations list as well as the button inject animations in the menu bar. Do I have to open a Object0.obj? But doing this just opens the .obj file without any editing option.

 

never mind...found it. But won't it be possible to use the anim files of one orignal .yobj as base for all? Is it required to use the .yobj from what the mod has been created?

Link to comment
Share on other sites

You have to use the base model from which the mod was created as the number of faces is not the same on all models even though the verts are the same. You'll find that the animations will get corrupted if you use a different model to create the animations from.

Link to comment
Share on other sites

i think i have reverted back to noob status but i've been trying to figure out why the texture wont go back in its saying it needs to be the same size and i cant for the lifeof me figure out what the hell to do lol if anyone can help me out that would be very much so appreciated 

Link to comment
Share on other sites

23 hours ago, tekken57 said:

You have to use the base model from which the mod was created as the number of faces is not the same on all models even though the verts are the same. You'll find that the animations will get corrupted if you use a different model to create the animations from.

downloaded the scripts but currently struggeling to add the .mzp script to 3ds max. Copied it to the userscripts directory but can not see it in the toolbar to create a button..and everytime if I want to run it manually by choosing the file, it runs the installer again..

Any advice would be appreciated

Link to comment
Share on other sites

23 hours ago, Deka_Night said:

i think i have reverted back to noob status but i've been trying to figure out why the texture wont go back in its saying it needs to be the same size and i cant for the lifeof me figure out what the hell to do lol if anyone can help me out that would be very much so appreciated 

Make sure you save the diffuse textures as dxt with 4mipmaps, normal as dxt5 4 mip maps

26 minutes ago, Tarnathos said:

downloaded the scripts but currently struggeling to add the .mzp script to 3ds max. Copied it to the userscripts directory but can not see it in the toolbar to create a button..and everytime if I want to run it manually by choosing the file, it runs the installer again..

Any advice would be appreciated

After you install it, you need to add a button to one of your toolbars to call the script. Do this via the customize menu option in 3dsmax. 

  • Glorious 1
Link to comment
Share on other sites

was able to do it and when checking the 000.yobj file of the mod after injecting the animations I can see all animations correctly. However, when reinjecting into the .shdc and in the pac and checking in game the model remains withouth expressions. Kind of weird..

Link to comment
Share on other sites

3 minutes ago, Tarnathos said:

was able to do it and when checking the 000.yobj file of the mod after injecting the animations I can see all animations correctly. However, when reinjecting into the .shdc and in the pac and checking in game the model remains withouth expressions. Kind of weird..

Is this a mod you made from scratch or one that you are converting from no animations  to animations? 

Link to comment
Share on other sites

1 hour ago, Tarnathos said:

converting from none to animations

You have to hex edit the yobj and re add the animation references from the base yobj to the modified one.  I don't have them in front of me but it's toward the end where all the texture names are listed. If you compare the original base yobj to the mod yobj, you will probably see a long list of file names and a section of blank.  Copy from the original base to the modded one to re add the animation references. 

Link to comment
Share on other sites

Here is a screenshot of what I mean:

scDeVk.jpg

Also, I want to add:

In addition to doing the Object0 (head), you want to animate Objects 12 (eyelids), 13 (mouth), and 16 (inner eyes).  Also, want to make sure that 12, 13, 14 (teeth), 15 (tongue), and 16 are all aligned correctly with the modded head.  I've found in the several that I've converted that most modders do not alter some or all of these items when making their mods because they have no intention of making animations.

I am considering making a tutorial going over all of these items.  I'm going through all the ends and outs of conversing a non-animated mod to an animated one as it has more steps than making a mod from an animated base.

Edited by AznBlusuazn
Link to comment
Share on other sites

16 hours ago, AznBlusuazn said:

Here is a screenshot of what I mean:

scDeVk.jpg

Also, I want to add:

In addition to doing the Object0 (head), you want to animate Objects 12 (eyelids), 13 (mouth), and 16 (inner eyes).  Also, want to make sure that 12, 13, 14 (teeth), 15 (tongue), and 16 are all aligned correctly with the modded head.  I've found in the several that I've converted that most modders do not alter some or all of these items when making their mods because they have no intention of making animations.

I am considering making a tutorial going over all of these items.  I'm going through all the ends and outs of conversing a non-animated mod to an animated one as it has more steps than making a mod from an animated base.

A tutorial would really help others, looking forward to it. I'm coding an update to X-Rey at the moment which doesn't require you to move the objects to position 0 when editing the animations. 

Will send out the update soon.

  • Thanks 1
Link to comment
Share on other sites

1 hour ago, tekken57 said:

A tutorial would really help others, looking forward to it. I'm coding an update to X-Rey at the moment which doesn't require you to move the objects to position 0 when editing the animations. 

Will send out the update soon.

Awesome feature!  Looking forward to that one as well.  I just finished recording the tutorial.  I have to edit and clean it up.  Hope to have it up in the next couple of days.  THANK YOU so much for your tools and scripts @tekken57.  I've brought a ton of mods to life with animations!  Thanks again!

  • Thanks 1
Link to comment
Share on other sites

I've noticed an issue with some of the SDHCs not opening in X-Packer or PacEditor. An example is 06344.pac (The Rock '01's winning entrance) in pac\evt. This is the message I get:

VYvzSt.jpg

Here are the details.

Quote

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.IndexOutOfRangeException: Index was outside the bounds of the array.
   at WindowsFormsApplication1.Form1.Read2k17Pac(String FilePath)
   at WindowsFormsApplication1.Form1.xbox360Ps3SDHCPACToolStripMenuItem_Click(Object sender, EventArgs e)
   at System.Windows.Forms.ToolStripItem.RaiseEvent(Object key, EventArgs e)
   at System.Windows.Forms.ToolStripMenuItem.OnClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.HandleClick(EventArgs e)
   at System.Windows.Forms.ToolStripItem.ProcessDialogKey(Keys keyData)
   at System.Windows.Forms.ToolStrip.ProcessDialogKey(Keys keyData)
   at System.Windows.Forms.Control.PreProcessMessage(Message& msg)
   at System.Windows.Forms.Control.PreProcessControlMessageInternal(Control target, Message& msg)
   at System.Windows.Forms.Application.ThreadContext.PreTranslateMessage(MSG& msg)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2102.0 built by: NET47REL1LAST
    CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll
----------------------------------------
X-PacKer
    Assembly Version: 2017.5.0.0
    Win32 Version: 0.0.0.0
    CodeBase: file:///D:/Downloads/x-packer%202017.5/64%20bit/X-PacKer.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2104.0 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2103.2 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2046.0 built by: NET47REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------
System.Configuration
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2046.0 built by: NET47REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
----------------------------------------
System.Core
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2102.0 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
----------------------------------------
System.Xml
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2102.0 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
----------------------------------------
System.Management
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2102.0 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Management/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Management.dll
----------------------------------------
Accessibility
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2046.0 built by: NET47REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Accessibility/v4.0_4.0.0.0__b03f5f7f11d50a3a/Accessibility.dll
----------------------------------------
System.Data
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2102.0 built by: NET47REL1LAST
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_64/System.Data/v4.0_4.0.0.0__b77a5c561934e089/System.Data.dll
----------------------------------------
System.Numerics
    Assembly Version: 4.0.0.0
    Win32 Version: 4.7.2046.0 built by: NET47REL1
    CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Numerics/v4.0_4.0.0.0__b77a5c561934e089/System.Numerics.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.

The file itself isn't very large when uncompressed (596KB). Perhaps something's changed in some of the SDHCs to cause the error?

Link to comment
Share on other sites

  • 4 weeks later...
4 minutes ago, AlcLegacy said:

Is it possible to release the next versions of Xpacker and Xrey for free, so that we as a community can GROW and not be held back by paid tools? Would really be the best thing going forward.

I agree with this

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...