Colorbleed / colorbleed-config

Colorbleed Pipeline configuration for Avalon
17 stars 12 forks source link

how to try colorbleed houdini and fusion in avalon #164

Closed tws0002 closed 5 years ago

tws0002 commented 6 years ago

hi

how can i try colorbleed houdini in avalon?

Desmond

aardschok commented 6 years ago

Hi,

Thanks for wanting to test out the Houdini pipeline. Let us know when there are any issues :)

HOW TO

IMPORTANT: Replace the following parts throughout the example shown:

Dependencies: What you will need is our the colorbleed-config.master, the avalon.houdini files and the MainMenuCommon.xml and 123.py

123.py is needed to run start up code when Houdini starts. MainMenuCommon.xml is the Avalon menu definition (this will be replaced with a dynamic menu later on)

Place them in their respective folders so that avalon can pick them up.

Mongo: In MongoDB you will need to add the application to a project definition under apps. Add the following lines:

           {
                "name" : "houdini16",
                "label" : "Houdini <INSERT HOUDINI VERSION>"
            },

Note that the name here is similar to the executable in the example of the toml, it is a requirement that they match else avalon won't be able to find and start the application.

Launch files:

You will need to create a .toml file similar to the example below and place it in avalon-setup/bin.

executable = "houdini16"
schema = "avalon-core:application-1.0"
application_dir = "houdini"
label = "Houdini <INSERT HOUDINI VERSION>"
icon = "magic"
color = "#3B9C6F"
order = 5          # move a bit to the end

[copy]
"{AVALON_CORE}/res/houdini/MainMenuCommon.xml" = "MainMenuCommon.xml"

[environment]
HOUDINI_SCRIPT_PATH = [
    "{AVALON_CORE}/res/houdini",
    "<INSERT INSTALL FOLDER>/Side Effects Software/Houdini <INSERT HOUDINI VERSION>/houdini/scripts"
]

Create a simple .bat or .shell file, name it exactly as the executable variable in the .toml and place it in the avalon-setup/bin/<linux or windows>, see example below for content:

BAT:

@echo off

set __app__="Houndini <INSERT HOUDINI VERSION>"
set __exe__="<INSERT INSTALL FOLDER>/Side Effects Software/Houdini <INSERT HOUDINI VERSION>/bin/houdinifx.exe"
if not exist %__exe__% goto :missing_app

call %__exe__% %*

goto :eof

:missing_app
    echo ERROR: %__app__% not found at %__exe__%
    exit /B 1

BASH

#!/usr/bin/env bash
<INSERT INSTALL FOLDER>/Side Effects Software/Houdini <INSERT HOUDINI VERSION>/bin/houdinifx

Hope that helps! Good luck.

tws0002 commented 6 years ago

hi, @aardschok thx for the guide. it works for me now.

it will be great if you don't mind to tell me more about what you already integrate into Avalon Houdini pipeline. so that I will take note when testing on it.

Thanks Desmond

aardschok commented 6 years ago

Currently supported in the Avalon Houdini pipeline:

Houdini to 3rd party:

Improved but not pushed / merged yet:

Todo:

tws0002 commented 6 years ago

great. Thanks for the quick reply. One-off topic question do you guys using Adobe product like photoshop and after effects? if so do you guys have any plan to integrate into Avalon?

aardschok commented 6 years ago

We do use it Adobe packages but they are not integrated. It would be ideally to integrate them into Avalon but for now they are of low priority.

tws0002 commented 6 years ago

ok noted. Thx.

would you mind to share me .toml and .bat for fusion launch files? my configuration for seems to have some issues.

Thanks Desmond

aardschok commented 6 years ago

The .bat file is similar to the one of Houdini, replace the value of __app__ with Fusion <VERISON> and the value of __exe__ with the path of the fusion executable.

The .toml file will need to have the following environment keys:

Again, remember that the executable in the .toml file will need to be the name of the .bat file.

tws0002 commented 6 years ago

thanks for the advice. after following the step, I still cannot get the Avalon menu in fusion!! here is my .motl

executable = "fusion9"
schema = "avalon-core:application-1.0"
application_dir = "fusion"
label = "Black Magic Fusion 9"

[environment]
PYTHONPATH = [
    "{AVALON_CORE}/setup/fusion",
    "{PYTHONPATH}"
]
FUSION9_MasterPrefs = [
    "{AVALON_CORE}/setup/fusion/scripts/Comp"
]
OFX_PLUGIN_PATH = [
    "K:/SES/Library/spipe/avalon-setup/git/OFX/Plugins"
]

