Its not like you guys think,HCTP And SYM have different programming on blood,so there are less chances that we might have blood
ryokudou said:
then it will be okay i release v.1 wrestle, isn't it?
Yeah,i will tell you after i test one in SVR 06
<big>Now i would like to make some explanations about weight classes
1)Super Heavyweight(Batista,Ezekial Jackson,Kane,Undertaker,The Great Khali,Big Show are Examples)
2)Heavy Weight(HHH,Steve Austin,Randy Orton,John Cena Are Examples)
3)Cruserweight(Rey Mysterio,Chavo Guerrero)
4)Feather Weight(Divas)
To Extract the mesh:-
1)open up the YOBJ File in a Hex Editor.
2)Select all the data beginning from the header upto the word root(word root is excluded),Goto>File>New File,then paste the copied data.
3)Save it as mesh.yobj
4)Open up RRObjExporter and select mesh.yobj
5)Save the mesh
.........................................................................................................................
A simple python script to Open YOBJ Models in Blender
</big>
<blockquote class='quote\\_blockquote'><dl><dt>Quote:</dt><dd> </dd></dl><div>#2011-11-06 Glogow Poland Mariusz Szkaradek
#Rumble Roses(PS2) yobj importer
#press alt+p and select folder with yobj files (example: '...\1200.pac')
#IMPORT:
#-geometry with uv split per material
#-bones
import bpy,struct,os
import Blender
from Blender import *
from struct import *
import math
from math import *
from Blender.Mathutils import *
def create_object_name():
global model_id
ids = []
scene = bpy.data.scenes.active
for mat in Material.Get():
#print mat.name
try:
model_id = int(mat.name.split('-')[0])
ids.append(model_id)
except

ass
try:
model_id = max(ids)+1
except:
model_id = 0
def find_0():
s=''
while(True):
litera = struct.unpack('c',plik.read(1))[0]
if litera=='\x00':
break
else:
s+=litera
return s
def word(long):
s=''
for j in range(0,long):
lit = struct.unpack('c',plik.read(1))[0]
if ord(lit)!=0:
s+=lit
if len(s)>100000:
break
return s
def b

:
return struct.unpack(n*'b', plik.read

)
def B

:
return struct.unpack(n*'B', plik.read

)
def h

:
return struct.unpack(n*'h', plik.read(n*2))
def H

:
return struct.unpack(n*'H', plik.read(n*2))
def i

:
return struct.unpack(n*'i', plik.read(n*4))
def f

