9D Redesigned Environment using Unreal Engine

01/31/2015 15:40 bog18dy#16
Quote:
Originally Posted by xtJamie View Post
Blender supports x3d according to the supported formats in blender?
Not the x3d 9d uses... 9D's x3d models are special and are obtained by using the converter... This converter:...
[Only registered and activated users can see links. Click Here To Register...]

Maybe you can work something out... If you have time... Check this: [Only registered and activated users can see links. Click Here To Register...]
01/31/2015 15:52 bog18dy#17
Quote:
Originally Posted by xtJamie View Post
I don't know anything about those tools. I would have thought the x3d file would be the same as any other but I guess the conversion changes the file header?
From my previous post:
Quote:
Originally Posted by bogdy18
Maybe you can work something out... If you have time... Check this: [Only registered and activated users can see links. Click Here To Register...]
Also the script written in python for importing 9D's x3d models using Noesis.
Would appreciate if anyone could do a similar plugin for blender. :D
Code:
'''Noesis import plugin. Written by Tsukihime'''

from inc_noesis import *
import noesis
import rapi

def registerNoesisTypes():
    '''Register the plugin. Just change the Game name and extension.'''
    
    handle = noesis.register("9 Dragon", ".x3d")
    noesis.setHandlerTypeCheck(handle, noepyCheckType)
    noesis.setHandlerLoadModel(handle, noepyLoadModel)
    return 1

def noepyCheckType(data):
    '''Verify that the format is supported by this plugin. Default yes'''
    
    if len(data) < 4:
        return 0
    bs = NoeBitStream(data)
    idstring = bs.readUInt()
    if idstring != 44545:
        return 0
    return 1

def noepyLoadModel(data, mdlList):
    '''Build the model, set materials, bones, and animations. You do not
    need all of them as long as they are empty lists (they are by default)'''
    
    ctx = rapi.rpgCreateContext()
    parser = SanaeParser(data)
    parser.parse_file()
    mdl = rapi.rpgConstructModel()
    mdl.setModelMaterials(NoeModelMaterials(parser.texList, parser.matList))
    mdl.setBones(parser.boneList)
    mdl.setAnims(parser.animList)
    mdlList.append(mdl)
    return 1

class SanaeParser(object):
    
    def __init__(self, data):    
        '''Initialize some data. Refer to Sanae.py to see what is already
        initialized'''
        
        self.inFile = NoeBitStream(data)
        self.animList = []
        self.texList = []
        self.matList = []
        self.boneList = []
        self.dirpath = rapi.getDirForFilePath(rapi.getInputName())
        
    def read_name(self):
        
        string = self.inFile.readBytes(self.inFile.readUInt())
        return noeStrFromBytes(string)
        
    def parse_materials(self, meshType):
            
        texName = self.read_name()
        if meshType == 1:
            texName2 = self.read_name()
            
        texPath = self.dirpath + "textures\\" + texName
        matName = "material[%d]" %len(self.matList)
        material = NoeMaterial(matName, texPath)
        self.matList.append(material)
        return matName
        
    def parse_textures(self, numTex):
            
        pass    
        
    def parse_vertices(self, numVerts, meshType):
        
        if meshType == 0:
            vertBuff = self.inFile.readBytes(numVerts*32)
            rapi.rpgBindPositionBufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 32, 0)
            rapi.rpgBindNormalBufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 32, 12)
            rapi.rpgBindUV1BufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 32, 24)
        elif meshType == 1:
            vertBuff = self.inFile.readBytes(numVerts*40)
            rapi.rpgBindPositionBufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 40, 0)
            rapi.rpgBindNormalBufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 40, 12)
            rapi.rpgBindUV1BufferOfs(vertBuff, noesis.RPGEODATA_FLOAT, 40, 24)
    
    def parse_faces(self, numIdx):
        
        return self.inFile.readBytes(numIdx*2)
    
    def parse_weights(self, numWeights):
            
        for i in range(numWeights):
            unk = self.inFile.readUInt()
            for j in range(unk):
                self.inFile.readFloat()
                self.inFile.readUInt()
        if numWeights:
            count2 = self.inFile.readUInt()
            self.inFile.seek(count2 * 2, 1)
    
    def parse_meshes(self, numMesh, meshType):
        '''meshType 1 == static, type 0 == skinned'''
        
        for i in range(numMesh):
            self.inFile.readUInt()
            meshName = self.read_name()
            self.inFile.readInt()
            self.read_name()
            matrix = self.inFile.read('16f')
            
            matName = self.parse_materials(meshType)
            numVerts = self.inFile.readUInt()
            self.parse_vertices(numVerts, meshType)
            numIdx = self.inFile.readUInt()
            idxBuff = self.parse_faces(numIdx)
            numWeights = self.inFile.readUInt()
            if numWeights:
                self.parse_weights(numWeights)
            
            rapi.rpgSetMaterial(matName)
            rapi.rpgCommitTriangles(idxBuff, noesis.RPGEODATA_USHORT, numIdx, noesis.RPGEO_TRIANGLE, 1)
    
    def parse_bones(self, numBones):
        
        pass
        
    def parse_file(self):
        '''Main parser method'''
        
        idstring = self.inFile.readUInt()
        meshType = round(self.inFile.readFloat(), 2)
        self.inFile.seek(60, 1)
        numMesh = self.inFile.readUInt()
        print(meshType)
        if meshType == 0.73:
            self.parse_meshes(numMesh, 1)
        elif meshType == 0.72:
            self.parse_meshes(numMesh, 0)
