

"New" format (.bin/.tex) have a 24 bytes header; first 4 bytes - ascii TXET (54 58 45 54), so you can simple add checking and trimming bytes - all other data is unchangedvolfin wrote:as far as I know, there's no need to update the texture tool. it works with all valid textures. If that's not true, I need more information.
As for the number stuff, I have no idea what all that is.
Hi may i have this tool???aspadm wrote:"New" format (.bin/.tex) have a 24 bytes header; first 4 bytes - ascii TXET (54 58 45 54), so you can simple add checking and trimming bytes - all other data is unchangedvolfin wrote:as far as I know, there's no need to update the texture tool. it works with all valid textures. If that's not true, I need more information.
As for the number stuff, I have no idea what all that is.
UPD: here full example dataset of tex files: there are 11 subformats (2 bytes with offset 42 or short Format in volfin script). Link: https://yadi.sk/d/9zcdSJR53M6KKi
UPD 2: looks like DEMD .dat importer can't read UV coordinates from .linkedprim files; and there are some files, that obviously 3d models (collisions, COLA signature), but can't be opened + examples of .apx (clothes) and .hair files. Link: https://yadi.sk/d/n11L2IQk3M6K5e
UPD 3: small teaser for non-console peoples(I must do some enchantments before upload program)
Thanks very much! Love it!!!!aspadm wrote:Hey guys! I did it!
This is the DEMD database - GUI tool for extracting, view and exporting game database.
Big thanks Volfin, Sir Kane for their toolsAnd thanks for all peoples from this topic
Here the link - https://yadi.sk/d/di_bL7573MW5hg
If you find a bug or need sources, please, PM-me.
P.S. I rewrited tex2dds/vap_converter from scratch, but four formats from 11 supports uncorrectly.
P.P.S. This tool contains portable Blender 3d, Volfin's model converter, Sir Kane's archives extractor, TXET2DDS tools (textures) and other components
P.P.P.S. You can convert audio files (without listening in app)
Yeah, I'm trying to disassemble the format of hair files. But it can take a long time, as I am very busy now.o0Crofty0o wrote:Thanks so much for the tool! It works amazing![]()
Is there any chance to support the hair curves too?
Take your time, it's just nice to know someone has interest doing it at all.aspadm wrote:Yeah, I'm trying to disassemble the format of hair files. But it can take a long time, as I am very busy now.o0Crofty0o wrote:Thanks so much for the tool! It works amazing![]()
Is there any chance to support the hair curves too?
If somebody know anything about structure of this files, please, tell me. My thought that is nvidia hairworks, but I still don't read specifications.
Code: Select all
import bpy
from mathutils import Vector
w = 1 # weight
listOfVectors = [Vector((-6.635117,1.653948,-3.323807)),Vector((-6.626816,2.027992,-3.724991)),Vector((-6.613327,2.308923,-4.204987)),Vector((-6.594235,2.576662,-4.681885)),
Vector((-6.558660,2.786073,-5.189697)),Vector((-6.508052,2.973230,-5.703522)),Vector((-6.424452,3.114432,-6.228149)),Vector((-6.320928,3.202100,-6.760651)),
Vector((-6.203422,3.178222,-7.299698)),Vector((-6.103159,3.000197,-7.811737)),Vector((-6.021204,2.710953,-8.272842)),Vector((-5.938305,2.379366,-8.702637)),
Vector((-5.836701,2.048806,-9.129242)),Vector((-5.742608,1.708384,-9.550400)),Vector((-5.702582,1.324819,-9.941681)),Vector((-5.683345,0.926187,-10.320999))]
def MakePolyLine(objname, curvename, cList):
curvedata = bpy.data.curves.new(name=curvename, type='CURVE')
curvedata.dimensions = '3D'
objectdata = bpy.data.objects.new(objname, curvedata)
objectdata.location = (0,0,0) #object origin
bpy.context.scene.objects.link(objectdata)
polyline = curvedata.splines.new('NURBS')
polyline.points.add(len(cList)-1)
for num in range(len(cList)):
x, y, z = cList[num]
polyline.points[num].co = (x, y, z, w)
polyline.order_u = len(polyline.points)-1
polyline.use_endpoint_u = True
MakePolyLine("NameOfMyCurveObject", "NameOfMyCurve", listOfVectors)
w = 1 # weight
listOfVectors = [Vector((-6.033971,2.917804,-4.779190)),Vector((-6.371659,3.087809,-4.774216)),Vector((-6.026512,3.690067,-5.414322)),Vector((-5.878336,3.830332,-5.717117)),
Vector((-5.661849,4.022390,-6.160217)),Vector((-5.475732,4.103107,-6.612518)),Vector((-5.301621,4.134255,-7.082443)),Vector((-5.154976,4.085114,-7.561050)),
Vector((-5.069383,3.928407,-8.029999)),Vector((-5.054573,3.703187,-8.477707)),Vector((-5.080958,3.469792,-8.920242)),Vector((-5.107432,3.226686,-9.357407)),
Vector((-5.114311,2.957879,-9.780441)),Vector((-5.103921,2.670656,-10.190857)),Vector((-5.081414,2.371468,-10.592010)),Vector((-5.053456,2.066906,-10.989090))]
def MakePolyLine(objname, curvename, cList):
curvedata = bpy.data.curves.new(name=curvename, type='CURVE')
curvedata.dimensions = '3D'
objectdata = bpy.data.objects.new(objname, curvedata)
objectdata.location = (0,0,0) #object origin
bpy.context.scene.objects.link(objectdata)
polyline = curvedata.splines.new('NURBS')
polyline.points.add(len(cList)-1)
for num in range(len(cList)):
x, y, z = cList[num]
polyline.points[num].co = (x, y, z, w)
polyline.order_u = len(polyline.points)-1
polyline.use_endpoint_u = True
MakePolyLine("NameOfMyCurveObject", "NameOfMyCurve", listOfVectors)