Working with multiple shots like Unreal Engine's Sequencer?

   1289   10   4
User Avatar
Member
22 posts
Joined: Dec. 2019
Offline
Hello, I'm pretty new to Solaris, and I'm currently working on a setup with multiple different animated shots.
I'm using a switch node to switch between my shots, but this practice seems very suboptimal since it doesn't seem to work like true unique shots.

For example, if I have shot1 from frame 1-100 and shot2 from 101-200 then I have to make sure everything in shot two is animated within the correct timeframe within 101-200. If I now wanna change when shot2 starts to lets say frame 80. I need to change all key frames and animations in shot2???

This sucks and is basically unworkable.
I want every shot to be animated in its own timeline from frame 1 to whatever the end is. And then combine them to one animation with multiple shots where I can easily control and cut my shots to play at whichever frames I chose.

Unreal Engine's sequencer is fantastic at this, so I wanted to ask if anyone knows of a way to replicate this workflow in Houdini Solaris?
User Avatar
Staff
4525 posts
Joined: July 2005
Offline
The general approach I've seen is that every shot lives in its own frame range. The "switch" is driven by a context option (@Shot) which you set manually in the Edit Context Options pane to switch between shots. There is a toggle in the lower left corner of the Scene Viewer pane that lets Houdini automatically adjust the playbar range based on the frame range defined on the current stage, so switching shots automatically adjusts the playbar to show the current shot's "native" frame range.

This means you can't use the timeline to "scrub" from one shot to the next. You can't do a single continuous playback. But it avoids the issue you are describing. This fairly closely mimics the workflows I have seen people use for multishot work in Katana.

It is definitely inferior to the Unreal workflow in some ways, but Unreal has the advantage that it has never really been tied to an explicit timeeline (being primarily a realtime engine designed to run continuously). So it doesn't have the baggage that Houdini does in terms of tying all animation directly to a global timeline. This is an area we are working on, but it will likely be some time before this work bears any fruit.
User Avatar
Member
22 posts
Joined: Dec. 2019
Offline
mtucker
There is a toggle in the lower left corner of the Scene Viewer pane that lets Houdini automatically adjust the playbar range based on the frame range defined on the current stage, so switching shots automatically adjusts the playbar to show the current shot's "native" frame range.

I assume you mean the "Stage frame range drives playbar range" button? Cause if so, I can't seem to get that one to do what you described.


I actually managed to somewhat get close to the unreal workflow, even if it involves more manual labor and a lot of work arounds.. which is not a good workflow at all.

I'm using a "switcher" driven by the "edit context options".
For each shot out, I write down how many frames each shot is supposed to be.
Then I use that to automatically calculate the "edit context options" driving my switcher.
To make the frame ranges match I use a timeshift which auto adjusts as well based on the "edit context options".

This then allows me to playback my entire animation with all shots and timings directly in the viewport. As well as render it like that.

However, I couldn't get the camera from render settings workflow to work at all (it kept breaking for me and seems to be incompatible with Disney's RenderMan anyways) so I'm using a tool I found online which acts as a camera switcher but gets read as only one camera.

If you guys could improve on this, it would bing a lot of value in my eyes. I really like the mindset and workflows of, what I see is what I get. It just saves so much time, enabling me to iterate quickly while developing my shots. Getting some sort of tool which automates this, if possible in combination with Copernicus - would be an amazing tool set for product animators like myself.
User Avatar
Member
167 posts
Joined: Aug. 2015
Offline
I use Configure Layer node and set start and End time there. Then "Stage frame range drives playbar range" sets time line according to that shot. And then having multiple branches for each shot.
But one thing that I did run with this approach is that it does not work fine with sending rops to deadline to render.

Attachments:
Screenshot_20240811_193416.png (54.6 KB)

User Avatar
Member
22 posts
Joined: Dec. 2019
Offline
Mirko Jankovic
I use Configure Layer node and set start and End time there. Then "Stage frame range drives playbar range" sets time line according to that shot...

