Page 17 of 33
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Thu Oct 11, 2012 12:01 pm
by sophist82
252gt// Which version of Noesis are u using?
Because my noesis doesn't even show bones at all...
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Thu Oct 11, 2012 3:29 pm
by 252gt
Sorry
I edit the post
I CAN NOT see Bones
I am really Sorry
--Sorry for BAD English--
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Thu Oct 11, 2012 3:38 pm
by Darko
252gt wrote:Sorry
I edit the post
I CAN NOT see Bones
I am really Sorry
--Sorry for BAD English--
The recent script doesn't support bones and skinning.
See ya
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Thu Oct 11, 2012 11:38 pm
by zaykho
Darko wrote:252gt wrote:Sorry
I edit the post
I CAN NOT see Bones
I am really Sorry
--Sorry for BAD English--
The recent script doesn't support bones and skinning.
See ya
Yes Bones and animation are not supported yet.
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 1:17 am
by howfie
Bones are extractable from this game; they are in the HieLay section. Data is in a simple adjacency list with joints in relative positions. I have no time, but if anyone wants to convert the following code you may do so:
Code: Select all
#include "xentax.h"
#include "x_file.h"
#include "x_win32.h"
#include "x_stream.h"
using namespace std;
// HieLay 0x2A80
struct treenode {
real32 m[16];
real32 x;
real32 y;
real32 z;
uint32 parent;
deque<uint32> children;
};
bool traverse_tree(deque<treenode>& tree, uint32 root)
{
// get parent
uint32 parent = tree[root].parent;
// get relative position
real32 x = tree[root].m[12];
real32 y = tree[root].m[13];
real32 z = tree[root].m[14];
tree[root].x = x;
tree[root].y = y;
tree[root].z = z;
// relative-to-absolute position
if(parent != 0xFFFFFFFF) {
tree[root].x += tree[parent].x;
tree[root].y += tree[parent].y;
tree[root].z += tree[parent].z;
}
// DFS
for(size_t i = 0; i < tree[root].children.size(); i++)
traverse_tree(tree, tree[root].children[i]);
return true;
}
bool TestDOA5(void)
{
const char* filename = "HITOMI_DLC_006.TMC";
ifstream ifile(filename, ios::binary);
if(!ifile) return error("1");
// move to HieLay
uint32 hielayoffset = 0x2A80;
ifile.seekg(hielayoffset);
if(ifile.fail()) return error("2");
// read magic number
auto magic = BE_read_uint64(ifile);
if(magic != 0x4869654C61790000L) return error("3");
// read signature
auto signature = BE_read_uint32(ifile);
if(signature != 0xFF000101) return error("4");
// read headersize
auto headersize = BE_read_uint32(ifile);
if(headersize != 0x30) return error("5");
// read chunksize
auto chunksize = BE_read_uint32(ifile);
if(chunksize == 0) return error("6");
// read number of joints
auto njoints1 = BE_read_uint32(ifile);
auto njoints2 = BE_read_uint32(ifile);
if(njoints1 == 0) return error("7");
if(njoints2 == 0) return error("8");
if(njoints1 != njoints2) return error("9");
// read zero
auto z01 = BE_read_uint32(ifile);
if(ifile.fail()) return error("10");
// read headersize #2
auto headersize2 = BE_read_uint32(ifile);
if(headersize2 != 0x30) return error("11a");
if(headersize != headersize2) return error("11b");
// read zero
auto z02 = BE_read_uint32(ifile);
if(ifile.fail()) return error("12");
// read offset to matrices
auto moffset = BE_read_uint32(ifile);
if(moffset == 0) return error("13");
// read zero
auto z03 = BE_read_uint32(ifile);
if(ifile.fail()) return error("14");
// move back to the beginning
ifile.seekg(hielayoffset);
if(ifile.fail()) return error("15");
// read hielay section
boost::shared_array<char> data(new char[chunksize]);
ifile.read(data.get(), chunksize);
if(ifile.fail()) return error("16");
// create binary stream
binary_stream bs(data, chunksize);
// move to matrix offsets
bs.seek(headersize);
if(bs.fail()) return error("17");
// read offsets
deque<uint32> offsets;
for(auto i = 0u; i < njoints1; i++) {
auto item = bs.BE_read_uint32();
if(item == 0) return error("18");
offsets.push_back(item);
}
// read adjacency list
deque<treenode> adjlist;
for(auto i = 0u; i < njoints1; i++)
{
// move to data
bs.seek(offsets[i]);
if(bs.fail()) return error("19");
// read matrix
treenode node;
bs.BE_read_array(&node.m[0], 16);
if(bs.fail()) return error("20");
// x, y, z
auto x = node.m[12];
auto y = node.m[13];
auto z = node.m[14];
// parent
node.parent = bs.BE_read_uint32();
if(bs.fail()) return error("21");
// children
auto children = bs.BE_read_uint32();
if(bs.fail()) return error("22");
// unknowns
auto unk01 = bs.BE_read_uint32();
auto unk02 = bs.BE_read_uint32();
if(bs.fail()) return error("23");
// children
for(auto j = 0u; j < children; j++) {
auto index = bs.BE_read_uint32();
if(bs.fail()) return error("24");
node.children.push_back(index);
}
// add node
adjlist.push_back(node);
}
// traverse tree to compute relative to absolute
traverse_tree(adjlist, 0);
// create output file
stringstream ss;
ss << GetPathnameFromFilename(filename) << GetShortFilenameWithoutExtension(filename) << ".OBJ";
ofstream ofile(ss.str().c_str());
if(!ofile) return error("25");
// print vertices
for(size_t i = 0; i < adjlist.size(); i++) {
real32 x = adjlist[i].x;
real32 y = adjlist[i].y;
real32 z = adjlist[i].z;
ofile << "v " << x << " " << y << " " << z << endl;
}
// print faces
for(size_t i = 0; i < adjlist.size(); i++) {
for(size_t j = 0; j < adjlist[i].children.size(); j++) {
uint32 a = i + 1;
uint32 b = adjlist[i].children[j] + 1;
ofile << "f " << a << " " << b << endl;
}
}
return true;
}
int main()
{
TestDOA5();
return 0;
}
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 2:46 am
by mariokart64n
wow look at the bones they put there.. >_> on the boobs
no wonder they move weird, that setup for for having them ripple lol
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 3:23 am
by Darko
mariokart64n wrote:wow look at the bones they put there.. >_> on the boobs
no wonder they move weird, that setup for for having them ripple lol
It's beacuase they wanted to have "real boobs movements" lol.
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 3:50 am
by sophist82
That's great!!! howfie!!
Then would u able to get skin weight data from it as well?
I hope it isn't that hard to pull it out...
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 6:18 am
by MuffinMan123
can someone verify if this nude mod is real or shopped? the texture of the body looks like DOA4 so I am guessing this is DOA4 mod plus shopped DOA5 face. saw this on japanese site.
how can I disable the preview of the pic? it's not safe for work
Resize of 1349985587893.jpg
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 6:51 am
by mariokart64n
*cough* xnalara
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 8:38 am
by zaykho
MuffinMan123 wrote:can someone verify if this nude mod is real or shopped? the texture of the body looks like DOA4 so I am guessing this is DOA4 mod plus shopped DOA5 face. saw this on japanese site.