01/31/2015 16:05 bog18dy#18
Quote:
Originally Posted by xtJamie View Post
I'll have a look into it. Whilst I understand python which is a start as the plugin was written in Python, I would have to heavily read up on 3d modelling and 3d re. I also don't have much knowledge in hex or file examining file formats.
The skins (textures) they use are NOT converted, so basicly if we manage to import/export models we are able to recreate mobs/buildings (without being able to change their lv- if mob / position - if building) however animations would be messed up. So yeah, we'd be able to create AWESOME weapons and decos :D

Also they use a single texture file for multiple models...
01/31/2015 16:22 Adek#19
Quote:
Originally Posted by bog18dy View Post
The skins (textures) they use are NOT converted, so basicly if we manage to import/export models we are able to recreate mobs/buildings (without being able to change their lv- if mob / position - if building) however animations would be messed up. So yeah, we'd be able to create AWESOME weapons and decos :D

Also they use a single texture file for multiple models...
While we're talking about models/textures. Don't forget what happened with refinement effects when (I think Witek did that) changed model from PS to IM weapons. I guess we can't fix that with just simple rendering new weapon models.

btw. waiting for new refinement effects :rolleyes: got some funny ideas related to these, if we ever got any chance to edit those
01/31/2015 20:43 bog18dy#20
Quote:
Originally Posted by adek1994 View Post
While we're talking about models/textures. Don't forget what happened with refinement effects when (I think Witek did that) changed model from PS to IM weapons. I guess we can't fix that with just simple rendering new weapon models.

btw. waiting for new refinement effects :rolleyes: got some funny ideas related to these, if we ever got any chance to edit those
.XES files... That's another thing...
You can avoid the weapons glow bug by making weapons that have the same size/similar shape...

Creating new glows is a far from reality... I doubt that we'd be able to do such a thing without the testing/development tools...

However I always imagined that +18 would be introduced along with an icy storyline... Something like "the 6 remaining clans have conquered the icy palace, they've discovered some snowflakes that dropped from the body of the old princess...It seems that it flies towards the weapons... What a shine..."
The effect should be something like +14 but with white and blue and some small snowflakes.

+19 should maybe be something like +12 combined with +15 and come with a storyline of conquering Tibet.


+20(success rate = 100%) should be obtainable by league pvp event (hefei arenas), the LM gets the material... 1 event/ month (the ref lv should come with a story of finding the bodies of the 9dragons and it should be called "Blood of the Nine Dragons")

The rates would be 100% until +10, decreasing down to 50% at +14, 35% at +15, ... 3% at +19.

Also new effects for cloth refinement...

Mob/bosses should be remade (dmg/defense/drop/debuffs adjustments)... (also bosses should drop by "last hit", not by "most damage")

Pvp effects/skill effects need to be rethought...

This would require the tools and the source code for the client/server (all of them being for the same version).

Sadly, unless somebody like odasm decides to share them (which to be honest if I were him I wouldn't, because too many will just grab it and start making profit, we wouldn't have a dream-like version anyway) it's all boring talk.

If such a server would exist, it had to be p2p... I hate saying it, but I believe that's the best for 9D...However no more p2w item mall then....=
01/31/2015 21:00 sheik_gray#21
Quote:
Originally Posted by xtJamie View Post
Is it possible someone has built a plugin and converted the models from the map files over to unity?

i managed to import textured deco and cloths models, but havent tryed with maps, but well better if we try to make a new maps with improved textures and bigger, btw i was using the textures that came in 9d because was not having textures in hand at that momment

[Only registered and activated users can see links. Click Here To Register...]
[Only registered and activated users can see links. Click Here To Register...]
01/31/2015 21:51 bog18dy#22
If you unpack VR_ENVIRONMENT you'll get some .xtv files... Those are the files that "arrange" the 3d models and apply texture to them (those are the maps).

@sheik, did you simply import the models over ? No converter used ?

Also can you export models to 9d .x3d models ?

I highly doubt that it is possible to create something new (which is working with the original client .exe) as long as you don't have the tools...

I'm almost sure that you cannot create new maps and implement them into the game.

Map editor is needed :D
01/31/2015 23:26 sheik_gray#23
Quote:
Originally Posted by bog18dy View Post
If you unpack VR_ENVIRONMENT you'll get some .xtv files... Those are the files that "arrange" the 3d models and apply texture to them (those are the maps).

