All Projects → huntfx → vfxwindow

huntfx / vfxwindow

Licence: MIT license
Python Qt Window class for compatibility between VFX programs

Programming Languages

python
139335 projects - #7 most used programming language
Batchfile
5799 projects

Projects that are alternatives of or similar to vfxwindow

googleDriveVFXServer-pipeline
Transform a Google Drive server into a VFX pipeline ready server
Stars: ✭ 15 (-81.25%)
Mutual labels:  nuke, houdini, maya, substance-painter
P4VFX
Perforce for VFX content creation tools including Maya, Houdini and Nuke
Stars: ✭ 38 (-52.5%)
Mutual labels:  nuke, houdini, maya
TACTIC-Handler
PySide based TACTIC client for maya, nuke, 3dsmax, houdini, etc
Stars: ✭ 67 (-16.25%)
Mutual labels:  nuke, houdini, maya
Yurlungur
The universal scripting wrapper for Maya, Houdini and Unreal Engine.
Stars: ✭ 51 (-36.25%)
Mutual labels:  blender, houdini, maya
AnimationDNA
Maya > Arnold > Nuke pipeline
Stars: ✭ 101 (+26.25%)
Mutual labels:  nuke, houdini, maya
pipeVFX
A Visual Effects pipeline to manage jobs, shots and software assignment, with a simple asset manager. Its extensively integrated with CortexVFX and Gaffer. (and it builds booth, with support for Maya, Houdini and Nuke, if you have then installed!)
Stars: ✭ 47 (-41.25%)
Mutual labels:  nuke, houdini, maya
texture-importer
A tool that imports textures and creates material networks
Stars: ✭ 17 (-78.75%)
Mutual labels:  maya, substance-painter
UnitySubstanceExtensions
Repository for extensions to the Substance plugin introduced in Unity 2018.1.
Stars: ✭ 17 (-78.75%)
Mutual labels:  substance-painter, substance-designer
cp-tool
cp-tool is an auto generator for solved problems at different online judges.
Stars: ✭ 24 (-70%)
Mutual labels:  pypi, pypi-package
ISS Info
Python wrapper for tracking information about International Space Station via http://open-notify.org
Stars: ✭ 12 (-85%)
Mutual labels:  pypi, pypi-package
starcli
✨ Browse trending GitHub projects from your command line
Stars: ✭ 436 (+445%)
Mutual labels:  pypi, pypi-package
io pdx mesh
Import/Export files for the Clausewitz game engine
Stars: ✭ 49 (-38.75%)
Mutual labels:  blender, maya
pypi-command-line
A powerful, colorful, beautiful command-line-interface for pypi.org
Stars: ✭ 32 (-60%)
Mutual labels:  pypi, pypi-package
rdkit-pypi
⚛️ RDKit Python Wheels on PyPi. 💻 pip install rdkit-pypi
Stars: ✭ 62 (-22.5%)
Mutual labels:  pypi, pypi-package
Meshsyncdccplugins
DCC plugins for MeshSync in Unity. Supported tools: Maya, Maya LT, 3ds Max, Motion Builder, Modo, Blender, Metasequoia
Stars: ✭ 127 (+58.75%)
Mutual labels:  blender, maya
Appleseed
A modern open source rendering engine for animation and visual effects
Stars: ✭ 1,824 (+2180%)
Mutual labels:  blender, maya
NodeSharer
Node Sharer is an add-on for Blender that lets you easily share procedural materials as text strings.
Stars: ✭ 48 (-40%)
Mutual labels:  blender
threejs-example
3D可视化教程
Stars: ✭ 149 (+86.25%)
Mutual labels:  blender
PyGLM
Fast OpenGL Mathematics (GLM) for Python
Stars: ✭ 167 (+108.75%)
Mutual labels:  pypi
voxel-builder
Voxel-based 3D modeling application
Stars: ✭ 31 (-61.25%)
Mutual labels:  blender

VFXWindow

Qt Window class for designing tools to be compatible between multiple VFX programs.

The main purpose of the class is to integrate into the program UI, but it also contains helpful features such as safely dealing with callbacks and automatically saving the window position.

The intended usage is to make your window class inherit VFXWindow - which is an instance of QMainWindow. By calling cls.show(), it will launch the correct window type based on what program is loaded, and what settings were previously saved.

This is perfectly stable, but there is still plenty that needs improvement. Maya, Nuke, 3DS Max, Houdini, Blender, Substance Designer, Unreal and Fusion are currently supported, though any help to extend those would be appreciated, as well as support for any other applications.

Installation

pip install vfxwindow

Basic Example:

class MyWindow(VFXWindow):
    WindowID = 'unique_window_id'
    WindowName = 'My Window'

    def __init__(self, parent=None, **kwargs):
        super(MyWindow, self).__init__(parent, **kwargs)
        # Setup window here

        # Setup callbacks, but wait until the program is ready
        self.deferred(self.newScene)

    def newScene(self, *args):
        """Example: Delete and reapply callbacks after loading a new scene."""
        self.removeCallbacks('sceneNewCallbacks')
        if self.maya:
            self.addCallbackScene('kAfterNew', self.newScene, group='sceneNewCallbacks')
        elif self.nuke:
            self.addCallbackOnCreate(self.newScene, nodeClass='Root', group='sceneNewCallbacks')

if __name__ == '__main__':
    MyWindow.show()

Compatibility

  • Maya (2011-2016, tested lightly on 2016) - standard, docked (pymel.core.dockControl), standalone, callbacks
  • Maya (2017+, tested on 2017-2019) - standard, docked (pymel.core.workspaceControl), standalone, callbacks
  • Nuke (tested on 9-12) - standard, docked (nukescripts.panels), callbacks
  • Substance Designer (tested on 2019.3) - standard, docked (unable to save/load position)
  • 3D Studio Max (2018+, tested on 2020) - standard
  • Houdini (tested on 16) - standard
  • Blender (tested on 2.8 - 3.1) - standard, callbacks
  • Unreal (4.19+, tested on 4.23) - standard
  • Fusion (tested on 9) - standard
  • Standalone (Qt4, Qt5, tested on 2.7, 3.4+) - standard

Generic Features

  • Automatically save/restore window position
  • Move window to screen if out of bounds (windows only)
  • Keep track of callbacks to remove groups if required, and clean up on window close
  • Keep track of signals to remove groups if required
  • Display a popup message that forces control
  • Set palette to that of another program
  • Auto close if opening a duplicate window
  • Close down all windows at once
  • Create dialog windows automatically attached to the application (and return data)

Maya Features

  • Dock window using workspaceControl
  • Save/restore position of workspaceControl window (floating+docked)
  • Easy access to callbacks

Nuke Features

  • Dock window as a panel
  • Save/restore location of panel (docked only)
  • Easy access to callbacks

Blender Features

  • Easy access to callbacks

Substance Features

  • Dock window into panels

Non-Python Applications

Certain Windows applications have dispatch based COM interface, which will allow a link between Python and the application. See photoshop-scripting-python for an example on how to connect to an application.

Currently there is no way of launching VFXWindow from inside these applications.

Special Thanks

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].