Yes it's a true one, at least, it's a perfect body from DOA 5, don't know if it's imported in the game.
Guys, next time provide the link !
here the link of where @MuffinMan123 found the picture -->
http://3d.skr.jp/3d/3d.php?res=254267
This one too is a perfect body from DOA5 :
http://www.coregrafx.info/sexy2/index.html
how can I disable the preview of the pic? it's not safe for work
We don't care of this shit here, nude or not, everything is the same when it's in 3D...
Some comparison DOA4/DOAX2 vs DOA5 with the little princess Kasusu : :p



some people have too much free time isn't it ? 
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 11:18 am
by wdw89
blackfoxeye wrote:wdw89 wrote:
My method:
1. Open doa5_360.py (v1.5) noesis script, replace "material.setSpecularTexture(texNameList[texId])" to "material.setNormalTexture(texNameList[texId])", because some hair's normal maps are set to specular map in the original script.
2. Use noesis to export to fbx and tga.
3. download filetexturemanager, a maya script.
http://www.creativecrash.com/maya/downl ... uremanager Put it in \Documents\maya\2013-x64 (your version)\scripts
4. Import fbx in maya, then type filetexturemanager in mel, enter. it can add texture path and extension (use the suffix)
5. You still need add alpha to transparency manually.
I can't find a script in 3ds max to batch add extension for textures, but 3ds max can change texture path using utilities-more-bitmap/photometric paths
I did all the steps you mentioned, but after opened the FileTextureManager, I am confused what to do.
How to add texture paths and extension ?
Can you please elaborate little bit more, how to use that.
Because all the texture names are in the fbx file, but without path and extension, so we need to add them.
After opening file texture manager:
1. Analyse scene file texture, then select the not exist one.
2. In target directory, change to the texture path.
3. In add suffix, type .tga (your texture extension with a dot)
4. Press set path, done.
The help tab has more information.
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 12:08 pm
by moge1975
how to get this texture?

Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Fri Oct 12, 2012 2:04 pm
by JayK
those textures are in the 7R* xpr2 files along with their respective tmcls
Re: Ninja Gaiden 3 (NG3) / Dead or Alive 5 (DOA5) noesis scr
Posted: Sun Oct 14, 2012 8:40 am
by misquared
I have noesis and the new script
However my PC can't take anymore space
May I ask for Kokoro's Pink Kimono (default) model please?

(This:
http://images1.wikia.nocookie.net/__cb2 ... Render.png)
That's the only one I want from this game^^;