Skip to content
View in the app

A better way to browse. Learn more.

ResHax

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Help us keep the site running.

Survarium, model exporting

Featured Replies

  • Author
  • Localization

Sundog1337, posted Sat Feb 19, 2022 11:58 pm (70022)


Having issues converting this backpack to something usable like obj or nif. I've looked up several tutorials on hex offsets but can't seem to either find one that makes sense, or is accurate to how to export survarium models, or find their offsets. I've been over to the thread on xentax and most of the links are broken. The link to "vetool.exe" which sound like my best bet is broken, and so far I haven't gotten any responses from members over there. I am able to show vertices in model researcher(pictured) but cannot find the faces offset, or it doesn't exist in the file, they also come with a "export_properties" file, but I have yet to find any useful information in those either. I also tried using ninja ripper and the games anticheat put a stop to that. I'm willing to try and learn but I've gone a few months with no success, if someone could either point me to a proper tutorial, walk me through how to do it, or just do it for me I'd appreciate it. I'm using it to make a story mod in FNV. Computers are frustrating lol.

https://www.mediafire.com/file/ooowrw1i ... k.zip/file

  • Author
  • Localization

DJ Normality, posted Sun Feb 20, 2022 12:51 am (70024)


From your samples
Image
  • Author
  • Localization

Sundog1337, posted Sun Feb 20, 2022 8:08 am (70028)


DJ Normality wrote:
From your samples
Image

You're my hero :D
Now I just need to fix this texture issue and I'll be good to go, it never ends lol :roll:

EDIT: UV was flipped on X axis in Model Researcher, flipped it and itworked. Did the same thing in nifskope on the "T" axis and it fixed the issue entirely. Thanks again for your help, if you could show me how to do this on my own in the future I'd really appreciate it, but couldn't have done this without you, last pic is screenshot of it in game :D





  • Author
  • Localization

DJ Normality, posted Sun Feb 20, 2022 10:10 am (70029)


Flip uv's
  • Author
  • Localization

h3x3r, posted Mon Feb 21, 2022 7:23 pm (70057)


Or you can try my template for 010 Hex Editor which print model data to *.obj file. Should work on most of formats. Hope they doesn't change model struct. Doesn't support normals. I don't know how to process them.
Just open "converted_model" in 010 Hex editor and run tamplate on it.
Code:
//--------------------------------------
//--- 010 Editor v6.0.3 Binary Template
//
// File:
// Author:
// Revision:
// Purpose:
//--------------------------------------
//Survarium converted_model
//BigEndian();
local int i, FVFSize, index;
local string s0,s1,s2,s3,s4,filename;

s0="v";
s1="vn";
s2="vt";
s3="f";
s4="";

int vertID;
int VBSize;
int VertexCount;
FVFSize=VBSize/VertexCount;

