Important information: this site is currently scheduled to go offline indefinitely by end of the year.

xenosaga 3 model??request

Post questions about game models here, or help out others!
Novax
n00b
Posts: 16
Joined: Tue Jan 29, 2008 10:41 am

Re: xenosaga 3 model??request

Post by Novax »

What script may this be? Does it rip the models easily along with their UV maps and perhaps textures? I apologize if I come off rudely, just trying to fully understand.
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: xenosaga 3 model??request

Post by Darko »

Novax wrote:What script may this be? Does it rip the models easily along with their UV maps and perhaps textures? I apologize if I come off rudely, just trying to fully understand.
Ok, check this:

http://www.youtube.com/watch?v=sh2mdUBc ... LjQWzI0XU=
http://www.youtube.com/watch?v=ebKQiztb ... _fDfMWNmI=

And this:

http://godsibb.net/forums/index.php?/to ... __p__69487

And this is the noesis python code plugin to get xenosaga 2 textures by mr adults:

Code: Select all

from inc_noesis import *
def registerNoesisTypes():
   handle = noesis.register("Xenosaga TXY Image", ".txy")
   noesis.setHandlerTypeCheck(handle, txyCheckType)
   noesis.setHandlerLoadRGBA(handle, txyLoadRGBA)
   return 1

def txyGetImageCut(texPage, pageWidth, pageHeight, ofsX, ofsY, width, height):
   r = bytes()
   for i in range(0, pageHeight):
      imgOfs = ofsY*pageWidth + i*pageWidth + ofsX
      r += texPage[imgOfs:imgOfs+width]
   return r

def txyRetile8(pix, pixW, pixH):
   dst = bytearray(pixW*pixH)
   for y in range(0, pixH):
      for x in range(0, pixW):
         blockOfs = (y & ~15)*pixW + (x & ~15)*2
         sw = (((y+2)>>2) & 1) * 4
         ofsY = (((y & ~3)>>1) + (y & 1)) & 7
         colOfs = ofsY*pixW*2 + ((x+sw) & 7) * 4
         ofsX = ((y>>1) & 1) + ((x>>2) & 2)
         dst[blockOfs+colOfs+ofsX] = pix[y*pixW + x];
   return dst

class TXYFile:
   def __init__(self, reader):
      self.reader = reader

   def loadImageInfo(self):
      reader = self.reader
      if reader.dataSize <= 20:
         return 0
      id = reader.readInt()
      ver = reader.readInt()
      fsize = reader.readInt()
      if id != 0x797874 or ver != 1 or fsize > reader.dataSize:
         return 0
      reader.seek(16, NOESEEK_ABS)
      self.infoOfs = reader.readInt()
      if self.infoOfs <= 0 or self.infoOfs >= reader.dataSize:
         return 0
      reader.seek(self.infoOfs, NOESEEK_ABS)
      self.hx = reader.readInt()
      self.bd = reader.readInt()
      self.pageW = reader.readInt()
      self.pageH = reader.readInt()
      reader.seek(4, NOESEEK_REL)
      self.numSlices = reader.readInt()
      self.numBlocks = reader.readInt()
      if self.numSlices <= 0 or self.numBlocks <= 0:
         return 0
      reader.seek(4, NOESEEK_REL)
      self.slicesOfs = reader.tell()
      return 1

   def loadPage(self):
      reader = self.reader
      slices = bytes()
      slicesH = 0
      self.bitsPP = 8
      for i in range(0, self.numSlices):
         reader.seek(self.slicesOfs + i*32, NOESEEK_ABS)
         pixOfs = reader.readInt()
         rofs = reader.readInt()
         sliceW = reader.readInt() * 2
         sliceH = reader.readInt() * 2
         reader.seek(pixOfs+32, NOESEEK_ABS)
         imgSize = sliceW*sliceH if self.bitsPP >= 8 else (sliceW*sliceH)//2
         pix = reader.readBytes(imgSize)
         pix = rapi.imageUntwiddlePS2(pix, sliceW, sliceH, self.bitsPP)
         for j in range(0, sliceH):
            row = pix[j*sliceW:j*sliceW + sliceW]
            row += bytes([0])*(self.pageW-sliceW)
            slices += row
         slicesH += sliceH
      self.pageH = slicesH
      self.texPage = slices

   def getPaletteBlock(self, palX, palY):
      pal = bytearray(1024)
      idxCut = txyGetImageCut(self.texPage, self.pageW, self.pageH, palX, palY, 32, 32)
      return rapi.imageScaleRGBA32(txyRetile8(idxCut, 32, 32), (1.0, 1.0, 1.0, 2.0), 16, 16)

   def loadTextures(self, texList):
      reader = self.reader
      reader.seek(self.infoOfs+288, NOESEEK_ABS)
      texInfos = []
      for i in range(0, self.numBlocks):
         texInfo = {}
         texInfo["ofsa"] = reader.readInt()
         texInfo["na"] = reader.readInt()
         texInfo["width"] = reader.readInt()
         texInfo["height"] = reader.readInt()
         texInfo["ofsx"] = reader.readInt()
         texInfo["ofsy"] = reader.readInt()
         texInfo["ofsb"] = reader.readInt()
         reader.seek(4, NOESEEK_REL)
         texInfo["palx"] = reader.readInt()*2
         texInfo["paly"] = reader.readInt()*2
         reader.seek(24, NOESEEK_REL)
         texInfo["name"] = noeStrFromBytes(reader.readBytes(32))
         texInfos.append(texInfo)
      for texInfo in texInfos:
         pal = self.getPaletteBlock(texInfo["palx"], texInfo["paly"])
         idxCut = txyGetImageCut(self.texPage, self.pageW, self.pageH, texInfo["ofsx"], texInfo["ofsy"], texInfo["width"], texInfo["height"])
         pix = rapi.imageDecodeRawPal(idxCut, pal, texInfo["width"], texInfo["height"], self.bitsPP, "r8g8b8a8", noesis.DECODEFLAG_PS2SHIFT)
         texList.append(NoeTexture(texInfo["name"], texInfo["width"], texInfo["height"], pix, noesis.NOESISTEX_RGBA32))
         

