Cool.įurther on, as I like the python scripting language, what I actually ended up doing is using the vbscript embedded bit to link through to a python script living somewhere inside the project. You can then execute your regular xsi functions like this:Īpp.logmessage('-print out of flash: ' & argument)Īll right, so far so good, this prints data from flash into xsi. Set XSI = CreateObject('XSI.Application') Instead we need to create an object of the XSI Application to be able to execute commands on: Now, to make this work we cannot just insert xsi commands as we would do inside of the regular script editor. Inside the html page, you can then catch this call using a regular vbscript function included inside of a vbscript block of code:
#Inside softimage 3d code#
Practically, to make this work, all you have to do out of your AS3.0 code is call the external interface using:ĮxternalInterface.call('functionName', arguments) It gets even better finding out that the interface works both ways so it enables you to call functions from flash inside xsi but those can also return values and you can even register a function callback inside vbscript which would make event based callbacks possible. The nice thing about this is that next to javascript it can also call vbscript functions inside the html page which brought a solution to the problem as this way I could have xsi based vbscript code straight embedded inside the html page and called up directly through the external interface.
#Inside softimage 3d movie#
After researching deeper into this I tried a few various approaches to get this to work as html javascript links, socket communication flashxmlsocket-python, etc.Īfter some research the best option to me is to use the Actionscript 3.0 ExternalInterface class which enables you to call external interfaces outside the flash movie but embedded inside the html page which contains the flash movie. Ultimately you want to set up a sort of remoting inbetween flash actionscript code and your xsi scripting language which in my case is preferably python. See this in action in my xsi wing feather tool:įor setting up this connection, the basic prerequisite obviously is getting communication in between the flash movie (living in the xsi netview web browser) and the xsi scene itself (using a scripting language). A nice extra about these types of synoptic is that as these interfaces are built up with vector images, these synoptic views are (re)sizeable. Figure 1 shows a test of an embedded flash synoptic to control a creature rig. I do believe these interfaces can be a step up from the regular synoptic as they give much more freedom at the design stage and can interchange data from and towards the xsi scene. Further on, we can build interactive user interfaces to control custom tools. Using flash, we can make them more interactive, dynamic and probably also more user friendly. Now, before we start, what can we use this for? In its simplest form, we can use this for synoptic views.
#Inside softimage 3d how to#
To understand this post I assume you already have a good understanding of how to do basic scripting in Softimage XSI using python or vbscript, know what embedded javascript/vbscript in an html is and also have notion about how Adobe Flash and its actionscript scripting language works. I came to this idea when I was writing a procedural feather tool for Softimage XSI and wanted some more dynamic interface to control the feather system.
In this post I will try to explain how to set up a connection between Softimage XSI and Adobe Flash.