am I doing right? im very new to fusion so I might be doing wrong!! bcos of the pricey nuke license!! I would like to give fusion a try.

Thanks

aardschok commented 6 years ago

Avalon menu in fusion!!

This will need to be done through the fusion.prefs file. The FUSION9_MasterPrefs needs to point to an actual file like: studio_shared.prefs. You can view an example how such a file is build here

On the note of Fusion: Be careful to not start a QApplication from Fusion, it will crash the program. For more information on Fusion development visit / register on this website

Good luck!

BigRoy commented 6 years ago

Be careful to not start a QApplication from Fusion, it will crash the program.

To clarify this, specifically don't run it from the Python console in the Fusion UI. You can run an external script with the RunScript commands or alike with a Qt application just fine since it doesn't run in Fusion's main thread. :)

tws0002 commented 6 years ago

@aardschok Thanks for the advice. I will try it. @BigRoy Thanks for the clarify.

Do you guys mind to share how your studio pipeline workflow from concept to final output? seems everything now still under development stage. how you guys manage the studio pipeline workflow?

aardschok commented 6 years ago

seems everything now still under development stage.

The pipeline is always under development as production demands new things, developers come with new software and versions of that software.

Managing the pipeline (Avalon) is just a part of it, we mostly manage the configuration of the pipeline. If you dive into the Colorbleed config you will see a separation based on application.

# Config modules
config/
    - fusion
    - houdini
    - maya
    - plugins

# Avalon
avalon/
    - fusion
    - houdini
    - maya

Each application folder in the configuration will call function from modules found in Avalon to setup everything we need for our pipeline flow. If the artists need a new application it is easy to integrate it in the pipeline.

how you guys manage the studio pipeline workflow?

The goal of Avalon is to have a very flexible workflow, artists should never be limited by the pipeline. This is a general workflow, not specific to our studio:

Concept > 
     Modeling > 
         Texturing & Shading
         Rigging >
               Animation >
                      FX
         Environment >
                 Lighting >
                      Rendering >
                            Compositing

With the tools which come along with Avalon the artists will be able to update and manage the content of the scenes on the fly.

I hope this answered some of your questions.

tws0002 commented 6 years ago

Thanks for the explanation. because of the flexibility, I have some issues with setting up stuff in Avalon. not sure am I do it right but have few questions to ask.

Question

[ARNOLD_LICENSE] solidangle_LICENSE="####@SERVER-PC"

VRAY_AUTH_CLIENT_FILE_PATH="{SPIPEDIR}/Third-Party/vray/license"

[copy] "{AVALON_CORE}/res/workspace.mel" = "workspace.mel"

[environment] MAYA_DISABLE_CLIC_IPM = "Yes" # Disable the AdSSO process MAYA_DISABLE_CIP = "Yes" # Shorten time to boot MAYA_DISABLE_CER = "Yes" PYMEL_SKIP_MEL_INIT = "Yes" LC_ALL= "C" # Mute color management warnings

VRAY_FOR_MAYA2017_MAIN_x64="{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray" VRAY_FOR_MAYA2017_PLUGINS_x64="{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/vrayplugins" VRAY_PLUGINS_x64="{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/vrayplugins" VRAY_TOOLS_MAYA2017_x64="{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/vray/bin"

