Again: to get your model into C4D do as I've described above (export to OBJ and run the recommended script to get the basic materials assigned). This worked fine here. Some manual work still has to be done for this, though. A one-click solution for every 3d app is not available. Note, that if you go the C4D path, you'll have to create all Lego materials by yourself. There is no way to export these to another 3d package (except you have Cycles 4D). Hence Blender is the recommended solution.
I'm afraid the obj export is useless to me. While it brings the textures through in a useable manner it looses all the pivot points on the objects so the axis for all objects are at 0,0,0. As such I might as well build everything in Cinema 4D from the start and not use Mecabricks, which would mean I won't be contributing any new models to Mecabricks.
I haven't got a solution for the part origin problem. OBJ import might be limited in C4D. However, there's an OBJ plugin called Riptide, which might solve this (and allow for a one-click import without running any additional script). I have not tried it out here, but there's a demo version avalable under
Riptide sucks slightly less, but sadly still sucks. Can the pivots not be exported as part of the Mecabricks export?
Not sure it's a Mecabricks problem, but I doubt.
Tried out Riptide. Everything is imported properly. Individual part origins are set to part center. Think this is a reasonable result. Not all MB pivot points will be exported to whatever format anyway. For translating or rotating party or groups of parts I'd use an Empty (Null) helper object. If anyone knows a better solution, he could post it here.
At this point, i believe it's worth to continue research into this direction, because the C4D path offers possibilities regarding Cineware and Element 3D.
Hi Superdooperhero,
I have not worked with C4D but I started to use Modo in 2014 for rendering LDRAW data. End of 2014 I contacted SCRUBS to add render support to Mecabricks. While he developed a proper Blender Template I just adapted my LDRAW setup for Mecabricks data.
You need to work out a proper pipeline for C4D what makes it easy for you to import or replace models. In Modo it's pretty nice because the shader system is layer based. I told SCRUBS that we need a format what supports instances. In this case it was Collada. When I import to Modo I get real instances what makes it possible to deal with very large scenes.
What I do: I have setup first a complete material scene with 1x1 bricks using the complete Mecabricks color layout. I exported it to Collada (Geo and Color) and the imported result will give me material tags. I invested some time to create a proper and nice to read setup with my LEGO shaders.
Finally here the workflow is:
Result: due to the material tags everything will be replaced by my setup and I am ready to render.
With this method it's just a matter of a few minutes to render anything from Mecabricks in my photoreal quality.
What I have now took me months of research and adjustments beside my daily business of course because I had to learn Modo, too.
Updated script to 0.1.7
Trying to run the sricpts in the latest daily build(2.78.5) from blender.org to try the denioser but i just get "Python script fail, look in the console for now..."?
Thought it was the filmic files missing but when i looked in the colormanagement folder, there were already a folder called filmic in there?
Anyone who have an ide what might be wrong?
If you can paste here in a code tag what you have in the console it would help 😉
This is what i get from the console:
PYTHON INTERACTIVE CONSOLE 3.5.3 (default, May 20 2017, 19:10:40) [MSC v.1800 64 bit (AMD64)]
Command History: Up/Down Arrow
Cursor: Left/Right Home/End
Remove: Backspace/Delete
Execute: Enter
Autocomplete: Ctrl-Space
Zoom: Ctrl +/-, Ctrl-Wheel
Builtin Modules: bpy, bpy.data, bpy.ops, bpy.props, bpy.types, bpy.context, bpy.utils, bgl, blf, mathutils
Convenience Imports: from mathutils import *; from math import *
Convenience Variables: C = bpy.context, D = bpy.data
Just after clicking on the "Run Script" button?
Oh no, my bad, that´s not from the console. But now i have another problem, how do i copy the text from the command window? 😃
Edit: Number2
Managed to copy...
Read prefs: C:UsersELNAppDataRoamingBlender FoundationBlender2.78config
userpref.blend
found bundled python: C:UsersELNDownloadsblender-2.78-2cd7b80-win64blender-
2.78.0-git.2cd7b80-windows642.78python
Read blend: C:UsersELNDocumentsMecabricksAdvanced 0.1.7.blend
Color management: display "sRGB / BT.709" used by scene not found, setting to de
fault ("sRGB").
Color management: scene view "Filmic Log Encoding Base" not found, setting defau
lt "Default".
Color management: scene look "Medium High Contrast" not found, setting default "
None".
Color management: sequencer colorspace "sRGB EOTF" not found, will use default i
nstead.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Color management: image colorspace "sRGB EOTF" not found, will use default inste
ad.
Writing node id='Part_1', name='Part_47755.1'
Writing node id='Part_2', name='Part_98835.2'
Writing node id='Part_3', name='Part_99780.3'
Writing node id='Part_4', name='Part_50947.4'
Writing node id='Part_5', name='Part_3700.5'
Writing node id='Part_6', name='Part_4274.6'
Writing node id='Part_7', name='Part_24308p2.7'
Writing node id='Part_8', name='Part_4073.8'
Writing node id='Part_9', name='Part_24201.9'
Writing node id='Part_10', name='Part_24201.10'
Writing node id='Part_11', name='Part_99780.11'
Writing node id='Part_12', name='Part_3700.12'
Writing node id='Part_13', name='Part_15341.13'
Writing node id='Part_14', name='Part_15341.14'
Writing node id='Part_15', name='Part_4274.15'
Writing node id='Part_16', name='Part_15540.16'
Writing node id='Part_17', name='Part_4274.17'
Writing node id='Part_18', name='Part_15540.18'
Writing node id='Part_19', name='Part_87994.19'
Writing node id='Part_20', name='Part_87994.20'
Writing node id='Part_21', name='Part_4274.21'
Writing node id='Part_22', name='Part_4073.22'
Writing node id='Part_23', name='Part_24308p2.23'
Writing node id='Part_24', name='Part_99780.24'
Writing node id='Part_25', name='Part_61678.25'
Writing node id='Part_26', name='Part_15341.26'
Writing node id='Part_27', name='Part_87994.27'
Writing node id='Part_28', name='Part_4274.28'
Writing node id='Part_29', name='Part_15540.29'
Writing node id='Part_30', name='Part_3023.30'
Writing node id='Part_31', name='Part_2431d53.31'
Writing node id='Part_32', name='Part_2555.32'
Writing node id='Part_33', name='Part_2555.33'
Writing node id='Part_34', name='Part_55053.34'
Writing node id='Part_35', name='Part_15341.35'
Writing node id='Part_36', name='Part_87994.36'
Writing node id='Part_37', name='Part_4274.37'
Writing node id='Part_38', name='Part_15540.38'
Writing node id='Part_39', name='Part_3023.39'
Writing node id='Part_40', name='Part_55053.40'
Writing node id='Part_41', name='Part_2555.41'
Writing node id='Part_42', name='Part_2555.42'
Writing node id='Part_43', name='Part_2431d54.43'
Writing node id='Part_44', name='Part_30377.44'
Writing node id='Part_45', name='Part_30377.45'
Writing node id='Part_46', name='Part_30374.46'
Writing node id='Part_47', name='Part_30377.47'
Writing node id='Part_48', name='Part_30377.48'
Writing node id='Part_49', name='Part_30377.49'
Writing node id='Part_50', name='Part_30377.50'
Writing node id='Part_51', name='Part_30374.51'
Writing node id='Part_52', name='Part_30377.52'
Writing node id='Part_53', name='Part_30377.53'
Writing node id='Part_54', name='Part_11090.54'
Writing node id='Part_55', name='Part_60187.55'
Writing node id='Part_56', name='Part_11090.56'
Writing node id='Part_57', name='Part_11090.57'
Writing node id='Part_58', name='Part_60187.58'
Writing node id='Part_59', name='Part_11090.59'
Writing node id='Part_60', name='Part_18649.60'
Writing node id='Part_61', name='Part_18649.61'
Writing node id='Part_62', name='Part_24201.62'
Writing node id='Part_63', name='Part_24201.63'
Writing node id='Part_64', name='Part_44674.64'
Writing node id='Part_65', name='Part_61678.65'
Writing node id='Part_66', name='Part_2431d41.66'
Writing node id='Part_67', name='Part_4859.67'
Writing node id='Part_68', name='Part_2431d41.68'
Writing node id='Part_69', name='Part_3022.69'
Writing node id='Part_70', name='Part_3021.70'
Writing node id='Part_71', name='Part_30414.71'
Writing node id='Part_72', name='Part_30414.72'
Writing node id='Part_73', name='Part_3023.73'
Writing node id='Part_74', name='Part_10885.74'
Writing node id='Part_75', name='Part_42023.75'
Writing node id='Part_76', name='Part_85970.76'
Writing node id='Part_77', name='Part_85970.77'
Writing node id='Part_78', name='Part_43719.78'
Writing node id='Part_79', name='Part_24201.79'
Writing node id='Part_80', name='Part_51739.80'
Writing node id='Part_81', name='Part_24201.81'
Writing node id='Part_82', name='Part_42023.82'
Writing node id='Part_83', name='Part_61409.83'
Writing node id='Part_84', name='Part_3024.84'
Writing node id='Part_85', name='Part_3024.85'
Writing node id='Part_86', name='Part_3023.86'
Writing node id='Part_87', name='Part_3023.87'
Writing node id='Part_88', name='Part_50947.88'
Writing node id='Part_89', name='Part_99780.89'
Writing node id='Part_90', name='Part_3022.90'
Writing node id='Part_91', name='Part_3665.91'
Writing node id='Part_92', name='Part_3665.92'
Writing node id='Part_93', name='Part_99780.93'
Writing node id='Part_94', name='Part_6153.94'
Writing node id='Part_95', name='Part_3022.95'
Writing node id='Part_96', name='Part_63864.96'
Writing node id='Part_97', name='Part_99780.97'
Writing node id='Part_98', name='Part_2412v2.98'
Writing node id='Part_99', name='Part_3022.99'
Writing node id='Part_100', name='Part_63864.100'
Writing node id='Part_101', name='Part_61409.101'
Writing node id='Part_102', name='Part_2412v2.102'
Writing node id='Part_103', name='Part_3022.103'
Writing node id='Part_104', name='Part_4475.104'
Writing node id='Part_105', name='Part_2555.105'
Writing node id='Part_106', name='Part_3794.106'
Writing node id='Part_107', name='Part_3069d88.107'
Writing node id='Part_108', name='Part_15068d21.108'
Writing node id='Part_109', name='Part_3039d6.109'
Writing node id='Part_110', name='Part_85984d27.110'
Writing node id='Part_111', name='Part_15712.111'
Writing node id='Part_112', name='Part_29120.112'
Writing node id='Part_113', name='Part_3023.113'
Writing node id='Part_114', name='Part_3023.114'
Writing node id='Part_115', name='Part_27263.115'
Writing node id='Part_116', name='Part_27263.116'
Writing node id='Part_117', name='Part_15712.117'
Writing node id='Part_118', name='Part_98397.118'
Writing node id='Part_119', name='Part_3023.119'
Writing node id='Part_120', name='Part_3795.120'
Writing node id='Part_121', name='Part_22380.121'
Writing node id='Part_122', name='Part_2447.122'
Writing node id='Part_123', name='Part_2432.123'
Writing node id='Part_124', name='Part_85861.124'
Writing node id='Part_125', name='Part_3023.125'
Writing node id='Part_126', name='Part_29119.126'
Writing node id='Part_127', name='Part_15712.127'
Writing node id='Part_128', name='Part_15712.128'
Writing node id='Part_129', name='Part_3023.129'
Writing node id='Part_130', name='Part_3024.130'
Writing node id='Part_131', name='Part_3024.131'
Writing node id='Part_132', name='Part_3024.132'
Writing node id='Part_133', name='Part_3024.133'
Writing node id='Part_134', name='Part_3022.134'
Writing node id='Part_135', name='Part_85861.135'
Writing node id='Part_136', name='Part_4589.136'
Writing node id='Part_137', name='Part_24246.137'
Writing node id='Part_138', name='Part_24246.138'
Writing node id='Part_139', name='Part_4589.139'
Writing node id='Part_140', name='Part_24201.140'
Writing node id='Part_141', name='Part_29120.141'
Writing node id='Part_142', name='Part_24201.142'
Writing node id='Part_143', name='Part_29119.143'
Writing node id='Part_144', name='Part_54200.144'
Writing node id='Part_145', name='Part_30374.145'
Writing node id='Part_146', name='Part_85861.146'
Writing node id='Part_147', name='Part_85861.147'
Writing node id='Part_148', name='Part_54200.148'
Writing node id='Part_149', name='Part_30374.149'
Writing node id='Part_150', name='Part_3022.150'
Writing node id='Part_151', name='Part_98138.151'
Writing node id='Part_152', name='Part_98138.152'
Writing node id='Part_153', name='Part_98138.153'
Writing node id='Part_154', name='Part_98138.154'
Writing node id='Part_155', name='Part_3024.155'
Writing node id='Part_156', name='Part_3024.156'
Writing node id='Part_157', name='Part_3814d665.157'
Writing node id='Part_158', name='Part_3818v2.158'
Writing node id='Part_159', name='Part_3820v2.159'
Writing node id='Part_160', name='Part_3819v2.160'
Writing node id='Part_161', name='Part_3820v2.161'
Writing node id='Part_162', name='Part_3815d223.162'
Writing node id='Part_163', name='Part_3816d223.163'
Writing node id='Part_164', name='Part_3817d223.164'
Writing node id='Part_165', name='Part_3626ae.165'
Traceback (most recent call last):
File "C:UsersELNDocumentsMecabricksAdvanced 0.1.7.blendreplace.py", line
6, in <module>
TypeError: bpy_struct: item.attr = val: enum "sRGB / BT.709" not found in ('None
', 'Rec709', 'XYZ', 'sRGB')
Error: Python script fail, look in the console for now...
So my noob guess is that it got somthing to do with that BT.709?
This is a problem with filmic and colour management. Not too sure what is that and how it is handled in the nightly build of Blender as filmic is supposed to be part of the main branch now. The easiest, just comment the line in the replace .py script to bypass it.
#bpy.context.scene.display_settings.display_device = 'sRGB / BT.709'
Ok, tried and it worked now, but how will the bypass effect the scene and rendering?
Probably nothing 😉
Ok, fine by me! 😄
Wow, now i understand what everyone is talking about with the denoiser!
BTW, what's changed in the latest version 0.1.7?
LEGO, the LEGO logo, the Minifigure, and the Brick and Knob configurations are trademarks of the LEGO Group of Companies. ©2024 The LEGO Group.
Mecabricks, the Mecabricks logo and all content not covered by The LEGO Group's copyright is, unless otherwise stated, ©2011-2024 Mecabricks.