Sunday, November 11, 2007

Did many thngs in sl lately

An was very busy. Anyway currently studying how to use smile for distributing presentations without the need of uploading images on SL.

The theory should be the following:

1\ build a server on my php server domain being able to serve smil output.
2\ functions handled might be the following:
3\ http://url/smil/text.php sending via post a text composed to up of 600 chars and define a font and dimension, will receive back a smil with a textual slide
4\ http://usr/smil/graphics.php sending via post url of an image, a title and a description and have it returned as a service with proper formatting.

This should avoid uploading images to SL.

Tuesday, September 25, 2007

My own alignment software



Project Joker.

The idea is to have a very easy peer to peer script in the objects that can interactively be used to do some interesting functions.







Experimenting the following in the toy:

1\ copy position
2\ copy rotation
3\ copy size

Using just a simple menu.

check this for the source: source

Sunday, September 23, 2007

Very busy inworld

I made a lot of interesting things inworld, and started to sell on slexchange.
You can see them at http://slexchange.com/modules.php?name=Marketplace&MerchantID=85242

I also managed to buy a LOT of tools and had some upgrades for something.

Just here a listing of things I bought:

- *****Skidz Primz (waiting for new version, enlisted in beta test), (1500 L$)
- *****Prim.Docker (new version 4.0 released) (600 L$)
- *Texture Aligner (1100L$)
- ***Virtual Builder Studio (2500ç$)
- ****Prim Replicator (1500 L$)
- (didn't check yet) Jextone Easy texture (1600 L$)
- *** Free Temp Rezzer
- * Builder's Tab (free)
- **** Landscaper Friend (cheap)
- ** Builder's Eye
- ** LH Texture Display HUD

I also investigated on the following interesting free tools:

- ** SLBrowser
- * SecondView
- * second pages
- * ShopOnRez

Tuesday, August 21, 2007

Texture alignment...

If you build a lot you will found almost impossible to align those damn textures when you resize or move your pieces.
Surely you can try offset and repeats per face parameters, but how to do that in a "safe" and exact way?

So I rezzed up a 10x10x.5 box and tried to get the magical numbers you must use when aligning textures.

I call SizeX the size on X and ShrinkX the coefficient of shrinking on X, so that .1 means you shrinked th box on the X axis to be 1 m only.

So almost obviously the RepeatPerFace x must be multiplied by ShrinkX.

OffsetX depends on where you moved you piece, but if you want to put at the higher X you should apply the following formula:

OffsetX=( 1 - ShrinkX) / 2

For example:

if you shrinkX by .1, you have to
- offsetX add .45
- changeX by .45*LX=4.5

If you have a strange size box, say 3.5 x 3.5 and you want to put it to 3 x 3.5, than shrinkX is
3 / 3.5 = .857,

offset will be (1-.857)/2=.0715

and changeX will be .715*3.5=.250

:)

NB: if instead of aligning the box exactly to other boxes you are further offsetting of a small amount, you just have to offset the textures of the further/originalsize so that it will fully aligned.

Sunday, August 19, 2007

Builder helping tools Skids Primz Vs Prims.Docker

Some weeks ago I read on some blogs about an interesting event in sl: RoseLinUK London was organizing classes on how to build and cited a "copy create tool" which should make easy aligning prims when building.
I contacted her and had information on the copy create tool, and she gave me a quick, yet incredibly informative learning session on using the grid and this tool to have good prim alignments, then told me that I could experiment "Skidz Primz" as a useful tool for aligning prims.
I experimented with the "free" tricks she gave me and also bought Skidz Primz, but also found that there is another tool, called Prims.Docker which apparently did the same things as Skidz Primz, but was much more cheap: around 500L$ instead of 1500L$. So I bought both of them and experimented with both.
Here I want to give you a feedback on the three ways of building:
- free "expert" hands (using grid, copy create tool, reference and other tricks),
- skidz primz
- prims.docker

What I tried to build is very very simple: just a 10x10 box (6 sides) and on one side simulate a lateral door. Here are the results:

Free Hand: zero L$

Description & Setup:
- Use grid options
- Use world ruler
- Use copy selection tool
- NO SETUP needed except for grid options with proper values, and possibly coloring your prims

PROS:
- ZERO linden cost
- prims built in this way are surely yours :) no need to do strange voodoos for marking them with you as creator
- no need to wear huds or have strange tools with you
- no need to insert and clean up scripts on your objects
- building the door is paradoxically easier than the other methods