Hey thanks for the tip, I was able to incooperate this in my workflow to save a bit of manual work when previewing individual shots.

I ran into major issues with how cameras for each shot are read when rendering as well. Using the render settings camera just didn't work for me in Karma even. While my 3rd party renderer didn't even recognize the render settings camera at all.

Forcing me to either render each shot individually, or to get super creative and messy with my setup to get it to display and preview correctly.

I hope this can be improved soon, as to me, it's almost unmanageable with massive time losses due to such problems.
User Avatar
Member
167 posts
Joined: Aug. 2015
Offline
Weird about camera because it works perfectly fine for me.
Both using it for render and setting it up in view port, at the moment both frame range in playbar and camera used updates automaticly when I select karma render settings node for the shot

Attachments:
Screenshot_20240812_184552.png (84.0 KB)

User Avatar
Member
22 posts
Joined: Dec. 2019
Offline
Mirko Jankovic
Weird about camera because it works perfectly fine for me.
Both using it for render and setting it up in view port, at the moment both frame range in playbar and camera used updates automaticly when I select karma render settings node for the shot
When switching between shots with a variety of different assets, the rendersettings camera sometimes works and sometimes just breaks and gets lost. It's not only super glitchy like that for me to a point where it's unusable. It also doesn't seem to be a supported workflow by Disney's RenderMan.
User Avatar
Member
167 posts
Joined: Aug. 2015
Offline
Ah could be issue with renderman perhaps.. no idea. So far it is perfectly stable for me in both reading camera from USD and stage created camera. hope it clarify for you it is really must have for multiple shots and sequences
User Avatar
Member
22 posts
Joined: Dec. 2019
Offline
I've submitted a feature request RFE #140280 for a sequencer inside LOPs.
Instead of manually setting up and managing all the retimes, switches, contextoptions, and corresponding frame calculations, the "sequencer node" would automate this process in a more elegant and user-friendly way.

Allowing us to edit in a timeline format -- similar to what we’re accustomed to in video editors or the Unreal Engine sequencer.
This would enable us to make quick changes like shortening shots, or rearranging their order within seconds.

I’ve created a very simple mockup of what this could look like:

Especially to my product visualization workflow, something like this would bring tremendous value & save hundreds of hours over time.
User Avatar
Staff
4525 posts
Joined: July 2005
Offline
Just to tell you in advance I'm going to reject this RFE

Not because it's a bad idea (it's a great idea!) but because we already know about and want to address this demand. But this cannot be solved by "a node". Deeper changes will be required in Houdini to allow real sequencer-based workflows like Unreal supports. One of the biggest issues is Houdini's current reliance on "the one true timeline". If you start appending shots together, and then adjusting the lengths of your shots, all the animation in later shots is ruined. You have to move _all_ of your keyframes.

Instead, each shot should live in it's own time range, so you can animate and edit in the context of that shot. Houdini can currently be made to work nicely in "shot switching" workflows (where you pick which shot you're working in, and the playbar switches to let you work in that shot's context). But then you lose the "sequencer" aspect of it. You lose the editorial capabilities. You lose the ability to scrub through all your shots as if they are a single contiguous block.

Anyway, short answer is "we know, and we're working on it", but it will take some time to do this in a way that is good enough that we want to release it, and projects at this scale are not usefully captured by RFEs. But rest assured that we hear you.
User Avatar
Member
274 posts
Joined: July 2013
Offline
FYI: https://jdbgraphics.nl/script/prosequencer-2-0-houdini/ [jdbgraphics.nl]

Its a general sequencer I wrote for Houdini, It's not specifically geared towards Solaris but it's easy to reference the in/out points of tracks and use them in Solaris.

It will help in editing and managing shots.
Edited by Jonathan de Blok - Aug. 16, 2024 17:48:33

Attachments:
ps_panel_view.png (14.0 KB)

More code, less clicks.
  • Quick Links