Path: chuka.playstation.co.uk!news From: Craig Graham Newsgroups: scee.yaroze.programming.3d_graphics Subject: Re: Progress Report RsdANIM (next version) Date: Fri, 04 Dec 1998 18:51:49 -0800 Organization: PlayStation Net Yaroze (SCEE) Lines: 123 Message-ID: <36689FC5.D3E6AE3B@hinge.mistral.co.uk> References: <362B2737.1031ADFB@hinge.mistral.co.uk> <362DCB26.B3ED93F1@hinge.mistral.co.uk> <36334F94.5B04003B@hinge.mistral.co.uk> NNTP-Posting-Host: d2-s40-134-telehouse.mistral.co.uk Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Mailer: Mozilla 4.5 [en] (Win95; I) X-Accept-Language: en Yet another update on progress towards the next version (probably out at the end of this year, or the start of January). The 'next big thing' is that I've added a scripting language to the next version of RsdANIM (so folks can write their own plugins to get specific effects) - it's only integrated a few days (I'm using RsdANIM as a testbed for a JavaScript interpreter I'm writing for my day job), but adding some specific support classes just for doing 3D modelling, animation and Playstation stuff (just to annoy George, I've included an ActionReplay class that allows you to talk to the Playstation from JavaScript/R-Script plugins). Craig. --------- Change Log: [6/11/98] o Fixed a bug in the "Delete Polygon" function that was causing it to delete polys that weren't actually selected.... o Bugfixed the solid/textured display of Poly4's. [16/11/98] o The axis locks now affect the resize tool. o New 'stretch' tool added. To use, select some bits of the model then select one of the axis locks (X, Y or Z only). Now select the stretch tool and you can 'stretch' the selected polys along the axis you locked. [2/12/98] o Re-worked the Project manager dialog. The buttons that were in it now get their own dialog/toolbar (so you can turn them off if you want - many people didn't use them anyway). o New 'magnet' tool added. Let's you sort of pull an object in a direction. Pretty cool, not sure what I'll use it for yet, but hey.....never mind that eh? The effect is a lot like the rubber Mario face on the intro screen to Mario64. o The project manager now uses a tabbed dialog. The first tab is the familiar tree view. The 2nd tab is a text edit pane, which you can type JavaScript into. o Integrated my JavaScript interpreter engine into RsdANIM. Ok, it's missing a bit of the JavaScript language - no worries, I'm working on the interpreter for a comercial project so the RsdANIM version will track the development of that pretty closely. There's no actual interface classes done yet anyway....so you cann't achieve much with it. Look for big things RSN though....we'll call it R-Script in future, so folks don't expect to be able to do WWW access and browser style stuff from it. [3/12/98] o Added new pane to the project window. All R-Script functions appear as buttons in this window when you load them (or type them direct into the edit pane), and are run when you click on the button. [4/12/98] o Started coding some interface classes for the R-Script interpreter. - RSvertex : A floating point vertex/vector class This has pretty much the whole functionality of RsdANIM's own internal C++ Vector class. - RSrsdanim : A core class to control the user interface with. At the moment it's only got a method to open the About dialog, but it proves the point.... - RSmodel : Class that's going to represent a whole RSD model. Doesn't do a lot at the moment though... - ActionReplay : Communications class, allows you to send stuff to the Playstation via a Datel Action Replay. Sample R-Script Code: var v=new RSvertex(2.0f,2.0f,2.0f); var v2=new RSvertex(1.0f,2.0f,3.0f); var app=new RSrsdanim(); app.AboutRS(); function VPRINT() { app.writeln(v.x); app.writeln(v.y); app.writeln(v.z); } function VSCALE() { v.Scale(2); } function VADD() { v.Add(v2); app.writeln(v.x); app.writeln(v.y); app.writeln(v.z); } function VDISTANCE() { app.writeln(v.Distance()); } function VCrossProduct() { var cr; cr=v.CrossProduct(v2); app.writeln(cr.x); app.writeln(cr.y); app.writeln(cr.z); }