:
return struct.unpack(n*'f', plik.read(n*4))
def vertexuv():
for m in range(nMat):
#for m in range(nParts):
mesh.materials+=[Material.New()]
mesh.vertexUV = 1
mesh.faceUV = 1
for m in range(len(faceslist)):
for n in range(3):
uv_data = uvlist[m][n]
v_id = faceslist[m][n]
mesh.verts[v_id].uvco = Vector(uv_data)
f = mesh.faces[m]
f.uv = [v.uvco for v in f.verts]
f.mat = uvlist[m][3]
mesh.update()
def drawmesh(name):
global obj,mesh,scene
mesh = bpy.data.meshes.new(name)
mesh.verts.extend(vertexlist)
mesh.faces.extend(faceslist,ignoreDups=True,smooth =1)
scene = bpy.data.scenes.active
obj = scene.objects.new(mesh,name)
mesh.recalcNormals()
mesh.update()
Redraw()
def check_armature():
global armobj,newarm
armobj=None
newarm=None
scn = Scene.GetCurrent()
scene = bpy.data.scenes.active
for object in scene.objects:
if object.getType()=='Armature':
if object.name == 'armature':
scene.objects.unlink(object)
for object in bpy.data.objects:
if object.name == 'armature':
armobj = Blender.Object.Get('armature')
newarm = armobj.getData()
newarm.makeEditable()
for bone in newarm.bones.values():
del newarm.bones[bone.name]
newarm.update()
if armobj==None:
armobj = Blender.Object.New('Armature','armature')
if newarm==None:
newarm = Armature.New('armature')
armobj.link(newarm)
scn.link(armobj)
newarm.drawType = Armature.STICK
armobj.drawMode = Blender.Object.DrawModes.XRAY
def make_bone():
newarm.makeEditable()
for bone_id in range(len(bones)):
bonedata = bones[bone_id]
#bonename = str(bonedata[1][0])
bonename = bonedata[0]
eb = Armature.Editbone()
newarm.bones[bonename] = eb
newarm.update()
def make_bone_parent():
newarm.makeEditable()
for bone_id in range(len(bones)):
bonedata = bones[bone_id]
parent_id = bonedata[1]
bonename = bonedata[0]
if parent_id!=-1:
bone = newarm.bones[bonename]
#boneparent = newarm.bones[str(parent_id)]
boneparent = newarm.bones[bones[parent_id][0]]
bone.parent = boneparent
newarm.update()
def make_bone_position():
newarm.makeEditable()
for bone_id in range(len(bones)):
bonedata = bones[bone_id]
#bonename = str(bonedata[1][0])
bonename = bonedata[0]
pos = bonedata[2]
rot = bonedata[3]
rot = Euler(rot).toMatrix()
bone = newarm.bones[bonename]
if bone.parent:
bone.head = bone.parent.head+Vector(pos) * bone.parent.matrix
tempM = rot*bone.parent.matrix
bone.matrix = tempM
else:
bone.head = Vector(pos)
bone.matrix = rot
bvec = bone.tail- bone.head
bvec.normalize()
bone.tail = bone.head + 0.01 * bvec
newarm.update()
def skeleton():
check_armature()
make_bone()
make_bone_parent()
make_bone_position()
def parser():
global bones,vertexlist,faceslist,uvlist,nMat,nParts
print word(4)
offs = i(18);print offs
bones = []
plik.seek(offs[9]+8)
for a in range(offs[6]):
BoneName = word(16);print BoneName
tx = f(1)[0]
ty = f(1)[0]
tz = f(1)[0]
tw = f(1)[0]
rx = (f(1)[0] * 180) / pi
ry = (f(1)[0] * 180) / pi
rz = (f(1)[0] * 180) / pi
rw = f(1)[0]
parent = i(1)[0]
plik.seek(0xC,1)#seek_cur
qx = f(1)[0]
qy = f(1)[0]
qz = f(1)[0]
qw = f(1)[0]
bones.append([BoneName,parent,[tx,ty,tz],[rx,ry,rz]])
#tfm = (eulerangles rx ry rz) as matrix3
#append tarr [tx,ty,tz]
#append rarr tfm
#append qarr [qx,qy,qz,qw]
#append Barr BoneName
#append Parr parent
skeleton()
plik.seek(offs[8])
print plik.tell()
meshdata = []
for m in range(offs[5]):
back = plik.tell()
data = i(13);print m,data
pos = f(3)
meshdata.append([data,pos])
plik.seek(back+64)
#break
for m in range(offs[5]):
#for m in range(5):
print 'object-',m
vertexlist = []
faceslist = []
uvlist = []
data = meshdata[m][0]
plik.seek(data[8]+40)
back = plik.tell()
for n in range(data[12]):
vertexlist.append(f(3))
i(1)[0]
print plik.tell()
print i(4)
for n in range(data[12]):
f(4)
print plik.tell()
print i(4)
for n in range(data[11]):#weights
print n,f(4)
print plik.tell()
plik.seek(data[5]+8)
print plik.tell()
face_data = []
for n in range(data[3]):
f(8)
i(40)
var = i(4)#;print var
face_data.append(var)
#print plik.tell()
nMat = data[3]
for n in range(data[3]):#nMat
#faceslist = []
#uvlist = []
plik.seek(face_data[n][2]+8)
for k in range(face_data[n][1]):
k,i(4)
#back = plik.tell()
plik.seek(face_data[n][3]+8)
nParts = face_data[n][1]
for k in range(face_data[n][1]):#nParts
#print m,plik.tell()
var = B(32)#;print var
v1 = -1
v2 = -1
uv1 = -1
uv2 = -1
direct = -1
for l in range(var[16]):#nFaces
direct*=-1
#mesh.verts[m].uvco = Vector(uvlist[m])
uv3 = [f(1)[0],1-f(1)[0]]
l,f(1),
v3 = i(1)[0]
#print v1,v2,v3
f(4)
if v1!=-1 and v2!=-1:
if direct>0:
faceslist.append([v1,v2,v3])
uvlist.append([uv1,uv2,uv3,n])
#uvlist.append([uv1,uv2,uv3,k])
else:
faceslist.append([v1,v3,v2])
uvlist.append([uv1,uv3,uv2,n])
#uvlist.append([uv1,uv3,uv2,k])
v1=v2
uv1=uv2
v2=v3
uv2=uv3
drawmesh('model-'+str(m))
vertexuv()
Blender.Redraw()
print plik.tell()
def importer(filename):
global plik,dirname,basename,skala,nbBones
basename = sys.basename(filename)
print basename
dirname = sys.dirname(filename)
for file in os.listdir(dirname):
if file.split('.')[-1].lower()=='yobj':
plik = open(dirname+os.sep+file,'rb')
create_object_name()
parser()
Redraw()
plik.close()
Window.FileSelector (importer)[/quote]
<big>
Also here is The American Badass Version 1.0
</big>
<big>Glitches
--------
Eyes
Legs collapse during some moves
No Blood
Mouth has minor issues.
--------------------------------------------------------
Usage of the model is only feasible for testing purposes.</big>
http://www.datafilehost.com/d/ecf9b51f