Isotropix Forums

[Released] Clarisse Survival Kit

Find useful scripts shared by the community here

[Released] Clarisse Survival Kit

Unread postby ayanik » Sat Nov 10, 2018 11:34 am

Please watch the video below to get a quick overview of the functions(this video is old, many features have been added/modified since then and contexts were cleaned up):
https://vimeo.com/299975213

You can download the Clarisse Survival Kit from the following link:
https://github.com/aydinyanik/clarisse_survival_kit

Scripts in the kit:
Import Asset
Import a Megascans asset. Meshes will automatically have their materials assigned when imported as .obj. Alembic(.abc) files will be imported as references. 3D assets such as 3d models, plants & atlases will also have a shading rule created for them.

Import meshes(.abc/.obj) and generic textures such as Substance. Meshes will automatically have their material assigned and shading rules are created. You can specify which textures should be interpreted in which color space if needed. Custom rules can be added/modified in the settings.py file. TX or UDIM files will be converted to Streamed Maps.

Video on importing UDIMs from Substance Painter:
https://vimeo.com/315088494

Megascans Bridge Communication
Launch the Bridge listener from the shelf and send assets directly to Clarisse. Make sure the Command Port is running. You can enable the Command Port from the preferences. Keep it at the default port number of 55000. When exporting assets from Bridge to Clarisse make sure to select Custom as your application and keep the port at the default of 24981.

Since the Bridge communication script is running outside of Clarisse and decoupled from CSK I didn't make these settings configurable. You can edit the ms_bridge_importer.py python file if you need to customize the ports, but these settings will be overwritten once you install a new version.

Packing channels is not supported. Assets that are exported outside of the library will work fine.

Video on using the bridge:
https://vimeo.com/315113262

Mix Multiple Surfaces
Creates a PhysicalBlend between one or more base surfaces and a cover surface(like dirt/snow). All selectors except displacement are instanced so you can manipulate multiple mixed surfaces at once. With this powerful script you can transform a whole scene into a snow covered one with ease.

Masking features:
  • Height blend: Mixes the materials based on Y elevation. Handy for shore lines.
  • Displacement blend: Checks which displacement map has higher elevation than the other. You can invert the selector or add both layers on top of each other.
  • Slope blend: Mixes two materials based on slope angle.
  • Triplanar blend: Uses triplanar mapping for the mask. By default the top facing(Y+) angle is masked.
  • Scope blend: A scope object is automatically created to quickly mask things out.
  • Occlusion blend: You can use Ambient Occlusion to blend the materials. Has a huge impact on performance when used with Displacement.
  • Fractal blend: If any other selectors are active the Fractal blend selector will be overlayed on top to break up the masking in the transition areas.

Image

Add Surface(s) to Mix
Adds the selected surfaces to an existing mix.

Replace Surface
You can quickly replace the selected surface or change the mapping settings. If you're replacing a material that was used in a surface mix it will also update.

Toggle Surface Complexity
Swaps out the selected material temporarily with a simple PhysicalDiffuse material. When you rerun the command on the selected PhysicalStandard material or its parent context it converts it back to the original state.

Moisten Surface
Adds a wet layer on top of the selected material. Several masking options are available.

Tint Surface
Adds a blend texture which can be used to colorize the selected surface so it matches better with other surfaces.

Texture(s) to Triplanar
Converts the selected textures to triplanar.

Blur Selected Texture(s)
Blurs the selected texture with a custom radius.

Generate Decimated Pointcloud on Geometry
Generates a GeometryPointCloud or GeometryPointUvSampler on the selected object. Has several masking options for decimating the point cloud.

Check out the video on Vimeo:
https://vimeo.com/310524037

Import Megascans Library
Import the whole library or specified categories. If you need individual assets use the Import Asset script. If you import 3D assets make sure you import them in a context that is currently not rendered inside your viewport. Otherwise it will try to render all objects.

Stream Toggle
Converts the selected Map Files to Streamed Map Files and vice versa. If the texture is single channel it will generate a reorder node for you. UDIM tokens are automatically added in the filename if they exist. Almost all settings are copied over.

Texture Converter
Convert images to tx or other formats and vice versa. TextureMapFiles will be converted to TextureStreamedMapFile when converting to .tx.

Check out the video on converting to .tx:
https://vimeo.com/319342502

Reconvert Selected Textures
Scans the selected textures or child textures in the selected context for newer source files in the same directory. Source files that have a more recent date_modified timestamp get reconverted to the same extension of the selected texture maps.

Quick Blend
Select two or more items of type: Texture(any type), TextureNormalMap, Displacement, Physical Material(any Physical material) and your selection will be blended together with the appropiate blend or multiblend node.

Video on using the quick blend script:
https://vimeo.com/319181380

Mask
Mask out selected blend nodes with common masking selectors. If nothing in the list is selected it will create just the masks.

Custom Settings & Logging
By default logging is disabled. If you get crashes you can enable logging in your user settings file and it will generate a log which will help me fix the bug if you send it to me. The log doesn't contain any information about your computer. It only logs which functions were called with which variables. To enable logging add the following lines to your user_settings.py file:

