Sdk, scripts et al

great to be the first poster on the XSI developer forum :wink:

i always heard that XSI doesnt have an sdk in this release. it seems u can only script now. what languages can be used for scripting? can i use a full blown programming language like java? or am i limited to a pure scripting language like javascript, vbscript etc?

can i get the same power like i get in MEL. i am willing to sacrifice speed if i can access each CV of a model, or each key of an animation...

hope some of the XSI developers can answer this question.

thanks.
jagan.

You can use VBScript, JScript, PerlScript and Python. PerlScript and Python have some limitations like not being available on IRIX. As new scripting languages come out, XSI will automatically support them if they follow the ActiveX Scripting standard; i.e., if they work with Internet Explorer.

You can call up compiled code from a script and control XSI from compiled code, so you can use a full blown programming language.

I don't know MEL so I can't compare. Just about everything you can do through the UI you can do from scripting. Some lower-level functionality like setting CV's or accessing fcurve keys is possible but may be slow.

i just want to understand how this multi-scripting language thing works
:?

if i want to do a "for in" loop, or some other C convention, do i have to use a consistant syntax throughout the script? or can i mix vbscript with jscript, perl etc. in a single script?

can someone tell me more about using a compiled language other than C++ for creating functionality in xsi?

in the varying scripting languages, are all the xsi specific commands the same or used in the same way?

does xsi have its own interfaceing commands and syntax or does it use vb? can i mix vb interfacing with xsi interfacing? can i build my own interface? or say, use explorer or netscape as an interface? if so, does that mean i can have a shared virtual xsi environment with users on the other side of the globe?...he he.

does xsi have consistent conventions? for example: is there a single createNode command who's arguments could be any node creatable by xsi, or do i just type in the name of a node type with a name, and suddenly it exist?

is accessing attributes and storing variables, global and local, the same accross scripting languages or different for each.

what is the benefit of having multiple run time languages use xsi commands? (confusion, mis-matched syntax etc.. could be a disadvantage, where, utilizing the best of each could be an advantge if you could have each in a single script.)

is there a command to switch between languages during a script, like HTML?

many other questions, but i'll wait until i learn more...

markT
giant studios

i would like to know the answers to all your questions as well. if you find the answers elsewhere, would you be kind enough to post them here too?

thank you very much.

to answer your questions (as best i can):