CONS:
- you have to know very well how to set and use grid, numerical positions, word/local/reference coordinates
- you also need to be very aware of the prims properties
- you loose sometimes a lot of time in moving around assessing you are doing correctly

Skidz Primz (from Skidz Tweak) around 1500 L$
USE and SETUP:
- wear the belt and the hud
- setup for being creator just needs to substitute the Primz in the belt with your own starting prim
- needs a bit of auto-learning before using it productively


PROS:
- no need to use numbers for aligning objects: just use special markers (red points rezzed by your interface)
- very smart textures put on Skidz Primz showing you x,y,z axes, cutting direction and so. Very useful for teaching and understanding where the object axes are :)
- very excellent way for filling gaps. Also the others, when you have understood the trick are very intuitive.

CONS:
- price
- a lot of object rezzed just to act as coloured markers. Be sure to use them temp or hybrid so not to waste prims in your land!
- even if gaps are ok, building of doors is not exactly so easy. Better doing free hand with the grid options!!!


Prim.Docker from Riefa Rennebohm
SETUP:
- just one hud to wear
- need to set client->rendering->Axes to understand axis directions.

PROS:
- cheap
- very useful for multiple safe same level alignments
- copy also textures!!!

CONS:
- need to put client script in each prim
- spanning (filling the gaps) works in an almost unusable way :( Too dependent on the local axis, and in some circumstances cannot understand what it is doing


So my final conclusions are:
1\ you can live even without these expensive tools (you can build without much problems if you really have big experience in building
2\ even if you are experienced builder Prim.Docker can really help you since it can manage multiple objects at the same time (being sure they have the same z or be correctly centered),
3\ for beginners, Skidz Primz is better because it is much more visual and also have a very smarty texture helping you in understanding cutting, axes and so.
4\ For making windows or dealing with gaps, sometimes grid hand methods are preferable. Skidz and Docker might make you lose a lot of time trying to use them for simple tasks
5\ if you have a lot of L$ like me it is very funny buying them and using them alternatively for easying the building task

I'm currently thinking to build myself some tools for building, completing the gaps each of these systems have.

BTW: Latest building I tried I didn't use these tools, or just used them very sparingly.

So a good classroom with RoseLinUK is 100 times worth the usage of these tools... :)

Monday, July 30, 2007

Building a wall with a door


You can use the door described at previous point and one of the wall described in the simple room, then using various cut and pasting you can "make a hole" where the door is.

making a hole means that you have to restrict and duplicate the red wall (for instance) to be at least a 3 part structure:

The section over the door (.7x10x.2) 0,270,0
The section on the left of the door (3.5x1.5x.2) 0,270,0
The section on the right of the door (3.5x6.4x.2) 0,270,0 (You can hollow this 60 to have extra window).

You can link together the pieces of the wall but NOT the door. (UNLUCKILY)

A very simple door

Build a door as following:

cube, .2x4.25x3.33, (cut: .375-.875) apply a texture of your choice (maybe a real door?)
put following script inside:


// improved door script by Ezhar Fairlight
// features: automatic closing, workaround for rotating out of position,
// doesn't mess up when moved, adjustable direction (inwards/outwards)
// updated for SL 1.1 damped rotations, small bugfix

// ********** USER SETTINGS HERE **********
float TIMER_CLOSE = 5.0; // automatically close the door after this many seconds,
// set to 0 to disable

integer DIRECTION = -1; // direction door opens in. Either 1 (outwards) or -1 (inwards);
// ********** END OF USER SETTINGS **********



integer DOOR_OPEN = 1;
integer DOOR_CLOSE = 2;

vector mypos; // door position (objects move a tiny amount
// away from their position each time they are rotated,
// thus we need to workaround this by resetting
// the position after rotating)

door(integer what) {
rotation rot;
rotation delta;

llSetTimerEvent(0); // kill any running timers

if ( what == DOOR_OPEN ) {
//llTriggerSound("Door open", 0.8);

rot = llGetRot();
delta = llEuler2Rot(<0,>);
rot = delta * rot; // rotate by -45 degree
llSetRot(rot);

} else if ( what == DOOR_CLOSE) {
rot = llGetRot();
delta = llEuler2Rot(<0,>); // rotate by 45 degree
rot = delta * rot;
llSetRot(rot);

//llTriggerSound("Door close", 0.8);
}
}


default { // is closed
on_rez(integer start_param) { // reset, so we store the new position
llResetScript();
}

state_entry() {
mypos = llGetPos(); // remember where we're supposed to be
}

touch_start(integer total_number) {
door(DOOR_OPEN);

state is_open;
}

moving_end() { // done moving me around, store new position
mypos = llGetPos();
}
}

state is_open {
state_entry() {
llSetTimerEvent(TIMER_CLOSE);
}

touch_start(integer num) {
door(DOOR_CLOSE);

llSetPos(mypos); // workaround for tiny movements during rotation

state default;
}

timer() { // it's time to close the door
door(DOOR_CLOSE);

llSetPos(mypos); // workaround for tiny movements during rotation

state default;
}

moving_start() { // close door when door is being moved
door(DOOR_CLOSE);

state default;
}
}



The door should be working

Sunday, July 29, 2007

Building a super simple house



Building a simple cell room is not that trivial as it can seem at first sight.
To be sure that everything is correctly aligned you cannot rely on numbers or your ability to move the mouse correctly, you must use some special tricks.

Here a simple recipe:

1\ Rez a cube 10x10x.2 as floor (color it in blue). Blue means it is aligned on the z coordinate
2\ Rez a cube 4x10x.2 as wall (color it in red), y rotation must be 270 because it is aligned on the X coordinate, and it can be hollowed naturally, hollow it to 60%
3\ Rez or copy a cube 4x10x.2 as wall (color it in green), X and Z rotation to 270, so it is aligned on the y coordinate, hollow it to 60%
4\ set ruler mode to World (IMPORTANT)
5\ set grid interval to half the thickness: .1

Now position the blue floor and be sure it is aligned on integer coordinates.
Align on it the 2 red walls using the grid.
Align the 2 green walls using the grid.
Duplicate blue floor to have ceiling.
You should have produced a nice simple room with empty windows.

Link everything and name properly...
This room has to be properly completed.
==> missing a side with a door
==> missing actual windows
==> missing textures

Thursday, July 26, 2007

Sitting on a pillow....


Can be tremendously difficult for newbies.. :)
I wanted to sit down "a la japonese"....

