Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 11/12/2024 in all areas

  1. LeonidaselXD

    How to rip 3D models from LEGO Racers?

    I would like to know how to rip the 3D models of LEGO Racers, such as racers, maps, textures, etc. in the pc version
    1 point
  2. CyrodiilWarrior

    Some LEGO Racers sets (and other stuff)

    Love it!
    1 point
  3. Osmanny P.

    Help with Install Lego Racers 2, don't open

    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
  4. Osmanny P.

    Help with Install Lego Racers 2, don't open

    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
  5. LazerLuke19

    How to play LEGO Racers 2 on a PC/Laptop without a disc drive

    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
  6. Thomkok23

    How to play LEGO Racers 2 on a PC/Laptop without a disc drive

    [removed]
    1 point
  7. bradleybrand

    More unused/weird models

    If anyone knows of anymore, I would be interested in seeing them.
    1 point
  8. dy_enforcer

    Dino Island Car Building - Crate isn't fitting anywhere!

    Actually the flags can be put in one piece, which is a plate. Here is an example using a 1x2 green plate
    1 point
  9. Cirevam

    .MD2 Blender Import/Export Add-on Early Release

    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
  10. epicabsol

    .MD2 Blender Import/Export Add-on Early Release

    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
  11. lol username

    .MD2 Blender Import/Export Add-on Early Release

    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
  12. Irup

    .MD2 Blender Import/Export Add-on Early Release

    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
  13. 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
  14. ShadowDraikana

    My (Almost) Complete Rama Collection

    Nice collection Avery! I started collecting these myself a few months ago. Definitely hard to find these guys.
    1 point
  15. ChileDawg

    My (Almost) Complete Rama Collection

    Awesome! Now all you need is a custom Rocket Racer "'Murican" car.
    1 point
  16. Modded Lego

    LEGO Racers 2 Cheat Engine Hacks

    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
  17. kajeuter

    LEGO Racers 2 Cheat Engine Hacks

    Why so imperessed? xD
    1 point
  18. BeepBoop

    Some LEGO Racers sets (and other stuff)

    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 thingies
    0 points
  19. Sunchipp

    Play As A Martian Official

    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 Out
    0 points
  20. lol username

    More unused/weird models

    CC_STUS_MODEL.MD2 There's folders called CC_CACTUS_BLUE and CC_CACTUS_SILVER. Textures are plain.
    0 points
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.