Eurobricks Citizen
  • Content count

  • Joined

  • Last visited

About jamesster

Profile Information

  • Gender
    Not Telling

Recent Profile Visitors

558 profile views
  1. Yeah, a friend of mine made that some years back - as far as I know, he didn't encounter any infringement issues, but was worried he might, and pulled it from GitHub himself preemptively. It didn't support flexible elements, textures/UV maps, or multi-color pieces though. That'd be the ideal solution - I imagine the hardest part in matching a 3DVIA Printscreen rip with that method would be re-implementing LDD's hidden surface removal (which LEGO patented, in fact), as that'd involve reverse engineering the connectivity system to determine what parts of a brick to hide or replace. With 3DVIA Printscreen, you get the model with that already done by LDD. Anyway, I've updated the program twice since I last added a reply here. In short: Colors and decorations are now given their proper LEGO names/IDs. 3DXML files don't contain this info, but the program has a list of all of LDD's colors and hashes of all its decorations - so it can accurately look up things it finds in the 3DXML and match them to their official names/IDs, without containing any actual LDD data/files itself. It's also capable of regenerating its internal lists from official LDD data, in case LDD ever adds/changes them in an update. The options for that are in the program's developer menu (accessed via Shift + D)... I'll probably put more details on the GitHub readme later. Added custom color palettes (for if you want to replace LDD's RGBA values/names with your own - I've included a custom palette file of the LEGO Universe MMO's color palette as an example). The program now automatically enforces valid OBJ/MTL names. So, no longer any chance of surprises with materials not loading because your MTL has a space in the name (which is officially disallowed by the format). There's a few other additions/changes, and a bug fix for how some colors were loading with slightly incorrect RGB values (bad rounding when reading from the 3DXML), but the above is the important stuff. Download link is in the first post, blah blah.
  2. Added material and texture loading/exporting today; first post updated accordingly. There's still one feature idea I might add if/when I feel like it: Comparing colors against a bunch of "known colors" to give them their proper LEGO color names (since LEGO color names/IDs aren't preserved in 3DXML rips). Would be much nicer to work with than Material0, Material1, etc.
  3. I've been working on other projects this month but took a quick break from them to add the LXF/LXFML camera position editing feature mentioned by @Jarema. Download link in the first post has been updated. Also did some comparisons in triangle count between 3D LEGO libraries/export methods, in case anyone was wondering just how much more optimized these models are, mostly thanks to LDD's hidden stud/tube removal - I added them to the first post, but here they are again: Certainly nothing to sneeze at if you're doing realtime rendering stuff, especially the more complex your models are. (And they can still be optimized further from the LDD captures, especially if you have specific usage in mind - for example, if the test house were in a game, players would be unlikely to see the tubes for the underside of the roof. So by removing them + making some misc other optimizations by hand, I was able to get the test house down to a mere 884 triangles! Which is probably optimization overkill, but I wanted to see how far I could go with it, haha.)
  4. Mike Rayhawk, who's done a lot of stuff for LEGO, shared something pretty funny/interesting on Twitter today. I've put each tweet in this quote, since embedding the tweets themselves would be rather clunky. You can read the original threads here and here.
  5. Yeah, there's an import script for 3ds Max as well, but both that and the method you described are dependent on using specific modeling software. I wanted a tool that would just work on its own, so I made one (or am still making, rather, as there's still material + textures to get to, but the geometry is the most important bit for my own personal usage). Also, I'd only alluded to this slightly, but the main benefit of using 3DVIA Printscreen captures from LDD is that the models immediately come out much, much more optimized for realtime rendering (in games or anything else interactive, aka nearly all my 3D LEGO projects) than with any other currently available method. Hidden studs and tubes are automatically removed, saving substantial amounts of work, and LDD's brick geometry is altogether far more optimized for realtime rendering than the LDraw library. Since most of Eurobricks is probably focused on making pretty renderings like the ones you linked to (very nice, BTW!), rather than interactive/realtime rendering projects, I'll add some text at the start of the topic mentioning that it's more useful for the latter.
  6. Thanks for the feedback! I'm not sure I can do anything about the first point, as it has to do with 3DVIA Printscreen, rather than my 3DXML to OBJ program (which only converts the 3DXML files 3DVIA Printscreen creates). But I can certainly add a feature to change the camera position in LXFML files automatically (and LXF files too, as they're just renamed ZIP files containing LXFMLs).
  7. 3DVIA Printscreen can be used to capture LEGO Digital Designer models and save them as 3DXML files. (While it was officially discontinued years ago, it can still be downloaded from the web archives - here's a direct link to the installer if that page doesn't load.) However, there aren't many programs that can load or convert 3DXML files, which made using them rather impractical. So I decided to make a program to directly convert 3DXML files to OBJ. Note that these converted models are primarily useful when you need to render LEGO models in realtime - for games or other interactive things, where polygon/vertex count is of more importance. LDD automatically removes hidden studs, tubes, etc, batches bricks together into single meshes, and its brick library was built with realtime rendering in mind. So these models come out far more suitable for realtime rendering than those from other systems or brick libraries: A simple test house model I made had 50350 triangles when exported with the LDraw library (specifically via LeoCAD), vs 42927 triangles when exported with Mecabricks, vs 13548 triangles with this LDD capture method! You'll still likely want to make further optimizations to them (it doesn't remove all the hidden faces, and you may want to merge more meshes together than LDD already does to cut down on draw calls), but it sets you much further ahead in the process than you'd be otherwise. Download Source code on GitHub Updates: v1.0.0, 8/3/2017: First release. v1.1.0, 8/25/2017: Added a feature to automatically move the camera position in LXFs/LXFMLs to the origin. While technically unrelated to the original purpose of the program, it's still pretty helpful, as it saves you the trouble of manually editing an LXFML to get the same result (with the camera exactly where it should be for ideal capturing with 3DVIA Printscreen). It saves a new LXFML file with the alterations, so your original LDD model remains untouched. v1.2.0, 8/29/2017: Added support for materials and textures. v1.3.0, 9/6/2017: Added material and texture name lookup system (gives them official LEGO names/IDs), custom color palettes, and wireframe rendering option. Fixed a bug where some color values were being rounded incorrectly upon reading from a 3DXML. v1.4.0, 9/7/2017: Now enforces valid OBJ/MTL names, and has a new icon courtesy of BlasterBuilder. If you've come across this topic looking for a general purpose 3DXML converter, please note I've only built this with 3DVIA Printscreen's captures of LDD models in mind. Compatibility with 3DXML files from other sources/of other programs will likely be inconsistent. Here's how to use it: First, you should know that when 3DVIA Printscreen captures a model, the position and rotation of LDD's camera are applied to the geometry of the model itself. To avoid your model being rotated/positoned awkwardly, you'll need to have the camera positioned and rotated exactly at the origin of the scene, which this program can do for you. Place your LDD model in the LXFML to OBJ converter's "Models" folder, then launch it. You'll see a menu box under the main one for moving the camera to the origin in LXFs/LXFMLs. Enter your model name there and click the button, and it'll save a new LXFML in the Models folder, with the same name as your original plus "edited". Now to get the 3DXML capture of your model. Launch 3DVIA Printscreen (it must be opened before LDD for it to work), then open the edited LXFML in LDD, and without moving or rotating the camera, use 3DVIA Printscreen to capture it. Note that for models to be captured correctly, you will have to have high-quality rendering disabled in LDD's preferences, and "group by textures" disabled in 3DVIA Printscreen's options. (Tip: If you have developer mode enabled in LDD, pressing K disables studs, Shift+K disables the interior of tubes, Q disables the outside of bricks, and Shift+Q disables the inside of bricks. You can use this to isolate or remove those parts of the model in your capture, if need be.) Now that you have your 3DXML, place it in 3DXML to OBJ's "Models" folder where you put the LXF/LXFML earlier. This time in the 3DXML to OBJ converter, enter the name of the 3DXML file in the "Convert 3DXML to OBJ" menu's text box (it doesn't matter if you add ".3dxml" to the end or not). You will also see an option to have welding of duplicate vertices enabled or disabled: Enabled: 3DXML captures are highly inefficient with their vertex usage; every triangle always has 3 vertices of its own whether identical vertices already exist or not. This option (on by default) welds duplicate vertices together, which can take some time on larger models but has dramatic results: The model of 6085 Black Monarchs Castle in the screenshots below is reduced from a 33.0 MB OBJ with 583284 vertices, to a visually identical 16.2 MB OBJ with 198287 vertices. Disabled: For if you want to convert a large model in a little less time, and don't mind the duplicate vertices. You will also be able to choose a custom color palette to override the default LDD colors, if you want to - the only one I've included is the LEGO Universe color palette, but custom color palettes can easily be added: Simply put a new text file in 3DXML to OBJ v1.4.0_Data\StreamingAssets\Custom Palettes, and look at LEGO Universe.txt for an example of how they work (the values on each line are the LEGO palette ID, RGBA values, and optionally, a new name for the material). Whichever option you choose, your model will be exported to OBJ in a new folder in Models. You will also be shown the model within the converter - click with any mouse button and drag to rotate the camera, or hold left shift or ctrl to pan. If you have a large model, there is a chance it will contain a mesh too big for the converter to render. This converter was built in Unity, as it's what I have the most experience with... But, Unity cannot directly render meshes with more than 65534 vertices or triangles, and unwelded models are especially likely to have meshes that cross this limit. This does not affect the exported OBJs, only the model as you see it within the converter. It's technically possible to work around this, but I'm not sure if it would be worth the effort. If your model has decals, you will get two OBJ files, one with "UV" at the end of its file name. This stems from how decals work within LDD: When you add a decal to a piece, it doesn't texture the piece's mesh directly, but rather adds a new textured mesh in the same location, overlapping the existing one. The second OBJ contains these additional, textured meshes. Enjoy, and please let me know if you hit any problems, have suggestions, etc!
  8. I had this open in a tab to read and then must have accidentally closed it, it slipped my mind. There's some interesting differences with the online/magazine comics here, though they follow the same general plot... And Ngan Pa doesn't appear at all (I don't remember if he was in the comics or not). Much thanks for translating!
  9. That was a lot of fun to read, I listened to the German audio along with it - much thanks for translating, again! I didn't expect Joe/Johnny and Linda/Pippin to be engaged at the end, hahaha. Knowing what the switch on the Sphinx Secret Surprise set does, all I could think when it got to this part was oh boy. I like how the story revolved around finding the different maps featured in the sets, and even stayed true to what was printed on the real pieces. These audio dramas pretty much always stay close to the sets, really - fun stuff.
  10. Yeah, there was a transcript of sorts for the Orient Expedition one, though it was hosted on Majhost, which has since died. You can see the discussion of it and some more info on the whole thing here, though. I may still have a copy of the transcript saved on an old laptop... Though it was done with an audio-to-text converter, and then run through Google Translate, so the results were less than stellar, haha. Here's a small surviving snippet of it that was posted in the topic linked to previously: As far as I know nobody's done a proper transcription + translation yet. There's also a transcript of the other Adventurers audio drama in the same topic, and a few others too, though done with the same method. Oh, and here's some other topics on Eurobricks about other LEGO audio dramas (Pirates, Castle, and Time Cruisers), with transcriptions + translations done by someone who actually speaks German: There's also Western audio dramas but to my knowledge there's been no attempts of translating those whatsoever.
  11. Lego: Space - The Comic

    I certainly didn't expect this! This was one of the first webcomics I ever read and followed, glad to see more of it. ... Heh, and there's a few posts of mine from 2013 on the previous page. I don't remember writing those.
  12. LEGO Dimensions Discussion

    Oh, I also keep seeing people saying "but Arthur Parsons said Year 3 was coming just 20 days before these allegations of it being canceled!"... LU's cancellation happened within a day. Developers were at their desks one morning, working on the game, were suddenly called into a meeting, and told that the decision to cancel the game had been made. Unfortunately the most detailed account of what happened that day is no longer online (it was from one of the LU community managers, Annie Kang, on a fan-operated LU forum - Lunibook - that closed years ago... And while I have much of the forum backed up, it's currently on an external hard drive a few thousand miles away)... So this is the only remaining story on the internet I can find that mentions it: ... But even that's enough to show how quickly this can happen.
  13. LEGO Dimensions Discussion

    People in various places keep saying "but Dimensions can't end, it has a three year plan!"... Yeah, and LEGO Universe had a five year plan, but it only slightly lived beyond one. http://kotaku.com/5660854/lego-universe-delivers-a-compelling-online-experience http://www.ign.com/articles/2011/11/04/lego-universe-to-shut-down Plans change.
  14. The Lego Ninjago Movie (2017)

    Posted my thoughts in another topic, but here's a more compete version of the pic: http://i.imgur.com/dvjcr2i.jpg
  15. LEGO Ninjago 2017 Discussion

    Only thing I don't care for is Kai's hair, though it is kinda funny and I could see it growing on me (... not in the literal sense). The rest I find refreshing, I'm liking the direction the LEGO movies are taking minifigures in (I loved the Batman movie designs too). Both the Batman and Ninjago movie characters tend to have more personality, makes some of the previous versions of the characters feel same-y and boring in comparison, to me. Edit: BTW, here's a higher quality version of the pic: https://pbs.twimg.com/media/C36UZ9NW8AQCZFl.jpg:large And an imgur mirror since that link is from a tweet: http://i.imgur.com/dvjcr2i.jpg