Leaderboard
Popular Content
Showing content with the highest reputation on 11/12/2024 in all areas
-
How to rip 3D models from LEGO Racers?
pedroj234 reacted to LeonidaselXD for a topic
I would like to know how to rip the 3D models of LEGO Racers, such as racers, maps, textures, etc. in the pc version1 point -
1 point
-
Help with Install Lego Racers 2, don't open
pedroj234 reacted to Osmanny P. for a topic
Hello everybody, somebody know how to install correctly LEGO Racers 2? I installed with alternative installer, put the No-CD patch and change the compability settings but don't start, it only appear in task bar for one instant. Please help i want to play it.1 point -
Help with Install Lego Racers 2, don't open
pedroj234 reacted to Osmanny P. for a topic
Hello everybody, somebody know how to install correctly LEGO Racers 2? I installed with alternative installer, put the No-CD patch and change the compability settings but don't start, it only appear in task bar for one instant. Please help i want to play it.1 point -
How to play LEGO Racers 2 on a PC/Laptop without a disc drive
pedroj234 reacted to LazerLuke19 for a topic
Got a new laptop for my birthday yesterday but it doesn't have a disc drive. Is there a way to play LEGO Racers 2 on a laptop without a disc drive so I can use mods?1 point -
How to play LEGO Racers 2 on a PC/Laptop without a disc drive
pedroj234 reacted to Thomkok23 for a topic
[removed]1 point -
More unused/weird models
pedroj234 reacted to bradleybrand for a topic
If anyone knows of anymore, I would be interested in seeing them.1 point -
Dino Island Car Building - Crate isn't fitting anywhere!
pedroj234 reacted to dy_enforcer for a topic
Actually the flags can be put in one piece, which is a plate. Here is an example using a 1x2 green plate1 point -
.MD2 Blender Import/Export Add-on Early Release
pedroj234 reacted to Cirevam for a topic
I exported a test model to see how that worked. I'm not used to Blender, but I was able to get it to work. The crystal is supposed to have a red texture on it, but it didn't seem to load COMMON\TEXTURES\PIN_RED.MIP The crystal does not have collision, as is expected at this time. Good progress so far.1 point -
.MD2 Blender Import/Export Add-on Early Release
pedroj234 reacted to epicabsol for a topic
Here's a link to MD2File.cs, from my DromeEd project: https://pastebin.com/ZwgbZBUQ Drome uses MDL3 so that's assumed in some places.1 point -
.MD2 Blender Import/Export Add-on Early Release
pedroj234 reacted to lol username for a topic
The engine was used in other games besides LR2 (including non-LEGO games; it was a general purpose engine made and owned by ATD). LR2 didn't use all the features provided, and some didn't exist at the time LR2 was made.1 point -
.MD2 Blender Import/Export Add-on Early Release
pedroj234 reacted to Irup for a topic
Updated again because the normals are fixed now. This is before, with Blender's automatically generated normals: This is now, with the original normals preserved: Shaders are still not a reality just yet.1 point -
Is LibLR2 source available anywhere? (WIP Blender import script)
pedroj234 reacted to Irup for a topic
I'm developing a Blender import script, but I've not been able to find source code or documentation of any kind for Will Kirby's LibLR2, which is used in the model viewer. I've done my research and reverse-engineered the model files to the point where I can do what the viewer can do, but I wouldn't want to reinvent the wheel any more if the work is already done and available. Edit: Here's the WIP script that imported the above mesh. It works with most models. It's for testing, so you're supposed to use it from the text editor. Change the strings at the bottom of the script to your own file locations. Image tutorial below. from struct import unpack from sys import argv from os.path import split, splitext, join import bpy, bmesh def readnulltermstring(input,skip=False): if type(input) in (str, bytes): #else it's a file object null = '\0' if type(input)==str else b'\0' return input[:input.index(null)] if null in input else input if skip: while 1: c = input.read(1) if not c or c == b'\0': return buildstring = bytearray() while 1: c = input.read(1) if not c or c == b'\0': return buildstring buildstring += c # All models use the .md2 extension, but the actual file format within is discernible by the first 4 bytes. # MDL2 and MDL1 are chunking formats, but MDL0 is not. A chunk's name is a 4-byte int, followed by a length also represented in a 4-byte int. # .bsb files are skeletons, pointing to associated animation .bsa files # .mip textures are .tga files. def import_discern(filepath): with open(filepath,'rb') as f: first4 = f.read(4) if first4 == b'MDL2': return import_mdl2(filepath) elif first4 == b'MDL1': return import_mdl1(filepath) elif first4 == b'MDL0': return import_mdl0(filepath) else: raise AssertionError('Input file is not of type MDL2, MDL1, or MDL0.') def import_mdl2(filepath): f = open(filepath,'rb') open_textures = True try: rootpath = filepath[:filepath.lower().index('game data')] except ValueError: open_textures = False print('Could not trace back to root directory "GAME DATA".') offset = 0 texture_paths = [] objects = [] while 1: chunk_name = f.read(4) if chunk_name == b'\0\0\0\0' or not chunk_name: break chunk_size = unpack('I', f.read(4))[0] chunk_base = f.tell() print('%s: %s' % (chunk_name.decode('ascii'), hex(chunk_size))) if chunk_name == b'MDL2': ints = tuple(f.read(4) for x in range(32)) mdl2_texturecount = unpack('I', f.read(4))[0] mdl2_texturebase = f.tell() print(' Textures:', mdl2_texturecount) for texture_id in range(mdl2_texturecount): texture_path = readnulltermstring(f.read(256)).decode('ascii') texture_type ,\ texture_index = unpack('2I', f.read(8)) print(' ' + texture_path) texture_paths += [texture_path] materials = [bpy.data.materials.new(splitext(split(x)[1])[0]) for x in texture_paths] elif chunk_name == b'P2G0': # weights? pass elif chunk_name == b'GEO1': geo1_unknown0,\ geo1_unknown1,\ geo1_unknown2,\ geo1_meshes = unpack('2IfI', f.read(16)) geo1_unknown4 = unpack('I', f.read(4))[0] geo1_unknown5 = unpack('f', f.read(4))[0] print(' Split models: %i' % geo1_meshes) # meshes are split because textures are defined per mesh for model in range(geo1_meshes): print(' Model %i' % model) md2_bmesh = bmesh.new() geo1_mesh_unknown21 = unpack('H', f.read(2))[0] geo1_mesh_unknown22 = unpack('H', f.read(2))[0] geo1_mesh_unknown0 = unpack('f', f.read(4))[0] geo1_mesh_unknown1 = unpack('f', f.read(4))[0] geo1_mesh_unknown2 = unpack('f', f.read(4))[0] geo1_mesh_unknown3 = unpack('f', f.read(4))[0] geo1_mesh_unknown4 = unpack('I', f.read(4))[0] geo1_mesh_unknown5 = unpack('I', f.read(4))[0] geo1_mesh_unknown6 = unpack('I', f.read(4))[0] geo1_mesh_texture = unpack('H', f.read(2))[0] geo1_mesh_unknown7 = unpack('H', f.read(2))[0] geo1_mesh_unknown8 = unpack('I', f.read(4))[0] geo1_mesh_unknown9 = unpack('I', f.read(4))[0] geo1_mesh_unknown10 = unpack('I', f.read(4))[0] geo1_mesh_unknown11 = unpack('I', f.read(4))[0] geo1_mesh_unknown12 = unpack('I', f.read(4))[0] geo1_mesh_unknown13 = unpack('I', f.read(4))[0] geo1_mesh_unknown14 = unpack('I', f.read(4))[0] geo1_mesh_unknown15 = unpack('I', f.read(4))[0] geo1_mesh_unknown16 = unpack('I', f.read(4))[0] geo1_mesh_unknown17 = unpack('I', f.read(4))[0] geo1_mesh_vertexsize= unpack('I', f.read(4))[0] geo1_mesh_unknown19 = unpack('I', f.read(4))[0] geo1_mesh_unknown20 = unpack('H', f.read(2))[0] print(' Texture: %s' % texture_paths[geo1_mesh_texture]) #print(' Start of vertices:', hex(f.tell())) geo1_mesh_vertices = unpack('H', f.read(2))[0] geo1_mesh_unknownxyz = unpack('3f', f.read(4*3)) #print(' Vertices:', geo1_mesh_vertices) geo1_mesh_vertexbase = f.tell() print(' Vertices: %i' % geo1_mesh_vertices) uvs = [] for vertex in range(geo1_mesh_vertices): md2_bmesh.verts.new() md2_bmesh.verts.ensure_lookup_table() print(' Vertex format: 0x%04x' % geo1_mesh_unknown20) for vertex in range(geo1_mesh_vertices): vertex_xyz = unpack('3f', f.read(4*3)) if geo1_mesh_vertexsize == 0x20: pass elif geo1_mesh_vertexsize == 0x24: geo1_mesh_unknown20_f = unpack('f', f.read(4))[0] elif geo1_mesh_vertexsize == 0x28: geo1_mesh_unknown20_f = unpack('2f', f.read(8)) else: raise AssertionError('Unexpected vertex struct size (%s).' % hex(geo1_mesh_vertexsize)) vertex_normal = unpack('3f', f.read(4*3)) vertex_uv = unpack('2f', f.read(4*2)) md2_bmesh.verts[vertex].co = vertex_xyz md2_bmesh.verts[vertex].normal = vertex_normal uvs += [vertex_uv] print(' End of vertices:', hex(f.tell())) geo1_mesh_unknown19 = unpack('I', f.read(4))[0] geo1_mesh_unknown20 = unpack('I', f.read(4))[0] #print(' Start of polygons:', hex(f.tell())) geo1_mesh_polygons = unpack('I', f.read(4))[0] // 3 print(' Polygons: %i' % geo1_mesh_polygons) for polygon in range(geo1_mesh_polygons): md2_bmesh.faces.new((md2_bmesh.verts[x] for x in unpack('3H', f.read(2*3))))#.material_index = geo1_mesh_texture #print(' End of polygons:', hex(f.tell())) # set uv maps md2_bmesh.verts.ensure_lookup_table() md2_bmesh.faces.ensure_lookup_table() md2_bmesh.verts.index_update() uv_layer = md2_bmesh.loops.layers.uv.new() for face in md2_bmesh.faces: for loop in face.loops: loop[uv_layer].uv = uvs[loop.vert.index] md2_mesh = bpy.data.meshes.new(str(model)) md2_bmesh.to_mesh(md2_mesh) md2_obj = bpy.data.objects.new(str(model), md2_mesh) md2_obj.data.materials.append(materials[geo1_mesh_texture]) bpy.context.scene.objects.link(md2_obj) objects += [md2_obj] elif chunk_name == b'COLD': pass offset += 8 + chunk_size f.seek(offset) f.close() for object in objects: object.select = True bpy.context.scene.objects.active = objects[0] bpy.ops.object.join() objects[0].rotation_euler = (__import__('math').pi / 2, 0, 0) if open_textures: for texturepath in texture_paths: bpy.ops.image.open(filepath = join(rootpath, splitext(texturepath)[0] + '.mip')) def export_mdl2(filepath): pass import_discern( r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\LOM\OBJECTS\MODELS\REJOOV_WORKGODAMNYOU.MD2' ) r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\ADVENTURERS\OBJECTS\MODELS\WATERFALL_01.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\CHARACTERS\HEADS\MODELS\PLAYER1.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\ANIMATION\ALBATROS\ALBATROS.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\CHARACTERS\HEADS\MODELS\SPARKY.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\LOM\OBJECTS\MODELS\REJOOV_WORKGODAMNYOU.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\OBJECTS\BRICKS\SQUARE\1X1 RED hacked.MD2' r'C:\Users\Irup\Desktop\lr2\GAMEDATA\GAME DATA\OBJECTS\BRICKS\SQUARE\1X1 RED.MD2'1 point -
My (Almost) Complete Rama Collection
pedroj234 reacted to ShadowDraikana for a gallery image
1 point -
My (Almost) Complete Rama Collection
pedroj234 reacted to ChileDawg for a gallery image
1 point -
LEGO Racers 2 Cheat Engine Hacks
pedroj234 reacted to Modded Lego for a topic
Ok i found it,thanks! I told kajeuter this: That should get the message across! Thanks i would have never thought of using Youtube! :af:1 point -
1 point
-
Some LEGO Racers sets (and other stuff)
pedroj234 reacted to BeepBoop for a topic
Hello! Just sharing some pictures of my collection. Please excuse the badly taken photos and really poor lighting. Mostly just to show some of the sets that were (partially) used in the LEGO Racers games. Bosses and opponents: Circuits 1 & 4 Circuit 2, 3, 5 & 6 Non LEGO Racers thingies0 points -
Play As A Martian Official
pedroj234 reacted to Sunchipp for a topic
I've seen some people ask if there is a way to play as a Martian through some of the modding topics! I Have the answer which is Yes AND No. Yes being It is Possible to play as a martian Through The Modding And No Being The Martian Models That Are Playable Arent Character Models HOWEVER They Are Attached to Hover Car Models! About A Year Ago I've Uploaded A Video About Modding Background Cars As Brick Pieces for the cars to use. Heres the video: The way this was put together I have replaced one of the weird pieces with the purple hover car that flies around in one spot. during this time I couldnt find a way to get rid of the chassis and the driver BUT I found out it is possible to replace the chassis MD2 fiole with other MD2 models (mostly being a black 2x4 plate} but the Driver Clipped Through the Purple Hover car model. Just a few days ago I was doing this as a joke and decided to make an invisible car BUT in order for the invisible car to work i needed to have an invisible piece as well. Heres the video to that: Using Gimp I Simply copied one of the colors (col_beige to be specific) took that wand tool and deleted the color so it ended up being transparent or invisible. exported that png, converted it into a bmp, converting that bmp into a tga, renaming tga to mip, did some hex editing and compiled the invisible texture in the GTC file leaving this as the result. I Later had a thought of what an invisible driver would look like after i made the invisible car! using player 2's textures I ended up doing the same thing as I did with the car textures but it took longer since i had to make each face invisible as well including some hex editing on the head model which ended up causing this to happen Video on the Invisible Driver Here: This turned out pretty cool and what makes this better is I Have modded KITT (Knight Rider) And Herbie (1967 VW Beetle from a Disney Series of 6 movies) which the video on Herbie will come soon. I for some reason had the thought "What would happen if the invisible driver took a spin out on the Invisible Car"? sure enough it looked like an interesting spectator mode when it looks like its just the camera that moves. With changing a specific piece i never really use with the Purple Hover Car I Have placed the hover car on the Invisible car chassis and took the Invisible Driver out with that hover car attached which ended up causing this video to happen: So Is The Martian A Playable Character Now? Still Yes And No. You Are Still The Invisible Driver Driving The Invisible Car With The Purple Hover Car Model Attached onto the hover car. The Reason Why I Dont Wanna Include a download for this is because if I have the purple hover car replace a CCD (premade car) file the CPU driver will clip through the model. eventually i may include the download without a CCD file BUT if you want the hother hover cars or even a drivable dingy be in your game I will sometime have a tutorial topic on here for that. Hope the ones who have been asking about the Martians helpful for now! Sunchipp Out0 points -
More unused/weird models
pedroj234 reacted to lol username for a topic
CC_STUS_MODEL.MD2 There's folders called CC_CACTUS_BLUE and CC_CACTUS_SILVER. Textures are plain.0 points