Jump to content

Milan Kolar

  • Posts

  • Joined

  • Last visited

  • Days Won


Everything posted by Milan Kolar

  1. Will do. Yeah we're carefull. pulling a particular commit to make sure it stays ok for us.
  2. Hi. We'll try updating to this latest branch. We've been using the previous one for python 3 for almost a year with only one problem, that we're running into now. It's compatible with either python3 or python 2, but doesn't work in mixed environment. So if we install it with pip3 and then try loading it to maya, it crashes on multilpe wrong imports. We'll investigate more closely and post here.
  3. Have a look here. https://github.com/kredencz/ftrack-event-plugins-kredenc/blob/master/thumbnail_updates.py We're listening to events on `assetversion` where action is `encoded`, then grab a thumb and push it to the parent. Using Toke Jepsen's event server script, we're running a lot of these little event listeners.
  4. I've noticed that there isn't specific trello card for being able to play clip without their handles. We're running into this every day in internal review, to the point, that the online review is becoming very hard to use on longer projects (tv shows), where the continuity of movement between shots is important. We have to do all sequence review in nuke studio to see shots in context correctly.
  5. We've been craving something like this for long time now actually so I'm glad it's been brought up. Currently we make multiple components and supervisor just uses the version to quickly jump to the folder where they're stored using action. Having multiple reviewables per version would be amazing. Especially for modelling as Thirtydevil mentioned, but also for lookdev (multiple lighting setups)
  6. @pritchardhobe you should get an invite
  7. Very interesting idea. Even though we've never really longed for something like it, I'm sure we'd start using it right away and it would be clearer for the client. Right now we're also sending multiple review sessions if they concern different things (for example one session for fx approvals and one for animation). With this feature we could be sending dailies (which we'd love) that would be organised inside for clarity. My approach would be more of a 'playlist' style, where we could set multiple playlist withing the review that could contain the same version if need be. Client could then choose a playlist inside the review, or show all versions. If 'show all' could be disabled, then it would work exactly as Alberto's request, but having the extra option for other cases. Just writing this down I can think of plethora options to use it. Mockup different cut versions with scrambled shots or different shot versions (that would of course need the sequence play in client review ) and so on.. Long story short: I love the idea
  8. So maya 2017 is out just in time for us to start testing it on some new production. However as you might have noticed. PySide is no longer available to make way for Qt5 and PySide2 bindings. That of course means that ftrack-connect is currently incompatible with maya 2017. Do you have an estimate about when it might be? I realize it's not quite a switch of a button change, so maybe have a look at https://github.com/mottosso/Qt.py to stay backwards compatible as much as possible.
  9. @FranZ Hey. I've sent the invite now. You can either send me a private message here with the emails or I can make you an admin if you wanna invite people yourself. Either works.
  10. To add to list these are some thing more in a bug than a feature category. Adding time logs by just typing a duration in the main field and pressing save, should use current time as end time, rather than start. Editing time logs should allow changing the stop time as well as start time, currently the only way to change timelog is changing duration. Something to deal with the occasional super long day (as instinct-vfx mentioned) would be great. Maybe a notification that pops up every hour after certain time that prompts user to confirm he's still working, if he doesn't it turns off the logger, because he's most likely gone home. Ideally though this could all be integrated with connect. Auto start timers on launching app for task, and stopping when artist closes it.
  11. Yes. So that client can see the shots in context of the 'edit'. We're currently having to export videos compiled of multiple shots, which is very easy for the client to comment on, but we then have to transfer the feedback manually to it's respective shots. There's another aspect of this, which applies to the internal review tools too and that is handles. It would be amazing to be able to take handles on shots into consideration and cut them of when reviewing multiple shots in sequence., we would be essentially then able to reproduce the edit in the web browser and it would make reviewing infinitely easier.
  12. Depends on what API are you using. The first link is for the old API, while the second one applied to the new one. At this point I'd probably just start with the new one and only got to the old if you run into something it can't do.
  13. I've set it up so that anyone with @ftrack.com email address can log in without an invite, in case developers want to peek in here and there.
  14. Soo. I went ahead and created an Ftrack Slack User Group. However there's this small problem I haven't realized till now. Slack is not very good with public access, so every person needs to get an invite (or be within a specific domain, which is even worse). There is this lovely service called slackin, but that of course needs to run on something. Right now I'm ok with just sending out invites like crazy if anyone asks here to get it going. Theoretically as it grows this won't be an issue, because any member can send an invite. It'll just be a bit of a hassle at the beginning. Maybe ftrack guys would be interested in hosting this tiny slackin service, to make it easier? Anyways the address is: ftrackusers.slack.com Come join the party... (it's very, very lonely right now )
  15. Another useful hook with this. Start timer automatically with app launch. Now we need to figure out how to stop it automatically and there will be some happy producers walking around here. import logging import ftrack import ftrack_api logger = logging.getLogger() def start_time_on_launch(event): '''Modify the application environment and start timer for the task.''' data = event['data'] username = event['source']['user']['username'] session = ftrack_api.Session() # Get user from username user = session.query('User where username is "{}"'.format(username)).one() # Try getting taskid from event selection try: taskid = data['context']['selection'][0]['entityId'] except: logger.info('Unable to determine task. Timer not starting') if taskid: task = session.query('Task where id is {}'.format(taskid)).one() logger.info('Starting timer for task: ' + task['name']) user.start_timer(task, force=True) def register(registry, **kw): '''Register location plugin.''' # Validate that registry is the correct ftrack.Registry. If not, # assume that register is being called with another purpose or from a # new or incompatible API and return without doing anything. if registry is not ftrack.EVENT_HANDLERS: # Exit to avoid registering this plugin again. return ftrack.EVENT_HUB.subscribe( 'topic=ftrack.connect.application.launch', start_time_on_launch )
  16. So I had some time to play with this a little bit and came up with compact and quite efficient way of dealing with environments using launching events. Technically all that is needed is one hook that listens to the launching events and appends environments from simple .json config files based on app identifiers. The hook looks for .json files in 'FTRACK_APP_ENVIRONMENTS' and tries to find 2 configs. One that is version independent i.e. 'maya.json' and one that is version dependent i.e. 'maya_2016.json', then it adds both into the environment. Config file names mus match the app identifier or the first part of the identifier when split by '_'. You can then have a hierarchical environment config files, where maya.json loads regardless of maya version you launch, and maya_2016.json gets added on top of the environment when you launch Maya 2016 from ftrack. 'FTRACK_APP_ENVIRONMENTS' folder can then look like this for instance: maya.json maya_2015.json maya_2016.json maya_2016.5.json nuke.json nuke_9.0v8.json houdini.json houdini_15.json etc.... This is the core part of the hook (full hook attached): def modify_application_launch(event): '''Modify the application environment and start timer for the task.''' data = event['data'] context = data['context'] app = data['application'] environment = data['options']['env'] env_path = os.environ.get('FTRACK_APP_ENVIRONMENTS') env_files = [] # determine config file for version independent environment app_name = app['identifier'].split('_')[0] app_file_name = '{}.json'.format(app_name) env_files.append(os.path.join(env_path, app_file_name)) # determine config file for version dependent environment variant_file_name = '{}.json'.format(app['identifier']) env_files.append(os.path.join(env_path, variant_file_name)) env_add = [] # loop through config files for env_file in env_files: try: env_add = load_env(env_file) except: env_add = None # Add each path in config file to the environment if env_add: for variable in env_add: for path in env_add[variable]: ftrack_connect.application.appendPath( str(path), str(variable), environment ) This is what the config file look like then: { "MAYA_PLUG_IN_PATH": [ "K:\\.core\\dev\\maya\\plug-ins" ], "MAYA_AUTOSAVE_FOLDER": [ "C:\\mayatemp\\autosave" ], "MAYA_SCRIPT_PATH": [ "K:\\.core\\dev\\maya\\scripts", "K:\\.core\\dev\\maya\\shelves", "K:\\.core\\repos\\maya\\scripts", "K:\\.core\\repos\\maya\\prefs\\shelves" ] } Now quite frankly, I think that a simple hook like this (probably a bit more robust version) should be a part of the default connect installation. Straight away people would have 3 options of modifying the app launches. Only need to modify environment: Add your json formatted environment file to 'FTRACK_APP_ENVIRONMENTS' and name it 'app_identifier.json' (e.g.: maya_2016.json) Write your own hook that catches launching events and modify the launch that way. Change the launcher hook in connect and modify to your heart's content One way or another, our enviro setups just went from lot's of python file, to a simple json file per app without the need to tinker with default hooks. Thumbs up. modify_app_launch.py
  17. This is getting very close to a simple a straightforward system. I have however ran into some issues. The most prominent right now is the fact that I have no way of finding out what task/entity was the source of this launching event. It's not included in the event data and because it seems that this event precedes the ftrack addition of env variables the environment is missing the 'FTRACK_TASKID' key too. It's important to be able to tell what originated the launch event because the enviro usually changes based on what project or task we're launching (different plugins for example. EDIT: Ah. One of those where you completely skip on part of docs and then realise it's of course all there. If anyone else enjoys skipping important parts of docs, then here's how you get it. event['data']['context']['selection'][0]['entityId'] So considering I found it...Nice work guys.
  18. Sounds great to me for unofficial "holy crap where's this button I certainly saw yesterday" type problems. I'd certainly be on on it happy to chat about ftrack with other users.
  19. This!!! Something along these lines would be really great. I've been toying with the idea of creating a separate project for exactly this purpose, but it would be a bit clumsy to find things quickly. Preview playback while hovering over the thumbnail, would pretty much solve this right away.
  20. Milan Kolar

    Change schema

    Hey guys. One thing I'm dealing with right now and it appears I'm stuck. We have 2 shows using the same schema. However midway through production one of them started changing a bit in terms of requirements from client, director etc. So I need to tweak the schema for this one a bit. Different statuses, plus some other config differences. The question is. Is it possible to change the schema after the project is created? I didn't find a way, just as well as I didn't find a way to duplicate schema. That would be super helpful too considering how annoying it is to keep creating new ones all the time. Thanks EDIT: I forgot to add, that my aim is to separate these two shows, because we don't want the changes made on show2 reflected into show1
  21. I'll second this request. It would certainly help a lot.
  22. I will second this. It would certainly look cleaner if nothing else and the icons give better idea of what the option represent.
  • Create New...