def txyCheckType(data):
   txy = TXYFile(NoeBitStream(data))
   if txy.loadImageInfo() == 0:
      return 0
   return 1

def txyLoadRGBA(data, texList):
   txy = TXYFile(NoeBitStream(data))
   if txy.loadImageInfo() == 0:
      return 0

   txy.loadPage()
   txy.loadTextures(texList)
   return 1


And this is noesis:

http://oasis.xentax.com/index.php?content=downloads

See ya
Image
Novax
n00b
Posts: 16
Joined: Tue Jan 29, 2008 10:41 am

Re: xenosaga 3 model??request

Post by Novax »

Thank you very much. Wil double check download links when I get home. Currently browsing the internet on my droid.
Novax
n00b
Posts: 16
Joined: Tue Jan 29, 2008 10:41 am

Re: xenosaga 3 model??request

Post by Novax »

Only trouble I have now is that my .chr files export the model in parts and often oversizes certain ones. Now granted this data I have gotten long ago, so I will surely need to get a "fresh" copy of the files myself to double check this issue. If not, I'll post what I have to see what I did wrong. Other than that, keep on being amazing and helpful.
User avatar
dj082502
mega-veteran
mega-veteran
Posts: 202
Joined: Wed Oct 13, 2010 3:47 am
Has thanked: 37 times
Been thanked: 21 times

Re: xenosaga 3 model??request

Post by dj082502 »

Does anyone know how to extract *.chr?
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: xenosaga 3 model??request

Post by Darko »

dj082502 wrote:Does anyone know how to extract *.chr?
Using Mario's script you don't need to extract anything but the txy containing the textures files. Just look for txy in hxd, select the block starting from it until the end and you'll get the file. The only matter here is to unzwissle the textures and aply a palette.

See ya.
Image
richard99uk
ultra-n00b
Posts: 2
Joined: Tue May 01, 2012 5:15 pm
Location: 東京

Re: xenosaga 3 model??request

Post by richard99uk »

I was hoping someone could help me open/convert the .xtx files.

I noticed someone extracted the .xtx files from the KAO folder, but I couldn't find any mention of how to do it. I'm interested in extracting/converting the files, yajima/titleobj.xtx and yajima/titlebg2.bin.

Thanks very much in advance!
ロバが旅にでたところで馬になって帰ってくるわけじゃない。
Satoh
mega-veteran
mega-veteran
Posts: 194
Joined: Sat May 09, 2009 3:07 pm
Has thanked: 13 times
Been thanked: 38 times

Re: xenosaga 3 model??request

Post by Satoh »

The XTX in the KAO folder is a different format from all the rest of the XTXs. The KAO XTXs are raw 32bit RGBA images. There is only a header that gives info for the width and height and that's about it for the KAO folder.

