|
Week One: Getting started
Finding your way around the interface elements and the tools, and understanding the information they provide and how to use it
- Interface Elements and necessary tools
- Commands
- Finding your way around in the reference docs
- The Application Object
- Hacking a script from the log
- Variables and the concept of referencing
- First loops
- If conditions
- Tool development #1, moving from command hacking to the Object Model
Assignment: Give yourself a focus for the project. Come up with a project or tool to develop parallel to the course to practice away from the specific examples and assisted by the mentor. Discussion, feasibility study and revision will follow as correction to make sure it can be included in the scope of the course and be brought forward in parallel.
Week Two: Python fundamentals
Elements and how to use them to write readable, re-usable and functional code
- Pythonic arrays, Lists
- Looping and multidimensionality
- Logic, writing a Padder
- Functions
- Principles of code readability and code re-usability
- Refactoring first steps, previous week tool revision and facilitating re-use
Assignment: For those running their own project on the side, we'll start identifying and rationalizing the components needed, and will sketch the first bits of logic. For those who'll be relying on course material alone, repurposing a renamer tool.
Week Three: Tool development
Planning ahead for, and managing, simple user interaction
- Storing data the right way
- Python Dictionaries
- Introduction to simple UI, planning and designing before implementing
- Fetching from different sources (selection/picking/traversing)
- More looping, While loops, when to use and how to make them safe
- Tool development #2, traversing, sorting and renaming scene elements
- Tool development #3, revising the renamer and preventing ungraceful errors
Assignment: For those running their own project on the side, identifying the what parts of the project require user interaction, determining the tool's I/O and eventually implementing the first pass of its UI.
For those who'll be relying on course material alone, revision and slight optimization of the tool dev efforts, and exploration of some possible user interaction models.
Week Four: The XSI Way
XSI SDK's object orientation in practice. Navigating around scene elements, finding what you need and using it the right way
- Scene Elements explained, X3DO, Elements, Primitives, Geometry, Elements and other useful things charted out
- Identifying, finding and using scene elements
- Mapping the scene to the SDK objects
- Tool Development #4, working with geometry
- More on Elements, Mapping and LUTs
- Tool Development #5, working with properties 101 (simple weightmaps)
- Tool Development #6, working with properties 201 (dealing with clusters, partials and mapping”
- Tool Development #6, working with properties 301 (extending Tdev #5 and 6 to shapes)
Assignment: For those running their own project on the side, if applicable dealing with eventual scene traversal and data handling needed for the tool, if not assignments will be individual and based on the specific tool the student is attempting to develop. For those who'll be relying on course material alone, expanding on the toll dev exercises.
Week Five: Tool Deployment
Understanding XSI's framework to develop and deploy plugins
- Scripts aren't just text files you load from somewhere
- Registering and deploying in XSI
- Registered Commands
- Registered Properties
- Self Installing Plugins
- Tool Development #7, porting our efforts to a Self Installing Plug-in
Assignment: For those running their own project on the side, sketching out the structure of the plugin version of their tools. Identifying commands and properties and laying out the skeletal form of the plugin. For those who'll be relying on course material alone, implementation of previous weeks tool dev work as registered commands.
Week Six: Maths fundamentals
Basics of linear algebra illustrated and explained, how it fits in what you do, and how to effortlessly learn it alongside programming
- Demystifying: it actually IS quite easy. Years of over-complicated textbooks and lack of context have distanced people from what really is a rather visual and intuitive discipline
- Vectors
- Concept of spaces and mapping and reference frames
- Trasnformation matrices
- Using ICE as a visualization and aid tool
- Linear Algebra in Kinematics
- Manipulating transforms
- Space/frameset conversion
Assignment: For those running their own project on the side, if applicable we'll find and analyze eventual mathematical elements of their tool and show how to reduce the subject to simple elements. If not applicable then continue development of eventual missing bits of the tool, or if that is also not applicable fall back to the course assignments. For those who'll be relying on course material alone, re-implementing several Softimage constraints as run-once custom commands.
Week Seven: Working with vectors and transforms Hands on tool dev with shapes and transforms, implementing the previous week
- Traversing and fetching pt.2
- Applied Linear Algebra: Manipulating shapes in all reference frames
- More on CPSets (Custom Properties), hands on
- A look at the Softimage Plugin Wizard
- Tool development #8, Shape Tools suite
Assignment: For those running their own project on the side, Implementing custom properties and cleaning up, and consolidating, work on the plug-in form of their tool. For those who'll be relying on course material alone, an eventual further pass on the previous week's exercise if needed, and/ or creating Custom Properties after guidelines/direction.
Week Eight: Pulling it tight, with elegance More on Object Orientation, hands on Python Modules, and making it all come together
- Python Modules
- Code modularization and re-use through modules
- Deployment
- Self Installing Plugins + Modules gotchas
- Simple framework design
- Tool development #9, modularizing the previous weeks work
- Tool development #10, repurposing the shape tools
Assignment: For those running their own project on the side, we'll do any necessary wrapping and cleaning on the tools, and discuss potential improvements or alternatives to use as inspiration to remain active and directed for a bit after the course if the student wishes it.
|
Level of Ability:
Basic knowledge of XSI to the point of being able to navigate scene elements, running scripts in the script editor, and recognizing a few key words is needed.
A very basic understanding of scripting (log hacking and macro-style scripts) is beneficial but not needed.
Previous knowledge of scripting in another language or at a basic level is useful, and needs of those trying to migrate from another language are catered for, but not required.
Students need to be familiar with using a bulletin board system (such as CGTalk.com).
Hardware Requirements:
The minimum configuration needed to run XSI version 6 or higher is needed. Given the resource light nature of scripting exercises and related applications the student might want to use a P4 with 1GB of RAM will be sufficient.
A working install of XSI 6.0 or higher is required and will cover all the needs for the course. XSI 7.0 or higher is useful if the student wishes to use ICE for the maths lessons of weeks 6 and 7, but not needed. Older versions of XSI might work, but considerable additional work would be required to adapt some of the scripts to run on older SDK revisions.
A working install of PyWin and Python will be needed, and a script editor highly recommended, links to free and OSS tools to cover those needs will be provided in the pre-flight literature at the beginning of the course.
Students need a minimum 512mb RAM and a 2GHz+ CPU but as with all 3D, the more powerful the better!
A web browser and internet connection is required. Broadband is mandatory as the workshops' weekly tutorials are a mix of text and video.
|