PATH = [ "{SPIPEDIR}/Third-Party/arnold/mtoadeploy/2017/bin", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_root/bin", "{PATH}" ] PYTHONPATH = [ "{AVALON_CORE}/setup/maya", "{AF_ROOT}/python", "{CGRU_LOCATION}/lib/python", "{CGRU_LOCATION}/plugins/maya", "{BONUS_PATH}/python-2017", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/scripts", "{PYTHONPATH}" ] MAYA_MODULE_PATH = [ "{SPIPEDIR}/Third-Party/arnold/mtoadeploy/2017", "{BONUS_PATH}", ] MAYA_RENDER_DESC_PATH = [ "{SPIPEDIR}/Third-Party/arnold/mtoadeploy/2017", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_root/bin/rendererDesc", ] MAYA_PLUG_IN_PATH = [ "{BONUS_PATH}/plug-ins/win64-2017", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/plug-ins", ] XBMLANGPATH = [ "{CGRU_LOCATION}/plugins/maya/icons", "{BONUS_PATH}/icons", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/icons", ] MAYA_SCRIPT_PATH = [ "{CGRU_LOCATION}/plugins/maya/mel/AETemplates", "{CGRU_LOCATION}/plugins/maya/afanasy", "{BONUS_PATH}/scripts-2017", "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_vray/scripts", ] XGEN_CONFIG_PATH = [ "{SPIPEDIR}/Third-Party/vray/maya/2017/{VRAY_VERSION}/maya_root/plug-ins/xgen/presets", ]


I have everything load in Maya but all the menu does not show up in Maya.

hope you can give some advice on this. 

Thanks 
Desmond 
aardschok commented 6 years ago

I have everything load in Maya but all the menu does not show up in Maya.

I am assuming you mean that all the plugins are loaded at boot up? Correct me if I am wrong. Try out the following:

This way you can check which plugin fails / succeeds on its own.

From what I can recall, the license server needs to be stored in an environment variable. What I see in you .toml is that the Arnold license has a custom header. See this link and move you solidangle_LICENSE under [environment]

Why under environment?: The code found in core.lib here adds the keys/values under the header [environment] in the .toml to the environment which will be used by Avalon to launch the application in.

Good luck!

tws0002 commented 6 years ago

hey,

Thanks for the explanation. I have a problem after adding other plugin environments in maya2017.toml which is the Avalon menu is not loaded!! how do you guys manage the third party plugins environments for Avalon?

I found this in @BigRoy colorbleed-config https://github.com/BigRoy/colorbleed-config/blob/app_env/colorbleed/environments/maya2018.json are you guys using this method to manage all the environments?

One more question where can i found this cbMayaScripts? or this is just for inhouse use only?

BigRoy commented 6 years ago

@tws0002 were you able to continue testing or still totally stuck?

Thanks for the explanation. I have a problem after adding other plugin environments in maya2017.toml which is the Avalon menu is not loaded!! how do you guys manage the third party plugins environments for Avalon?

Were you able to solve this particular problem?

I found this in @BigRoy colorbleed-config https://github.com/BigRoy/colorbleed-config/blob/app_env/colorbleed/environments/maya2018.json are you guys using this method to manage all the environments?

These are currently unused. We are implementing some sort of support like that with acre but have not yet used it in production.

One more question where can i found this cbMayaScripts? or this is just for inhouse use only?

These are currently still internal - you wouldn't need it to operate productions with the colorbleed configuration though. It should be able to operate without.

Anything specific you are looking for?

tws0002 commented 6 years ago

Were you able to solve this particular problem?

yes, I just get this problem fix. Thanks.

Anything specific you are looking for?

  • I still stuck at fusion integration with Avalon!! maybe i don't have enough understanding on how to set up fusion.prefs and FUSION9_MasterPrefs
  • do you guys have any daily wip preview tools integrated with Avalon?

I start trying the Maya to houdini17 workflow now.

Thanks for the help

BigRoy commented 6 years ago

Fusion master prefs and .toml

Here's our fusion_shared.prefs:

{
Locked = true,
Global = {
 Paths = {
  Map = {
   ["Scripts:"] = "$(AVALON_CORE)/setup/fusion/scripts;$(COLORBLEED_CONFIG)/setup/fusion/scripts;Fusion:Scripts",
   ["Macros:"] = "AllDocs:Macros;Fusion:Macros",
   ["Fuses:"] = "AllDocs:Fuses;Fusion:Fuses",
   ["Plugins:"] = "AllDocs:Plugins;Fusion:Plugins",
   ["Config:"] = "$(AVALON_CORE)/setup/fusion/config;$(COLORBLEED_CONFIG)/setup/fusion/config;AllDocs:Config;Fusion:Config"
  },
 },
},
}

_Note that for the above to load correctly the AVALON_CORE and COLORBLEED_CONFIG environment variables must be set prior to launching Fusion to respectively the full path of avalon core and the colorbleed config. You can just do that in the .toml if you'd like, we just happen to have it placed somewhere else._

And here's our Fusion .toml (slightly simplified):

application_dir = "fusion"
default_dirs = [
    "scenes",
    "renders",
    "renders/preview"
]
executable = "fusion9"
schema = "avalon-core:application-1.0"
label = "Black Magic Fusion 9"
icon = "object-group"
color = "#3B879C"

[environment]

FUSION9_MasterPrefs=[
    "path/to/fusion_shared.prefs"
]

OFX_PLUGIN_PATH=[
    "path/to/ofx",
    "path/to/ofx/Plugins",
]

The OFX_PLUGIN_PATH is just to show how you might point to a custom storage point for OFX plug-ins. I believe that OFX plug-ins will only work with Fusion Studio so keep that in mind.

Hope this helps!


do you guys have any daily wip preview tools integrated with Avalon?

Not specifically, no. We do have an internal issue regarding something like that but have been unable to create a useful design/tooling system for that. If you have ideas/references I'd recommend creating a new issue specifically regarding that so we can keep discussions contained regarding a single topic. This makes it easier to follow the conversation, but also make it easier to find the conversation for others and allow them to join the discussion.

Looking forward to more input.

tws0002 commented 6 years ago

@BigRoy Thanks for the Fusion ENV config.

Not specifically, no. We do have an internal issue regarding something like that but have been unable to create a useful design/tooling system for that. If you have ideas/references I'd recommend creating a new issue specifically regarding that so we can keep discussions contained regarding a single topic. This makes it easier to follow the conversation, but also make it easier to find the conversation for others and allow them to join the discussion.

sure I will create a topic at Avalon core.

Thanks

tws0002 commented 6 years ago

hi, guys, I have a problem when launch pyblish in Houdini here is the error!! houdini using python 27 but pyblish is using python3.

Installing Avalon ...
Registering callbacks
Registering global plug-ins..
Setting up Pyblish QML in Houdini
Using Python @ 'C:/PROGRA~1/SIDEEF~1/HOUDIN~1.352/python27\python.exe'
Using PyQt5 @ 'None'
Success. QML server available as pyblish_qml.api.current_server()
Traceback (most recent call last):

  File "C:\PROGRA~1\SIDEEF~1\HOUDIN~1.352\python27\lib\runpy.py", line 162, in _run_module_as_main

    "__main__", fname, loader, pkg_name)

  File "C:\PROGRA~1\SIDEEF~1\HOUDIN~1.352\python27\lib\runpy.py", line 72, in _run_code

    exec code in run_globals

  File "\avalon-setup\git\pyblish-qml\pyblish_qml\__main__.py", line 6, in <module>

    from . import app

  File "\avalon-setup\git\pyblish-qml\pyblish_qml\app.py", line 12, in <module>

    from PyQt5 import QtCore, QtGui, QtQuick, QtTest

