P4Houdini Plugin

This plugin connects Houdini and Perforce in a way that makes version control seamless straight from within the Houdini UI you are familiar with. Switch between automatic and manual management of changelists to configure the plugin to your preferred way of working.

Supported:

Houdini 19.0-19.5 (py3) on Windows & Linux

Personal License

Node-Locked

If you are an individual using Houdini and Perforce, this is the best choice for you! You can purchase a license on Gumroad and manage your subscription easily through their platform. You also get a free one-month trial! You get access to the plugin and API. Source is not available.

Studio License

Flexible

If you are a studio and want your artists to be able to use the plugin within your environment (including home-machine and outsourcing studios), this is the best fit. You get access to the plugin, API, and source code upon request.

Features

 

P4Houdini Shelf

The P4Houdini shelf has a variety of shelf tools that can help you work a lot more efficient! It has a convenient tools for installing the plugin, debugging your connection, and manual buttons for many of the P4Houdini functionality shown below.

 

Add and Check Out Files

Add or Check out files straight from within Houdini. The plugin has support for automatic prompting for add or checkout whenever you hit save on a HIP or HDA. This prevents any painful permission errors, and also functions as a super useful reminder to mark your new files for add!

You can also manually mark any file for add or checkout using the shelf tools, RMB Context menu for parms and HDAs.

If another user has a file checked out already, the plugin will notify you. You can then decide to either check out the file anyways, or simply make it writeable.

 

Submitting Changelists

Submit (partial) changelists from the Houdini UI. Convenient icons will show you what kind of action will be done with each file during submit. Things like add, remove, checkout. It will also tell you if another user has a file checked out.

Before submitting, remember to make some last minute edits to your changelist description!

 

Scanning Dependencies

The plugin also ships with a shelf tool that will scan your hip file for any nodes (including custom tools you create!) which write files to disk. This is useful if you have files not yet tracked by perforce being used in Houdini. You know how painful it is for a scene to throw node errors mid-cook because a file is locked!

It understands $F expressions as well!

 

Reverting

Did you make some mistakes in a HIP or HDA and want to go back a revision? The P4Houdini plugin has both a shelf tool as well as RMB Context menu options for reverting files. After reverting the plugin will automatically load the changed files for your convenience.

 

Context Menus

String Parameters and Nodes also have a RMB P4Houdini Context Menu with several options. Convenient to quickly manage files! For example to check out an HDA or File.

 

Python API

If you want to for example manually script some actions the plugin should do for you, you can simply use many of the public methods the plugin ships with. This is convenient if you for example want to check out a file pre-frame, or add a file post-frame.

FUNCTIONS
    check_perforce_installed()
        Returns whether or not P4 dependencies are installed.
    
    file_checkout(file)
        Prompts the user to check out the specified file.
    
    file_edit_changelist(file)
        Prompts the user to edit the changelist belonging to the specified file.
    
    file_revert(file)
        Reverts the specified file to the state found on the depot.
    
    hda_after_save_automatic(file)
        Prompts the user to either check out or add the HDA definition
        after hitting save. It only does this if the plugin preferences
        have this enabled. This is used by event callbacks in pythonrc.py
    
    hda_revert(node)
        Reverts the specified node definition to what is found on the depot.
        Also matches the specified node instance to that.
    
    hip_after_save_automatic()
        Prompts the user to either add the HIP
        after hitting save. It only does this if the plugin preferences
        have this enabled. This is used by event callbacks in pythonrc.py
    
    hip_before_load_automatic()
        Automatically check if the file that is to be loaded is the latest version.
        If not it will prompt for an update. This is used by event callbacks in pythonrc.py
        NOTE: CURRENTLY NOT USED BECAUSE OF A BUG IN HOUDINI CAUSING A FREEZE.
    
    hip_before_save_automatic()
        Prompts the user to check out the HIP
        right before the file gets saved. This prevents any permission
        errors due to file locks. It only does this if the
        plugin preferences have this enabled.
        This is used by event callbacks in pythonrc.py
    
    hip_checkout_dependencies()
        Crawl through all nodes found in the currently open HIP file,
        and check if its node type name is found in the P4NodeCheckouts.json file.
        If it is, it will look for files in the P4NodeCheckouts.json parameters marked as write.
    
    hip_checkout_manual()
        Prompts the user to check out the currently open HIP file.
    
    hip_revert()
        Prompts the user to revert the currently open HIP file
        to the state it is on the depot. It will also
        reload the hip file automatically.
    
    node_file_automatic(node)
        For the given node, check out or add all files found in the known
        parameters described in P4NodeCheckouts.json
    
    submit_dialog()
        Prompts the user with the P4Houdini submit dialog.