|
|
|
|
Modeling |
|
|
|
|
RWX scripting (with Notepad++) (1) |
|
|
|
|
|
|
The most common used file extension in Activeworlds is .rwx, which is the abbreviation for the Renderware models. The website of Renderware with the software doesn't exist anymore for a long time, but the file format .rwx still exists. The file extension .cob is also often used in Activeworlds, and this is the abbreviaton for the Truespace models (Caligari objects). |
The reason why rwx is more popular , is because you can still edit the file with Notepad++, even without having to import again into your modeling program(s). Notepad++ is a very simple text editor, and you will find the entire script of the model in text format. |
|
Download Notepad++ |
|
There is a diference between Notepad and Notepad++. Notepad can be found on every computer, but it has not the ability to save the file with the extension .rwx , the extension will be .txt and we cannot use that in Activeworlds. |
|
You can download Notepad++ from this website : |
notepad-plus-plus.org |
|
Then you download the file that matches with your computer (32 bit and 64 bit) |
When you open an rwx-file in Notepad++ , you can edit the script and save it with the extension .rwx. (instead of .txt) |
|
|
|
|
|
|
Example of the model pictwlk in Notepad++. |
|
|
|
Introduction : |
|
1. Viewing .rwx-models with the 7-Zip -program |
|
This may not be so simple as it seems : existing rwx-models from objectpaths that you can download, like for instance the Alphapath and the Uberpath, are all zipped files. You need to unzip them first with a zipping program. Then the object will be visible as an .rwx -file. |
A good zipping program is 7zip , and it is freeware. You can download the program from Sourceforge.net. With the program 7zip, you can also add an object password ( if you want to). You will also notice that several objects of the Alphapath and Uberpath have already an object password and can't be opened with Notepad++ ! For more information , see tutorial page: 10. zip/unzip - object password |
Now choose a simple model from the uberpath , consisting of only 1 flat face. |
As an example, we choose the model : flata10.zip |
As the model is zipped, we will look first what is inside : |
Right-click upon the object , select "7-ZIP" and then choose "Open archive". Then you will see this in the 7zip program : |
|
|
|
Now you will see the unzipped file of the model flata.rwx . |
Now right-click upon flata10.rwx and choose : "Edit" . |
Now you see the details of the rwx - file in Notepad-presentation (attention : this is not the same as Notepad++) |
|
|
|
Here you can view the structure of the rwx-script ,starting with modelbegin and ending with modelend. |
In this example i have added colors to make it more clear. |
Now we will close the z-zip window again , and we will use 7-zip now , so that we can view the same file with Notepad++. |
|
|
|
2. Opening .rwx-models in Notepad++ |
|
Choose again the model from the objectpath: flata10.zip |
Right-click and choose : "unpack here" / or: "unzip here" |
Now you will see the filename flata.rwx on the line above flata.zip. |
Now select the file flata.rwx and right-click , and choose : edit with Notepad++ |
You will see the same script, but also with a column with grey bakground with line numbers . |
But most important is the filename title, where you can see that the .rwx file extension is maintained. |
|
. |
|
|
|
3. File structure in Notepad++ |
|
As you can see, for this example, the command starts with : ModelBegin , and ends with ModelEnd. |
Then there is a first part that starts with ProtoBegin , and ends with : ProtoEnd |
And there is a second part that starts with ClumpBegin , and ends with ClumpEnd. |
|
4. Creating objects with Notepad++ |
|
The example above ( flata10.rwx )is a very simple model (of only 1 surface and 4 vertices) and has already a lot of text lines ! |
If you choose a sphere object , or cylinder object or another more complicated object , then the text file can have hundreds of text lines, and appear very complex. It is obvious that nobody will start creating a model by writing all those lines with Notepad nowadays. |
Notepad++ will only be used for editing some things to the existing model . Then we think about : modifying the existing texture of the model, scaling the model , making the model transparent, etc. |
|
5. Examples of models in Notepad++ |
|
In the example above, we do not know how the model has been created . The model might have been edited with Accutrans, or the model might have been created with Truespace and conversed with the program cobtorwx. |
That's why we will use in these tutorials only simple models , and learn more about the structure of the text file. |
We will create simple models in Wings3d , and we will export them to .rwx , and then we will open them in Notepad++. |
Or it will be examples of existing models of the objectpath, which don't have an object password, so that you can open them in Notepad++. (You will not be able to unzip the objects with an object password). |
|
6. The advantage of using Notepad++ |
|
The existing rwx-models of the Alphapath or Uberpath can't be imported in popular 3d-programs like Wings3d and Blender. |
And only with Wings3d , you can export the model into .rwx, but if you have forgotten to save the 3d-file first with the extension .wings, then you can't edit the model anymore in Wings3d (as importing .rwx is not possible). |
Notepad is a possible solution : you can open the model in text-file and modify certain aspects of the model. |
Another possibility is to use Accutrans, which is a 3d-file converter, but then you will have to learn that program as well. |
|
|
|
RWX scripting commands : |
|
* Distances for RWX commands |
In Renderware, the distances are in decameters . This means, for an object of 4 meters wide, you need to type 0.4 |
Activeworlds |
10 meters |
1 meter |
10 cm |
1cm |
RWX |
1 |
0.1 |
0.01 |
0.001 |
|
|
1. Commands concerning the structure of the script |
|
Modelbegin |
This command is used at the beginning of the object |
|
Modelend |
This command is used at the end of the object |
|
Clumpbegin |
This command is used at the beginning of the construction part of the object. |
|
Clumpend |
This command is used at the end of the construction part of the object. |
|
Protobegin |
This command is used for the start of a new prototype. A prototype is a collection of vertices,polygons and materials that can be used repeatedly in the same object. (e.g. the legs of a table). |
|
Protoend |
This command is used for the end of a prototype |
|
|
|
2. Commands concerning the object parts |
|
Vertex |
This command determines a point in the 3d model, indicated with 3 dimensions : |
(x=width y=height z=depth) |
This vertex can be follewed by the command UV. |
vertex -.4 0 .4 |
|
UV |
This command defines the size of the texture |
vertex -.4 0 .4 uv 1 1 |
|
Quad |
This command is used to connect 4 vertex points with eachother, creating a square surface. (a 4-sided polygon) |
quad 1 2 3 4 |
|
Triangle |
This command is used to connect 3 vertex points with eachother, creating a triangular surface. |
triangle 1 2 3 |
|
Polygon |
This command creates a new polygon , and may gave an optional numeric tag assigned on it. |
|
Tag |
This command is typed after a quad or triangle , and can be used for making avatars (= clump tags), but also to make sign and picture objects (=surface tags). |
quad 1 2 3 4 tag 100 |
This command creates a surface that can be used to type text. In Activeworlds , such object are called sign objects. |
quad 1 2 3 4 tag 200 |
This command creates a surface that can be used to add an image. In Activeworlds , these are picture objects. |
|
|
|
|
3. Commands concerning primitives |
|
Block |
This command creates a block (e.g. a cube) |
(x=width y=height z=depth) |
block .1 .2 .1 |
|
Cone |
This command creates a cone |
(x=width y=height z=depth) |
cone .1 0.05 5 |
|
Cylinder |
This command creates a cylinder |
cylinder 0.1 0.05 0.025 8 |
In this case : 1m high, 1m diameter at the bottom (0.05x2), 0.5m at the top (0.025x2), and 8-sided. |
|
Sphere |
This command creates a sphere |
sphere 0.05 3 |
The first value is the radius of the sphere (of 1m diameter) |
The second value is the density (of the polygons). |
|
Hemisphere |
This command creates a hemisphere |
hemisphere 0.05 3 |
The first value is the radius of the sphere (of 1m diameter) |
The second value is the density (of the polygons). |
|
Disc |
This command creates a flat disc |
disc 0.1 0.05 8 |
The first value is for the displacement from the ground : 1meter |
The second value is radius -> diameter of 1 meter |
The third value is the number of sides of the disc |
|
|
|
4. Commands concerning the surface of the model |
|
Texture |
Defines the texture and mask used in the current material |
The command Texture must precede the command of the primitive, otherwide the primitive will be without a texture. |
|
TextureMode |
Defines the texture mode to be used in the current material |
|
TextureAddressMode |
This option specifies the addressing mode to be used for all following textures. |
There are 3 modes : wrap (=default), mirror (=tiled and flipped), and clamp (for masked textures) |
|
TextureMipmapState |
Specifies the mipmap state of all following textures |
|
AddTextureMode |
Adds the specified texture mode to the current texture modes |
|
RemoveTextureMode |
Removs the specified texture mode from the current texture modes |
|
MaterialBegin |
Sets the beginning of a new material |
|
MaterialEnd |
Sets the end of a material |
|
MaterialMode |
Defines the material mode of the current material. |
|
AddMaterialMode |
Adds the specified material mode to the current material modes |
|
RemoveMaterialMode |
Removes the specified material mode from the current material modes |
|
Color |
This command determines the color of a polygon , with the color chart : R G B (red green blue) , and with the default value 1 1 1. (=white). The value of each color ranges between 0 and 1. So, this is not the same as the hexadecimal code , and neither as the RGB code. |
On this webpage, you can view the rwx-codes for a wide range of colors : alusion-fr.com/an1z4.htm |
color 0.00 0.00 1.00 |
|
|
|
5. Commands concerning surface effects on the model |
|
Surface |
Defines ambient, diffuse and specular lighting properties in one command |
|
Ambient |
Defines the amount that the polygons will be affected by ambient lighting |
|
Diffuse |
Defines how the objects polygons will be affected by diffuse lighting |
|
Specular |
Defines how polygones will be affectged by specular lighting. (currently not supported by the Activeworlds program) |
|
LightSampling |
This command defines how lighting should affect an object overall |
|
Opacity |
This command determines the opacity / transparency of the model (from 0.0 to 1.0) |
Value 1 is default . A value of 0 makes the object invisible. |
opacity 0.5 |
|
|
|
6. Extension Commands / Command options |
|
Prelight |
This command is an argument option for the vertex command. |
|
OpacityFix ( on/off) |
This command is used to seperate transparent polygons from eachoterh ,to avoid transparency issues |
|
Seamless ( on / off ) |
This command is used to minimize texture seam issues on neighbouring faces of the model. |
|
RandomUVs |
This command option generates random texture coordinates to each vertex in the model that doesn't have an UV specified. |
|
|
|
7. Commands transformations on the model |
|
Rotate |
This command rotates the matrix into the give angle. First you define the axises, then the rotation angle (in degrees) |
rotate 0 1 0 90 |
|
Scale |
This command scales the existing model (x=width y=height z=depth). You need to type the values for the 3 axises. |
scale 5 5 5 |
|
Transform |
This command replaces the current transformation matrix with the specified elements. |
|
TransformBegin |
Defines the beginning of a new transformation matrix. |
|
TransformEnd |
Defines the end of the current transformation matrix. |
|
Identity |
This command sets the current transformation matrix to the identify matrix. This commnad is useful to reset the transformations to the origin. |
|
Translate |
This command "moves"(translates) the current transformation matrix along the X Y Z axes. |
|
|
|
8. Other model properties |
|
Collision |
This command determines if a model is solid or not |
If you want the object non-solid, then type this line after line with "clumpbegin" : |
collision off |
|
AxisAlignment |
This command defines if the model is to be a "facer". There are 4 possibilities : none, zorientx , zorienty and xyz |
|
GeometrySampling |
This command sets the geometry sampling of the material : sold, wireframe, or pointcloud. Default is solid. Pointcloud is not supported by AW. |
|
ProtoInstance |
This command adds copies of the polygons in the prototype into the current clump under construction. |
This command is used in combination with the commands ProtoBegin and ProtoEnd. |
|
ProtoInstanceGeometry |
This is equal to ProtoInstance, but the materials are not copied into the clump under construction. |
For example; you create a model with same balloons, but for each balloon you want a different color. |
|
|
|
9. Unsupported commands (for the AW program ) |
|
Specular (see above) |
Include |
IncludeGeometry |
Hints |
AddHint |
RemoveHint |
TextureDithering |
TextureGammaCorrection |
Trace |
TransformJoint |
|
|
|
|
|
|
|
|
|