@sheik, did you simply import the models over ? No converter used ?

Also can you export models to 9d .x3d models ?

I highly doubt that it is possible to create something new (which is working with the original client .exe) as long as you don't have the tools...

I'm almost sure that you cannot create new maps and implement them into the game.

Map editor is needed :D
look at noesis, it have a option called "export " or "export from preview"
then you have select the format , but can remember what format i use try with this: (with unity engine)
.FBX or .OBJ , .dae , as i remeber not all models was importing the textures properly so test the formats and one of that have to work.

about implement new maps in the actual client seems pointless since we want to get rid of the flaws in client and some known bugs, better to do something from scratch... with a new client and server, also with custom Gm command line and much more... but of course that will take years

butif you like the idea of reverse to make it work with actual files i guess it will not be easy.
02/01/2015 00:53 Fugea#24
Quote:
Originally Posted by bog18dy View Post
.XES files... That's another thing...
You can avoid the weapons glow bug by making weapons that have the same size/similar shape...

Creating new glows is a far from reality... I doubt that we'd be able to do such a thing without the testing/development tools...

However I always imagined that +18 would be introduced along with an icy storyline... Something like "the 6 remaining clans have conquered the icy palace, they've discovered some snowflakes that dropped from the body of the old princess...It seems that it flies towards the weapons... What a shine..."
The effect should be something like +14 but with white and blue and some small snowflakes.

+19 should maybe be something like +12 combined with +15 and come with a storyline of conquering Tibet.


+20(success rate = 100%) should be obtainable by league pvp event (hefei arenas), the LM gets the material... 1 event/ month (the ref lv should come with a story of finding the bodies of the 9dragons and it should be called "Blood of the Nine Dragons")

The rates would be 100% until +10, decreasing down to 50% at +14, 35% at +15, ... 3% at +19.

Also new effects for cloth refinement...

Mob/bosses should be remade (dmg/defense/drop/debuffs adjustments)... (also bosses should drop by "last hit", not by "most damage")

Pvp effects/skill effects need to be rethought...

This would require the tools and the source code for the client/server (all of them being for the same version).

Sadly, unless somebody like odasm decides to share them (which to be honest if I were him I wouldn't, because too many will just grab it and start making profit, we wouldn't have a dream-like version anyway) it's all boring talk.

If such a server would exist, it had to be p2p... I hate saying it, but I believe that's the best for 9D...However no more p2w item mall then....=
U are kidding with me right? The ONLY refi effect that is still missing is huge fuckin, dark, very empty black. Same shape as +17 refi, just full abyss black! Or black+purple. Would be awesome, I'd lick my own balls in hapiness.
02/01/2015 09:33 Adek#25
Quote:
Originally Posted by Fugea View Post
U are kidding with me right? The ONLY refi effect that is still missing is huge fuckin, dark, very empty black. Same shape as +17 refi, just full abyss black! Or black+purple. Would be awesome, I'd lick my own balls in hapiness.
I thought about mixing black & white/light blue.
02/01/2015 09:58 bog18dy#26
Quote:
Originally Posted by sheik_gray View Post
look at noesis, it have a option called "export " or "export from preview"
then you have select the format , but can remember what format i use try with this: (with unity engine)
.FBX or .OBJ , .dae , as i remeber not all models was importing the textures properly so test the formats and one of that have to work.

about implement new maps in the actual client seems pointless since we want to get rid of the flaws in client and some known bugs, better to do something from scratch... with a new client and server, also with custom Gm command line and much more... but of course that will take years

butif you like the idea of reverse to make it work with actual files i guess it will not be easy.
Key word: "it will take years"
I don't really want a new game, just updated graphics on this one.
02/01/2015 10:15 Adek#27
Quote:
Originally Posted by bog18dy View Post
Key word: "it will take years"
I don't really want a new game, just updated graphics on this one.
I don't even need updated graphics. Just something new.

BTW. revamping some old maps/dungeons will be, at least, interesting.
02/01/2015 10:46 bog18dy#28
Quote:
Originally Posted by adek1994 View Post
I don't even need updated graphics. Just something new.

BTW. revamping some old maps/dungeons will be, at least, interesting.
Agreed...
Maybe 9d 2 is the way to go... or pay 3000$ for the 2005 tools :D
02/01/2015 14:51 Adek#29
Quote:
Originally Posted by bog18dy View Post
Agreed...
Maybe 9d 2 is the way to go... or pay 3000$ for the 2005 tools :D
Nope, thanks. 9d2 isn't gonna be that funny as 9D. I just want some changes here and now.
02/01/2015 17:54 bog18dy#30
Quote:
Originally Posted by adek1994 View Post
Nope, thanks. 9d2 isn't gonna be that funny as 9D. I just want some changes here and now.
"Here and now"? Unlikely!