Linking project files to clips

I’m currently working on a feature to link project files such as .aep, .shk and .nk to image clips so you can launch the script that created a particular clip, track its history so to speak. I’ve thought of a couple of ways how this should be paired, the first one would be name based, the second manual, ie drag-drop a project onto a clip, and the third one would involve parsing project files to find output names in fileOut-nodes and match those with clips on the desktop. I’m not sure how that would work with After Effects though, since its project files are binary.

To locate the actual project files I’ve added a tag in the project structure file which lets you point to where project files are stored relative to the current project. VfxDesktop is turning out to be quite project based, I think this opens up some doors for management and pipeline. Once a list of supported project files are found, it can be paired to existing clips. The first way I’m implmenting is by name, so that would be:

shot01_v01.shk would be paired to shot shot01_v01.#.tif, basically whatever’s before the first period. This will require strict naming when you’re working which is it’s not ideal. Having the application dig through the script files for outputs would probably be more automatic, but that is probably limited to those apps that have text-based project files.

I’m sure there are more sophisticated ways of dealing with such a link, if you have ideas, I’d love to hear them!

Advertisement

10 Responses to “Linking project files to clips”

  1. Ehren Says:

    After Effects can save a project as an XML file. However, this may not be ideal for your solution.

  2. Jimmy Christensen Says:

    Fusion embeds the comp flow file name+path inside dpx files metadata. In our case we have special places for our renderComps to be used by Royal Render, which means it’s not the one you want to open if you want to open the flow again from the dpx’s metadata. Ofcourse we can always just make a wrapper which detects this and point to the correct comp.

  3. Abel Says:

    Yes, the two more efficient ways I have seen to do this are:

    - Embedded metadata. All mayor image formats support some sort of metadata, including JPG, TIFF, EXR, DPX and even TGA with some predefined tags. The easiest way I’ve seen of reading and writing metadata for all these is Image Magick. It has libraries for all mayor OS and a fairly friendly API. Sometime I have even use it in companion with some scripting languages like Lua and Pyhton. Specifically the ‘identify’ command is particularly useful to know nearly everything about an image.

    - The other way that have work very good for me is to script the render commands of the application that created the image so a copy of the source script is copied in the same folder the images are rendered. In some cases the render command is just a script that creates the destination folder of the image, copies the script to it with exactly the same name as the image sequence and then render. This way is extremely useful when you want create a snapshot of your script at the time the image was rendered. It also allows the comp script and the image to travel together in case you need to re-render.

    Both ways have advantages and disadvantages. The first one embeds the information on the file, but you need the software to read that information. the second allow quick access to the comp script, but you need some sort of render script that puts it in the right place.

    In any case, you can definitely propose some defaults, but there will always be a project that will require different settings. It may sound too ambitious but I think if you really want to make VFX Desktop project friendly, the key is to be able to run custom scripts from within.

    • Jimmy Christensen Says:

      The best would probably to have a default wrapper script which can be edited/replace with a custom one. This way you can either read the embeded info or do something completely different. Every project and company have their own tools/pipelines.

      For instance in scratch you have the ability to drag a clip down to a custom button which refers to a script/cmd file of your own choosing. The script/cmd gets some parameters about the clip such as filename. This way the script/cmd can use the filename how it wants to.

  4. Arvid Says:

    Thanks guys, that’s some interesting ideas. I think embedded python support would really help extending vfxD to fit everyone’s needs. It should truly be a flexible launch platform from which you wrangle your material.

    Currently I have a working version where the program searches your project structure and matches project files to clips by name prefix, and you can also drag-drop all supported formats (nuke, boujou, xsi, mocha files etc) to a clip and have them appear as icons at the bottom of the clip so you can launch the relevant project instantly. Adding custom ways (by python scripting) of making these links will greatly improve this functionality for most pipelines out there I think! When python is in place, you could probably create a nuke write-gizmo that creates a clip and links it with the path of its own script while rendering and that sort of thing.

    • Jimmy Christensen Says:

      Also please make it possible to make custom actions by scripts on clips. Eg. re-render this clip. This way it could be a really powerfull render checker aswell.

    • Jimmy Christensen Says:

      And ofcourse this could also be used to make quicktimes etc. through ffmpeg :)

      • Abel Says:

        Im pretty sure that if Arvid implements Python inside VFXDesktop all sort of custom scripts will start to emerge. I’ll take care of some of them.

      • Jimmy Christensen Says:

        I just ment that it would be nice if it weren’t just a generic “send to script” button, but more like a “send to script A” and “send to script B” etc…

      • Arvid Says:

        I’ve made a generic circular menu similar to the app-menu which would be ideal for stuff like that, it’s made for File-menu type stuff but works for any purpose such as this. :)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s


Follow

Get every new post delivered to your Inbox.