as far as i know, you can not mix the syntax of one scripting language with another inside the same script, i.e., vbscript and jscript.. the closest thing you may be able to do (and i haven't looked into this yet) is to call a jscript function from a vbscript function, this is possible in the world of ActiveX scripting, i just don't know how XSI evaluates the scripting runtime and namespace and whethere they even evaluate the scope of more than one script at a time..

you can write different scripts using either of them (or perlscript and python, although vbscript and jscript lend themselves better to the world of COM which is what you're dealing with here..)

now, because you are using vbscript or jscript within an ActiveX scripting host, you can write your own compiled binaries and expose their functionality via COM interfaces (dual interfaces ala IDispatch will allow late bound languages like vbscript and jscript). this means that you
can write a COM component in VB, Java (VJ++98), or C++ (VC++6) and then call those components from within your script in XSI.. as far as i know (and i haven't tried anything yet), there's no way to expose the XSI object model to your compiled binaries (unless you performed some script site COM trickery using C++ but that would be ill-fangled and a waiste of time).. what you can do is access the data you need from within your XSI vbscript/jscript, and then instantiate a compiled COM component (C++ for speed and elegance) and then just make calls to your component by passing the data from the script to the component.. this is how a lot of distributed web apps are built.. ASP calling COM components. there's no need to do conversion of the data from script to component, because all data will be of type VARIANT or SAFEARRAYs and the default marshalling code will do this for you.. if you are not hip with the internals of COM, no worries, just use VB and you'll never know the difference..

to q#3, yes, the commands are the same in any of the scripting languages, you might call them with a different syntax but the commands name's and parameters don't change, nor do their ret vals...

for q#4, if you mean can you customize the interface? yes, within XSI and i believe you could write script to dynamically change the interface, although i'm not sure.. there is a way to run the app via command line and hide interface toolbars, etc.. any of this type of stuff would be done with the scripting, not VisualBasic itself..

i'm not sure i understand #5,
#6 is yes, see above...

#7, the benefit of multiple languages is flexibility.. the idea is why force users to learn yet another language MEL, maxscript, and now XSI script.. just expose a common object model to the application, and use ActiveX scripting.. now any ActiveX compliant scripting language can be used.. if you wanted to, you could write your own ActiveX scripting language (see ttp://msdn.microsoft.com/scripting//scripting).

its very flexible.. the reality is that if you understand vbscript, jscript is not that much of a leap, it is slightly more powerful when it comes to objects..

hope that helps...

benjamin

thank you.

ok. it sounds like xsi has its own scripting language with its own syntax and c-like functionality. only it gives you the option of using other scripting languages. is this correct?

i come from deep within mel, and i do not realy know vb script. i know a little jscript. i am trying to figure out wheather i have to start learning vb script or not. i want to be able to write my own gui and functionality attached to it that uses xsi tools and functionality differently than originally intended. i do not want to be stuck with xsi gui elements only. does it have its own textfields, slidergroups, frameLayouts, variety of buttons, node outliners etc....that is not vbscipt created? and is totally repurposeable? this is what i do with mel to great effect. if you ever had c or c++ in school learning mel was a snap! knowing jscript, mel was a snap. mel, because it integrates comprehensive basic and thouroughly repurposable interface elements with all of the vast 3D operation function set, makes it very easy to create new tools, and new functioality without ever cracking open the api. also, i never have to worry about accidentaly typing n the wrong syntax because i was just using another language a few minutes ago. where can i get examples of xsi scripts that give examples of the extent to which it is versitlie, open, and web-friendly?

i also would like to explore the potential of sharing an xsi session remotely over the web with a client or co-worker. this combined with both of us having he ability to edit things in the session remotely and communicate via telephony or icq really spark my interest. are there examples of this?

it has been mentioned that --"there's no way to expose the XSI object model to your compiled binaries"

does this mean that i cannot utilize a proxy class of objects built for me to write my own nodes and commands out of an origianl xsi node or command template? am i not able to pass and retrieve data from already existing xsi nodes and my newley created one without going through the scripting language? if so,....that really blows....

soft also has a syntax for its expressions, with commands and functions. how does scrsipting language diversity effect the writing of expressions? can i use the varying scripting languages in my expressions?

thanks for your response. that post had been up there for a while. i guess people with xsi 1.0 are so buisy just working out the bugs that they have little time for forum chat! we were a beta site for over half a year, and some of the beta releases were more stable than the actual release. but, after you get used to the quirks...the crashes decrease in number from shear timidness. i am not dising xsi,...it has awesom potential!

gack urk woop bleep bloop

...system eerror 404

cranium crashing from overload....

..hard to read question...

...mmmm dooooonnnuuutttsss....

sounds like you need a rolaids mr. bean!....sorry for the convoluted post, i get a little carried away sometimes.. but the questions make since..... how bout i hit the essentials that the docs don't get... here goes....

  1. does xsi have the equivalent of the mpx node and mpx command classes in the maya api? (these are essentialy template nodes that programmers can use to write maya nodes and commands that do not require the scripting language to communicate with the rest of maya's nodes and commands).

  2. xsi scripting: how do i source a vb script (.vbs) file without dragging and droping the text file from my explorer to a custom tool bar in xsi? ie...how do i make a script file available to memory as a command that can be typed in.
    like "source filename" in mel?

  3. how do i save out an ascii file in xsi? like an action, or a model, or a scene?

4.soft also has a syntax for its expressions, with commands and functions. how does scripting language diversity effect the writing of expressions? can i use the varying scripting languages in my expressions?

  1. xsi does not log interface creation commands. are there any? how do i create XSI themed interface elements from a script?