ImportError: Module use of python3.dll conflicts with this version of Python.

do u guys have this error before?

Thanks Desmond

BigRoy commented 6 years ago

I haven't seen this before. Maybe @aardschok knows what's up? Or @mottosso might have seen that before regarding Qt.py or pyblish_qml?

mottosso commented 6 years ago

Using Python @ 'C:/PROGRA~1/SIDEEF~1/HOUDIN~1.352/python27\python.exe'

QML is using the wrong Python. Try setting the PYBLISH_QML_PYTHON_EXECUTABLE to force it to pick your Python 3 exe. Also remove any notion of Python 3 from your PATH, if there is any.

tws0002 commented 6 years ago

@mottosso Thanks for the help. it works for now.

tws0002 commented 6 years ago

@aardschokI have a question, Avalon for Houdini haveWork Files function like Maya?

BigRoy commented 6 years ago

I don't believe it's implemented. Do you need this urgently? I could have a look next week probably if you need it. :)

BigRoy commented 6 years ago

Had a quick look in the Work Files code in avalon.tools and indeed, it's not implemented as of yet. However, it should be trivial. Is that something you feel comfortable with yourself or would you need assistance?

The code can be found here

  1. First determine the app correctly, like here, you can add the Houdini detection there.
  2. Everywhere it mentions "maya" ensure you have the relevant function implemented for Houdini and add "houdini" to the lookups for save, open and current file
tws0002 commented 6 years ago

Thanks for the explanation. I do like to give it a try. it will be great if you can give me some guidance.

how does your studio handle the Houdini work file by using Avalon for now?

BigRoy commented 6 years ago

I do like to give it a try. it will be great if you can give me some guidance.

The comment above, does that help you enough?

how does your studio handle the Houdini work file by using Avalon for now?

Artists manually save/open with Houdini. Though use Avalon launcher to launch Houdini to allow publishing, etc.


Regarding the Work Files. I've started some work on improving that tool - the current state would be: https://github.com/Colorbleed/core/pull/37

I might work some more on it over the next few weeks.

BigRoy commented 5 years ago

@tws0002 Little update, long overdue as I had to focus on other things.

Work on Houdini support for Work Files tool has also started, see: https://github.com/getavalon/core/issues/365 - and the related commit here: https://github.com/BigRoy/core/commit/241864fa5b82fa1348540679bed2618038356745

I will likely polish out the code more (see the linked issue) and then fix some other bits of the improvements to the Workfiles tool. I'm expecting code should be ready early next week.

Are you still playing around with Avalon and the Colorbleed-config?

BigRoy commented 5 years ago

@tws0002 work files api has been merged into avalon core with built-in support for Maya, Houdini and Fusion. :muscle:

I will close this issue for now as I believe you are still using/testing Avalon but it's unrelated to this issue.