Follow these instructions:

1. create a sphere .737,.923,.436 (or whatever fits you!), the only thing is that it should not be actually spheric. Apply a texture of your choice.

2. add the following script:


vector offset = <0,0,0.8>; // might to adjust z this depending on your original dimensions rotation rot = <0,0,0,0>;
default {
state_entry() {
llSitTarget(offset,rot);
llSetText("",<0,0,0>,0);
llSetSitText("");
}
changed(integer change) {
if (change & CHANGED_LINK) {
if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llStopAnimation("sit");
llStartAnimation("sit_ground");
}
}
}
}



Et voilà you have a working sitting pillow. :)

Wednesday, July 25, 2007

Tip Jar



Create 2 torus with following properties:

1. .5,.6,.6, glass, color blue, 50% transparent
2. .05,.4,.4, glass, color blue, 20% transparent

Put one on the top of the other, link them and put following script:





integer totaldonated;
string owner;

default
{
state_entry()
{
owner = llKey2Name(llGetOwner());
llSetText( owner + "'s donation box.\nAll donations gratefully accepted.\n$0 donated so far.\nRight-click on me and select Pay to donate.",<1,1,1>,1);
}

on_rez( integer sparam )
{
llResetScript();
}

money(key id, integer amount)
{
totaldonated+=amount;
llSetText( owner + "'s donation box.\nAll donations gratefully accepted.\n$" + (string)totaldonated + " donated so far.\nRight-click on me and select Pay to donate.",<1,1,1>,1);
llInstantMessage(id,"Thanks very much for the tip!");
llInstantMessage(llGetOwner(),llKey2Name(id)+" donated $" + (string)amount);
}

}




You have your tipjar :)

Tuesday, July 24, 2007

Built my first vases... :)

Observing hos vases have been made by others, I was able to build up my first Egyptian like vase.
You can build by yourself using the following 3 prims:

- Torus dimensions: .632,1.19,1.19, Hollow: 94.9, Profile cut 0-0.5,
- Sphere dim: 1.19,1.19,1.19
- Another torus, dim: .516,1.19,1.19, Hollow: 94.9, Profile cut 0-0,5,