Code: Select all
import logging

LOG_LEVEL = logging.DEBUG


You can locate the custom settings and log in the following locations:

On Windows you can find it here:

C:/Users/YOUR_USERNAME/AppData/Roaming/Isotropix/.csk

On Linux you can find it here:

/home/YOUR_USERNAME/.isotropix/.csk

On Mac you can find it here:

/Users/YOUR_USERNAME/Library/Preferences/Isotropix/.csk

You can manually make that folder if it doesn't exist and create a __init__.py file and user_settings.py inside the .csk.

OR

If you don't want to do that run the script once by clicking any of the buttons in the shelf and this folder and files are automatically generated for you.

All variables from the settings.py file can be copied over to and customized within the user_settings.py file inside your user folder. Don't overwrite the settings.py file. This file will be overwritten once you reinstall or upgrade.
Last edited by ayanik on Thu Mar 14, 2019 10:41 am, edited 8 times in total.
ayanik
 
Posts: 61
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby jandersunstar » Sat Nov 10, 2018 4:49 pm

Really nice!
User avatar
jandersunstar
 
Posts: 280
Joined: Fri Jun 06, 2014 8:21 pm
Location: Mexico City

Re: Megascans Survival Kit

Unread postby jarrys » Sat Nov 10, 2018 6:17 pm

:o This would be really great!!
jarrys
 
Posts: 3
Joined: Thu Apr 13, 2017 8:49 pm

Re: Megascans Survival Kit

Unread postby dboude » Mon Nov 12, 2018 9:28 am

Great work ! Thanks for sharing ;)
Démian
Isotropix
Technical Artist - Clarisse Specialist
User avatar
dboude
 
Posts: 991
Joined: Mon Jul 03, 2017 10:51 am

Re: Megascans Survival Kit

Unread postby jeff_bartzis » Thu Nov 15, 2018 3:37 am

Wow, Nice!
Will be eagerly waiting to try this out!
jeff_bartzis
 
Posts: 23
Joined: Fri May 12, 2017 6:41 pm
Location: Vancouver

Re: Megascans Survival Kit

Unread postby ayanik » Tue Jan 01, 2019 9:56 pm

I rearchitectured the importer after I noticed the 3dplant assets have a totally different folder structure and I don't like copy pasting blocks of code. I'm happy I did, because I also made the system much more flexible.

There is a settings.py file which has filematching regex templates to search for textures from Megascans, Substance and generic filenames and users have the possibility to define which map is sRGB and which is not. All suffixes and default values can be changed in the settings file.

I also ran into issues where commands were issued asynchronously. Initially all textures were instanced from one file, but because of async issues I had to drop this and I didn't want to restrict users on which maps should be required and which not.

For Substance textures you can import an IOR map which gets divided so it maps properly. Unfortunately Substance Player doesn't export this map. I would have loved to see a way to use metalness in the PhysicalStandardMaterial. My maintenance expired half a year ago so I can't test 3.6 SP7 and for material mixing you need a PhysicalStandardMaterial.


TODO:
-I have one annoying crash I can reproduce and hoped maybe someone more experienced such as a Clarisse dev could help me with to squash it.
-The Megascans bridge python script they provided doesn't seem to work/listen. I called the file from the startup_script.py file and tried debugging each function, but it doesn't seem to listen at all.
https://github.com/Quixel/Bridge-Python-Plugin
Attachments
importer.png
ayanik
 
Posts: 61
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby desmond » Wed Jan 02, 2019 8:15 am

great work! :) ETA on sharing this?
User avatar
desmond
 
Posts: 48
Joined: Mon Feb 05, 2018 8:46 am

Re: Megascans Survival Kit

Unread postby ayanik » Wed Jan 02, 2019 8:53 am

Once I have dealt with the 2 ToDo items. I was hoping someone could take a look at the Megascans Bridge python script they provided and see why it's not receiving any data.
ayanik
 
Posts: 61
Joined: Wed Nov 26, 2014 9:10 pm

Re: Megascans Survival Kit

Unread postby desmond » Wed Jan 02, 2019 9:00 am

if you share me some code what you want to test i can look at it and verify. we should move to some PM or so, not to spam this topic. or add me on github as colab to your private repo, user ddesmond and we can take it from there.
User avatar
desmond
 
Posts: 48
Joined: Mon Feb 05, 2018 8:46 am

Re: Megascans Survival Kit

Unread postby ayanik » Wed Jan 02, 2019 9:15 am

The code for the bridge communication you can download from the github link I posted above.
- Run the Python file from clarisse.
- In the Megascans Bridge application click on the export button and set it to custom.
- You'll see no data comes in. Even though the server starts. If you remove the time.sleep(0.1) function it gets a bit further.

I will setup a github account when I get back from work so you can test the toolkit out. Send me a message to aydinyanik[at_symbol]gmail.com
ayanik
 
Posts: 61
Joined: Wed Nov 26, 2014 9:10 pm

Next

Return to Useful Community Scripts