struct VTXBLOCK {
if (FVFSize==40) {
for (i=0;istruct VT_0{
        float VTX;
        float VTY;
        float VTZ;
        Printf("%s %f %f %f\n", s0, VTX*100, VTY*100, -VTZ*100);
struct VN_0 {
        float VNX;
        float VNY;
        float VNZ;
        float UNK;
        float UNK0;
        float UNK1;
//        Printf("%s %f %f %f\n", s1, VNX, VNY, VNZ);
struct UV_0 {
        hfloat VTU;
        hfloat VTV;
        Printf("%s %f %f\n", s2, VTU, -VTV 1);
            }uv_0;
        }vn_0;
    }vt_0;
}
else if (FVFSize==36) {
for (i=0;istruct VT_1 {
        float VTX;
        float VTY;
        float VTZ;
        Printf("%s %f %f %f\n", s0, VTX*100, VTY*100, -VTZ*100);
struct VN_1 {
        float VNX;
        float VNY;
        float VNZ;
        float UNK;
        float UNK0;
//        Printf("%s %f %f %f\n", s1, VNX, VNY, VNZ);
struct UV_1 {
        hfloat VTU;
        hfloat VTV;
        Printf("%s %f %f\n", s2, VTU, -VTV 1);
            }uv_1;
        }vn_1;
    }vt_1;
}
else if (FVFSize==32) {
for (i=0;istruct VT_2 {
        float VTX;
        float VTY;
        float VTZ;
        Printf("%s %f %f %f\n", s0, VTX*100, VTY*100, -VTZ*100);
struct VN_2 {
        float VNX;
        float VNY;
        float VNZ;
        float UNK;
//        Printf("%s %f %f %f\n", s1, VNX, VNY, VNZ);
struct UV_2 {
        hfloat VTU;
        hfloat VTV;
        Printf("%s %f %f\n", s2, VTU, -VTV 1);
            }uv_2;
        }vn_2;
    }vt_2;
}
else if (FVFSize==28) {
for (i=0;istruct VT_3 {
        float VTX;
        float VTY;
        float VTZ;
        Printf("%s %f %f %f\n", s0, VTX*100, VTY*100, -VTZ*100);
struct VN_3 {
        float VNX;
        float VNY;
        float VNZ;
//        Printf("%s %f %f %f\n", s1, VNX, VNY, VNZ);
struct UV_3 {
        hfloat VTU;
        hfloat VTV;
        Printf("%s %f %f\n", s2, VTU, -VTV 1);
            }uv_3;
        }vn_3;
    }vt_3;
}
else
for (i=0;istruct VT_4 {
        float VTX;
        float VTY;
        float VTZ;
        Printf("%s %f %f %f\n", s0, VTX*100, VTY*100, -VTZ*100);
struct VN_4 {
        hfloat VNX;
        hfloat VNY;
        hfloat VNZ;
        hfloat VNW;
//        Printf("%s %f %f %f\n", s1, VNX, VNY, VNZ);
struct UV_4 {
        hfloat VTU;
        hfloat VTV;
        Printf("%s %f %f\n", s2, VTU, -VTV 1);
            }uv_4;
        }vn_4;
    }vt_4;
}vtxblock;

int IndexID;
index=IndexID;
if (index==5) {
struct BONES {
    int BoneCount;
struct Index {
    ubyte idx[BoneCount];
    int unk0;
    int blocksize;
    ubyte block[blocksize];   
    }idx;
}bones;

struct FACEINDICES_0 {
        int IndexID;
        int FBSize;
        int FICount;
for (i=0;istruct INDICES_0 {
        ushort FX;
        ushort FY;
        ushort FZ;
//        Printf("%s %u/%u/%u %u/%u/%u %u/%u/%u\n", s3, FX 1,FX 1,FX 1, FY 1,FY 1,FY 1, FZ 1,FZ 1,FZ 1); //normal
        Printf("%s %u/%u/%u %u/%u/%u %u/%u/%u\n", s3, FZ 1,FZ 1,FZ 1, FY 1,FY 1,FY 1, FX 1,FX 1,FX 1); //-
    }fi_0;
}fb_0;
}
else
struct FACEINDICES_1 {
        int FBSize;
        int FICount;
for (i=0;istruct INDICES_1 {
        ushort FX;
        ushort FY;
        ushort FZ;
//        Printf("%s %u/%u/%u %u/%u/%u %u/%u/%u\n", s3, FX 1,FX 1,FX 1, FY 1,FY 1,FY 1, FZ 1,FZ 1,FZ 1); //normal
        Printf("%s %u/%u/%u %u/%u/%u %u/%u/%u\n", s3, FZ 1,FZ 1,FZ 1, FY 1,FY 1,FY 1, FX 1,FX 1,FX 1); //-
    }fi_1;
}fb_1;
int next;
filename=GetFileName();
OutputPaneSave(filename ".obj");
  • Author
  • Localization

DJ Normality, posted Tue Feb 22, 2022 1:55 am (70063)


You can learn simple stuff like this in my server i sent you a link. ;)

@h3x3r thanks for the 010 template i dont have that unfortunately. but glad to see you around still. thanks for all your help.
Guest
This topic is now closed to further replies.

Account

Navigation

Search

Search

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.