Unfortunately that means the rest of the textures in this game are still mostly unconvertable.

(There are a few,--VERY few--, txy's that can be converted with the noesis plugin... I can think of 1... I think it was Wilhelm... but that's all...)
richard99uk
ultra-n00b
Posts: 2
Joined: Tue May 01, 2012 5:15 pm
Location: 東京

Re: xenosaga 3 model??request

Post by richard99uk »

I see. That's a shame. Thanks for letting me know Satoh.
ロバが旅にでたところで馬になって帰ってくるわけじゃない。
karechan89
ultra-n00b
Posts: 2
Joined: Fri May 25, 2012 10:18 pm

Re: xenosaga 3 model??request

Post by karechan89 »

I wanted to ask if someone has idea how to make script for ep1. I don't care for textures and rest things, I mostly need only shape of characters and if there will be possible to convert to 3d max maps too then it would be haven for me. It would help me a lot with my projects when I done with Sakura animations I make right now and after I finish remake of Missing year, because then I will move to remaking Freaks and Xenosaga Drama cd as animations. I can make them slowly myself but it would take much more time.
I see on link that was posted in this topic that someone menage to export ep1 models... If it will be break a little then it's ok, it's always better to fix some things then start from nothing.

Anyway, one more question, is coding for ep3 maps are diffrent then ep2? Because gameplay maps/places from ep2 are exporting very good but I tryed to do the same with ep3 and no luck, is there anyway to fix it? Well it's not so important as ep1 for me but there could be some usefull things there too.
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: xenosaga 3 model??request

Post by Darko »

karechan89 wrote:I wanted to ask if someone has idea how to make script for ep1. I don't care for textures and rest things, I mostly need only shape of characters and if there will be possible to convert to 3d max maps too then it would be haven for me. It would help me a lot with my projects when I done with Sakura animations I make right now and after I finish remake of Missing year, because then I will move to remaking Freaks and Xenosaga Drama cd as animations. I can make them slowly myself but it would take much more time.
I see on link that was posted in this topic that someone menage to export ep1 models... If it will be break a little then it's ok, it's always better to fix some things then start from nothing.

Anyway, one more question, is coding for ep3 maps are diffrent then ep2? Because gameplay maps/places from ep2 are exporting very good but I tryed to do the same with ep3 and no luck, is there anyway to fix it? Well it's not so important as ep1 for me but there could be some usefull things there too.
According to Mario, xenosaga I models are compressed so there's no way to convert them right now into something that most 3d programs can read unless someone figures out the compression method.
Image
karechan89
ultra-n00b
Posts: 2
Joined: Fri May 25, 2012 10:18 pm

Re: xenosaga 3 model??request

Post by karechan89 »

Hmmm, with file format has ep1 character models and maps? Maybe I search more on japan sites or I ask on my University, I suck at programing but one of my classmate is good at this maybe he find some clue.

If it's not possible then I will try to hack ep1 Reload character viewer to get to other models I need, but still that won't fix problem that I most need Maps files. Oh, well... Not all things goes easy.
DOTAPRINCE
veteran
Posts: 133
Joined: Tue May 17, 2011 6:17 am
Has thanked: 7 times
Been thanked: 3 times

Re: xenosaga 3 model??request

Post by DOTAPRINCE »

Can the textures be converted ?
User avatar
UltimateSora
beginner
Posts: 25
Joined: Thu Jun 23, 2011 7:56 pm
Has thanked: 5 times

Re: xenosaga 3 model??request

Post by UltimateSora »

Does anyone have the tools to get at the .chr files? I can't find the tools anywhere and this link that I suspect to be where the tools where hosted at is broken
http://godsibb.net/forums/index.php?/to ... __p__69487

Thanks. :)
Darko
double-veteran
double-veteran
Posts: 723
Joined: Mon Jul 13, 2009 6:16 pm
Has thanked: 72 times
Been thanked: 138 times

Re: xenosaga 3 model??request

Post by Darko »

UltimateSora wrote:Does anyone have the tools to get at the .chr files? I can't find the tools anywhere and this link that I suspect to be where the tools where hosted at is broken
http://godsibb.net/forums/index.php?/to ... __p__69487

Thanks. :)
Yeah, check my skydrive:

https://skydrive.live.com/#cid=FFBE4E57 ... 49FCBE!177
Image
Post Reply