and just put one on the top of the other. The result can be something similar to this:
















On the left you can se a vase for trees, which is composed by
2 prims:

- a sphere 1,2,2 with dimple 0-0.7, and
- a cylinder 1.6,1.6,.0.1, with z rotation 30

I was so proud of these simple amatorial tasks.

!!

Office in a box v1.0


I've finished a version 1.0 of my office in a box. As I declared in a previous post.












To build it up it is very simple, just put the box on the floor providing the red surface is where you want to have the center of the table in the direction of the whiteboard, and just click it, and specify on the dialog "build":



You will see the box opening up with the office, and finally the office layered out :)

















Mainly you see a table, 6 chairs, 1 whiteboard, a notecard giver, 6 notebook and two screens for powerpoint like displaying. Everything is made in such a form that it doesnt'consume much prims and is usable. See next posts for details on various objects.

If you need them, you can contact me in SL (salahzar stenvaag).

here is the content of the notecard giver:

This is a very simple small office package made of the
following:

OF10 1 table (2 prims)
OF11 6 chairs + positions (to make it easy to sit down) (12 prims)
OF12 1 whiteboard V050 able to display notecards with paging (31 prims), able to be interactively changed by people present
OF13 1 notecard giver for having people knowing what's going on
OF14 1 powerpoint 64 slide reader, to avoid consuming L$ put 64 slides in one texture and the reader will loop over them (u just spend 10L$ for one transfer)
OF15 1 powerpoint 16 slide reader (for higher quality slides)
OF16 6 notebooks for each participant where they can put their ideas or just asking for the floor

In total we are talking of 54 prims which is quite low impact, and stays
comfortably on a 512 land.

OF10 1 table. Table is not large so to allow for camera viewing from people sit on the wall. Only 2 prims. Surface is light color to be able to see notebooks.
OF11 6 chairs with sit balls. This makes easy for people to sit down and avoids losing a lot of time for teaching them how to do so ;)
OF12 whiteboard V050, uses the same "notecard"/say approach of the notebooks, see after. Here there will be something that everybody must see very clearly. Accepts notecards, just drop them. Click on the board to choose which noteboard (warning notecard must have short names!). Evry body can comment using /line comment
OF13 notecard giver is fundamental for having people Agenda or other pieces of information. You can copy it to have multiple pieces of information.
OF14 To save money, have all your powerpoint presentation put in a 8x8 frame (512x512 points).
OF15 64 images in 512x512 gives bad quality, so I provided also a 4x4 version to have much quality ready handout.
OF16 notebooks works in a similar way as the whiteboard. Thanks peace furst for pointing me this solutions instead of a whiteboard. However a whiteboard made in this way is quite inconvenient, and has the big limitation of 256 chars, which are also difficult to align properly. I'd propose this mixed approach so that everybody can present themselves and possibly ask for the floor or presenting data.


Monday, July 16, 2007

Meeting in a box... starting place...

I started from: Peace Furst Conference Room, Haemosu (216, 180, 120), a really nice micro office developed from Peace Furst

No Profit experiences in SL


See this link: http://beth.typepad.com/beths_blog/2007/06/macarthur-fou-1.html for info about Sl and philantrophy.

I also have been in some meetings of techsoup.org (http://www.techsoup.org/) which are giving space for noprofit organizations needing help in using Second Life.

Sunday, July 15, 2007

Starting a blog for 2nd life experience

Just wanted to share something after 2 months of 2nd life.

What is good in 2ndlife:

- express yourself
- build things
- script
- relationships

What is "bad":

- $$$ and L$ is currently too stressed
- too much commerce...

Anyway my official goal for being in 2nd life are:
- experimenting
- having fun (something I forgot during latest 20 years!)
- providing tools for no profit organizations to have decision meetings

So we can tell that projects can be as follow:
Meeting Tools: Meeting Room in a box, that can be rezzed even in a sandbox using just a bunch of prims.

Content:
1\ a platform 32x32 rezzed at 100 meters 1 prim
2\ a table (2 prims) + 6 chairs with 6 position balls (total 14 prims)
3\ notebook for each person using paged llSetText able to share contribute notes 6 prim
4\ One viewer for a 8x8 textures (power point) ==> saving L$ for upload (3 prim)
5\ 2 boards for rapid writing (62 prim)
6\ some trees around (10 prims?)
Total would be around 96 prims.