Scene: Difference between revisions
SavinaRoja (talk | contribs) |
(reformatting, axpymol link, auto-play trick) |
||
Line 1: | Line 1: | ||
'''scene''' makes it possible to save and restore multiple scenes scene within a single session. A scene consists of the view, all object activity information, all atom-wise visibility, color, representations, and the global frame index. | '''scene''' makes it possible to save and restore multiple scenes scene within a single session. A scene consists of the view, all object activity information, all atom-wise visibility, color, representations, and the global frame index. | ||
== | == Usage == | ||
scene [key [,action [, message, [ new_key | scene [ key [, action [, message [, view [, color [, active [, rep | ||
[, frame [, animate [, new_key ]]]]]]]]]] | |||
Arguments | === Arguments === | ||
* '''key''' = string, new, auto, or *: use new for an automatically numbered new scene, use auto for the current scene (if one exists), and use * for all scenes (clear and recall actions only). | * '''key''' = string, new, auto, or *: use new for an automatically numbered new scene, use auto for the current scene (if one exists), and use * for all scenes (clear and recall actions only). | ||
* '''action''' = store, recall, insert_after, insert_before, next, previous, update, rename, clear or append: (default = recall). If rename, then a new_key argument must be explicitly defined. | * '''action''' = store, recall, insert_after, insert_before, next, previous, update, rename, clear or append: (default = recall). If rename, then a new_key argument must be explicitly defined. | ||
* '''message''' = string: a text message to display with the scene. | * '''message''' = string: a text message to display with the scene. | ||
* '''view''' = 1 or 0: controls whether the view is stored {default: 1} | |||
* '''color''' = 1 or 0: controls whether colors are stored {default: 1} | |||
* '''active''' = 1 or 0: controls whether activity (objects enabled/disabled) is stored {default: 1} | |||
* '''rep''' = 1 or 0: controls whether the representations are stored {default: 1} | |||
* '''frame''' = 1 or 0: controls whether the frame is stored {default: 1} | |||
* '''animate''' = float: animation duration in seconds {default: ''scene_animation_duration''} | |||
* '''new_key''' = string: the new name for the scene | * '''new_key''' = string: the new name for the scene | ||
== Using Scene == | |||
The [[Scene]] command has quite a few actions/options that can be enabled by using the mouse and the keyboard through the usual [[Scene]] command or hot-keys. Also, you can shift the scenes around using the new [[Scene_buttons]] and just dragging the scene names. | The [[Scene]] command has quite a few actions/options that can be enabled by using the mouse and the keyboard through the usual [[Scene]] command or hot-keys. Also, you can shift the scenes around using the new [[Scene_buttons]] and just dragging the scene names. | ||
=== Storing scenes === | |||
<source lang="python"> | <source lang="python"> | ||
# store this scene in the next spot, giving it the default name. | # store this scene in the next spot, giving it the default name. | ||
Line 23: | Line 28: | ||
has the hot-key equivalent of '''CTRL-PageDown''' (FN+CTRL+DownArrow on the Mac). Try turning on [[Scene_Buttons]] and then doing CTRL-PageDown; see the scene buttons popping up? | has the hot-key equivalent of '''CTRL-PageDown''' (FN+CTRL+DownArrow on the Mac). Try turning on [[Scene_Buttons]] and then doing CTRL-PageDown; see the scene buttons popping up? | ||
=== Scenes as Movies === | |||
If you desire to make a movie that only has camera changes or representation changes, then scenes are your friend. Simply setup each view and then when ready you can do Scene->Store from the PyMOL menus (or ''scene auto, store'' on the command line or the third method Ctrl+PgDn (Fn+Ctrl+DownArrow on the Mac)). Do this for each view you setup. Once done, you can scroll through your scenes by pushing PgUp/PgDn. PyMOL automatically interpolates when you use the PgUp/PgDn buttons, so you get the desired smooth transitions. Mix this with [http:// | If you desire to make a movie that only has camera changes or representation changes, then scenes are your friend. Simply setup each view and then when ready you can do Scene->Store from the PyMOL menus (or ''scene auto, store'' on the command line or the third method Ctrl+PgDn (Fn+Ctrl+DownArrow on the Mac)). Do this for each view you setup. Once done, you can scroll through your scenes by pushing PgUp/PgDn. PyMOL automatically interpolates when you use the PgUp/PgDn buttons, so you get the desired smooth transitions. Mix this with [http://www.pymol.org/ax/ AxPyMOL] and you have movies in PowerPoint with very little work. | ||
=== | === Auto-play through Scenes === | ||
< | With this simple trick you can auto-play through scenes. This is similar to "Movie > Program > Scene Loop" but uses only a single frame. | ||
cmd. | <syntaxhighlight lang="python"> | ||
cmd.mset('1x1') | |||
</ | cmd.set('scene_loop') | ||
cmd.set('movie_fps', 1.0 / 5.0) | |||
cmd.mdo(1, 'scene auto, next') | |||
cmd.mplay() | |||
</syntaxhighlight> | |||
== | == Examples == | ||
Simple Examples. | Simple Examples. | ||
<source lang="python"> | <source lang="python"> | ||
Line 142: | Line 136: | ||
</source> | </source> | ||
== PyMOL API == | |||
<source lang="python"> | |||
cmd.scene(str key='auto', str action='recall', str-or-list message=None, bool view=1, bool color=1, | |||
bool active=1, bool rep=1, bool frame=1, float animate=-1, str new_key=None) | |||
</source> | |||
== | == Notes == | ||
* To scroll through your frames, as in a presentation, just use the PG-UP and PG-DN keys. Very handy. | * To scroll through your frames, as in a presentation, just use the PG-UP and PG-DN keys. Very handy. | ||
*Scenes F1 through F12 are automatically bound to function keys provided that "set_key" hasn't been used to redefine the behaviour of the respective key. | *Scenes F1 through F12 are automatically bound to function keys provided that "set_key" hasn't been used to redefine the behaviour of the respective key. | ||
*If you have a script that modifies the representation of the molecules and stores them, quickly, then the stored frames may not be up to date. I suggest calling "refresh" between the commands. | *If you have a script that modifies the representation of the molecules and stores them, quickly, then the stored frames may not be up to date. I suggest calling "refresh" between the commands. | ||
== | == See Also == | ||
[[View]], [[Set_View]], [[Get_View]], [[Movie_from_scenes]] | [[View]], [[Set_View]], [[Get_View]], [[Movie_from_scenes]] | ||
==DEVELOPMENT TO DO== | |||
Add support for save/restore of a certain global and object-and-state specific settings, such as: state, surface_color, ribbon_color, stick_color, transparency, sphere_transparency, etc. This would probably best be done by defining a class of "scene" settings which are treated in this manner. The current workaround is to create separate objects which are enabled/disabled differentially. | Add support for save/restore of a certain global and object-and-state specific settings, such as: state, surface_color, ribbon_color, stick_color, transparency, sphere_transparency, etc. This would probably best be done by defining a class of "scene" settings which are treated in this manner. The current workaround is to create separate objects which are enabled/disabled differentially. | ||
[[Category:Scenes]] | [[Category:Scenes]] | ||
[[Category:States]] | [[Category:States]] |
Revision as of 03:56, 26 July 2013
scene makes it possible to save and restore multiple scenes scene within a single session. A scene consists of the view, all object activity information, all atom-wise visibility, color, representations, and the global frame index.
Usage
scene [ key [, action [, message [, view [, color [, active [, rep [, frame [, animate [, new_key ]]]]]]]]]]
Arguments
- key = string, new, auto, or *: use new for an automatically numbered new scene, use auto for the current scene (if one exists), and use * for all scenes (clear and recall actions only).
- action = store, recall, insert_after, insert_before, next, previous, update, rename, clear or append: (default = recall). If rename, then a new_key argument must be explicitly defined.
- message = string: a text message to display with the scene.
- view = 1 or 0: controls whether the view is stored {default: 1}
- color = 1 or 0: controls whether colors are stored {default: 1}
- active = 1 or 0: controls whether activity (objects enabled/disabled) is stored {default: 1}
- rep = 1 or 0: controls whether the representations are stored {default: 1}
- frame = 1 or 0: controls whether the frame is stored {default: 1}
- animate = float: animation duration in seconds {default: scene_animation_duration}
- new_key = string: the new name for the scene
Using Scene
The Scene command has quite a few actions/options that can be enabled by using the mouse and the keyboard through the usual Scene command or hot-keys. Also, you can shift the scenes around using the new Scene_buttons and just dragging the scene names.
Storing scenes
# store this scene in the next spot, giving it the default name.
scene auto, store
has the hot-key equivalent of CTRL-PageDown (FN+CTRL+DownArrow on the Mac). Try turning on Scene_Buttons and then doing CTRL-PageDown; see the scene buttons popping up?
Scenes as Movies
If you desire to make a movie that only has camera changes or representation changes, then scenes are your friend. Simply setup each view and then when ready you can do Scene->Store from the PyMOL menus (or scene auto, store on the command line or the third method Ctrl+PgDn (Fn+Ctrl+DownArrow on the Mac)). Do this for each view you setup. Once done, you can scroll through your scenes by pushing PgUp/PgDn. PyMOL automatically interpolates when you use the PgUp/PgDn buttons, so you get the desired smooth transitions. Mix this with AxPyMOL and you have movies in PowerPoint with very little work.
Auto-play through Scenes
With this simple trick you can auto-play through scenes. This is similar to "Movie > Program > Scene Loop" but uses only a single frame.
cmd.mset('1x1')
cmd.set('scene_loop')
cmd.set('movie_fps', 1.0 / 5.0)
cmd.mdo(1, 'scene auto, next')
cmd.mplay()
Examples
Simple Examples.
scene F1, store
scene F2, store, This view shows you the critical hydrogen bond.
scene F1
scene F2
This example shows how to use scenes in a movie!
# SUMMARY
#
# This script demonstrates one way of creating a movie from scenes.
# It assumes that we have three scenes, each running for 10 seconds
# (300 frames apiece) including 2-second transitions.
# 1) Load or create content for three scenes (this could just as easily
# come from a session file).
load $TUT/1hpv.pdb
util.cbc
turn x,180
orient
as cartoon
scene 001, store
show sticks, organic
orient organic
scene 002, store
hide cartoon
show lines, byres organic expand 5
turn x,45
turn y,45
scene 003, store
# 2) Specify a 30-second movie -- state 1, 900 frames at 30 frames per second.
mset 1 x900
# 3) Program scene matrices as movie views at appopriate frames
# and also add y-axis rocking between scenes.
scene 001, animate=0
mview store, 1
mview store, 240
turn y,-30
mview store, 70
turn y,60
mview store, 170
scene 002, animate=0
mview store, 300
mview store, 540
turn y,-30
mview store, 370
turn y,60
mview store, 470
scene 003, animate=0
mview store, 600
mview store, 840
turn y,-30
mview store, 670
turn y,60
mview store, 770
# 4) Now interpolate the movie camera.
mview interpolate
mview smooth
mview smooth
# 5) Activate scene content at the appropriate movie frames.
mdo 1: scene 001, view=0, quiet=1
mdo 240: scene 002, view=0, quiet=1
mdo 540: scene 003, view=0, quiet=1
mdo 840: scene 001, view=0, quiet=1
# 6) Force frame 1 content to load.
rewind
# 6) And play the movie.
mplay
PyMOL API
cmd.scene(str key='auto', str action='recall', str-or-list message=None, bool view=1, bool color=1,
bool active=1, bool rep=1, bool frame=1, float animate=-1, str new_key=None)
Notes
- To scroll through your frames, as in a presentation, just use the PG-UP and PG-DN keys. Very handy.
- Scenes F1 through F12 are automatically bound to function keys provided that "set_key" hasn't been used to redefine the behaviour of the respective key.
- If you have a script that modifies the representation of the molecules and stores them, quickly, then the stored frames may not be up to date. I suggest calling "refresh" between the commands.
See Also
View, Set_View, Get_View, Movie_from_scenes
DEVELOPMENT TO DO
Add support for save/restore of a certain global and object-and-state specific settings, such as: state, surface_color, ribbon_color, stick_color, transparency, sphere_transparency, etc. This would probably best be done by defining a class of "scene" settings which are treated in this manner. The current workaround is to create separate objects which are enabled/disabled differentially.