jueves, 22 de julio de 2010

Textures for games

Find out how to tile images seamlessly in this tutorial. Discover how to create tiled textures using Photoshop.
These tiling techniques can also be applied to other graphics editors.
In this tile tutorial you’ll learn how to choose a suitable texture and how to make the texture seamless.
You’ll also learn how to reduce high contrast areas in the texture. This little-discussed technique will help make your tiled texture look even more natural.

Choose a suitable texture

Choosing a suitable texture is easy enough, as there are only a couple of things you need to keep in mind.
The texture ideally should be as big as possible. This is to help reduce the number of times it needs to be tiled on
a surface.
You should also look for textures with little to no hard lines or edges. While it is possible to tile these textures, it’s much harder to make them look natural.
The texture below is an example of what to avoid.
Before you begin on making the texture seamless, make sure that its width and height are divisible by two. Crop the texture to the correct height and width if needed. The reason for doing this will be explained later.

Make the texture seamless

The example texture we will be using for this tutorial is a nice, big rocky texture which contains no hard edges or lines.
Its size is 600 by 250.
Let’s see what happens when it is tiled on a surface:
The repeating texture along with its seams can be clearly seen.
Load the image into Adobe Photoshop or a similar graphics tool. From the menu, choose Filter/Other/Offset.
Set the horizontal offset to half of the image’s width, and set the vertical offset to half of the image’s height. As the height and width are divisible by two, the image should be easy to offset to and from its original position without any difficulty.
Select for the undefined areas to wrap around. Finish applying the offset to the image. You should now be able to see the edges of the image.
Select the clone tool from the toolbar. Use this tool to smooth over the edges using other parts of the image.
Once all the edges have been smoothed out, use the offset filter to move the image back to its previous position.
The image below shows the new example texture being applied. The seams have been removed; however the pattern repetition is still evident.

Reduce areas of high contrast in the texture

Areas of high contrast in textures should be reduced as much as possible, as they help create recognizable patterns and make the tiled surface look less realistic.
Use the clone tool to replace or disperse any areas of high contrast in the texture. In our example, we have replaced the lighter area with the darker parts of the texture.
When this texture is tiled on a surface the pattern is less recognizable.
I hope you enjoyed this tiling tutorial and can now tile images seamlessly for your games. As special thanks for reading the tutorial, you can use the finished texture from this tutorial in your own projects.

sábado, 12 de junio de 2010

Rent land

Second Life Land

There are all kinds of ways to get Second Life land. In this article I will discuss some of the risks involved in renting land in Second Life, and what you can do to minimize those risks.
Whether you decide to rent Mainland or rent Estate land, be forewarned.  When you rent, you are at the mercy of the landowner.  Expect to pay enough for the landowner to make a profit, because if your landlady doesn’t make a profit, how is she going to pay her tier to the Lindens?  And if she doesn’t pay her tier, guess what happens to your land?  That’s right – you will lose it.  This is true, even if your own rent was paid on time.  I am not telling you this to scare you, but because it is important for you to understand.  You could make your own rent payments on time, and still end up losing your land. It isn’t fair, but that is the risk you take when you rent.
There are some things you can do to make sure you minimize your risk of losing your money on your Second Life land rental.  The first thing to do is find out as much as you can about whom you are paying rent to.  Does he own the land himself, or is he renting from someone else?  If it is Estate land, are you dealing with the Estate Owner directly, or through a third party?  How long has your landlord been in Second Life?  How many tenants do they have?  How much land do they own?  How long have they been renting Second Life land?  Do you know anyone who has done business with them?  Do they have referrals you can talk to?  How is tier paid, weekly, monthly, daily?  Do they accept PayPal?  Do they accept payment in game currency (Linden dollars)?
Yes, it can be a bit of a hassle to do that much research before renting land in Second Life, but it will be worth the effort in the long run.  You have much less risk if you are renting from someone who owns the land, rather than through a third party.  Think about it.  If you pay the landowner directly, there is only one layer between you and Linden Labs.  As long as your landlord pays his tier, chances are your land will still be there.  If you rent from a third party, you are now three layers away from Linden Labs.  You are now depending on your landlord to pay his rent or tier, AND the landowner to pay Linden Labs.  If something happens to your landlord, you will be at the mercy of the landowner, who may not even have been aware that your landlord was subleasing!  At the very least, get referrals.  Also, if you are renting from a third party, make an effort to contact the landowner.  If the landowner knows about the subleasing, he may be more likely to work with you if something happens to your landlord.
You may prefer to do business in Lindens, but look for someone who accepts PayPal.  Why?  Because in order to accept payment from PayPal, your landlord will have to reveal their email address.  Someone who is out to scam you or steal your money isn’t likely to reveal his or her real life identity.
Finally, especially if you are new to renting, pay the least amount of tier up front that you can.  If your landlord wants you to pay a month or two in advance, just remember that once you have paid, chances are you will never see that money again.  I have seen it happen many times where someone pays rent for a month or more, then *poof* their landlord disappears with all of the rent money.  Sad but true.
I hope this article helped you understand the risks involved in renting Second Life land, and how you can minimize those risks.
See you in world!

sábado, 1 de mayo de 2010

Mirror reflection script

// Simulates a mirror reflexion in Second Life by changing camera position on sit, i.e. reflects the image of an avatar in a mirror.
// Put script 1 (mirror) in a prim resembling a mirror and put script 2 (looking_a_mirror) in a chair or stool. Put the stool in front of the mirror. Tip: to cover the camera trick, integrate the mirror in a dressing table.

//  Script I: Mirror
//==========
// Made by Seagel Neville
// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl
// put me in a prim resembling a mirror. To cover the camera trick, do not forget to build a thin wall (i.e. a mirror with a mirror texture) behind the simulated reflexion of the avatar

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }


    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}


///  Script II: Looking_a_mirror
//====================


// Made by Seagel Neville
// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl




string DISPLAY_TEXT = "Sit";
string ANIMATION;
string GESTURE;
integer is_sitting;


list GESTURE_BUTTON =
[
"point_you", "point_me", "peace",
"nyanya", "toungue out", "blowkiss",
"wink#1", "wink#2", "embarassed",
"laugh", "surprise", "cry"
];


list GESTURE_LIST =
[
"point_you", "point_me", "peace",
"nyanya", "express_tongue_out", "blowkiss",
"wink_hollywood", "express_wink", "express_embarrased",
"express_laugh", "express_surprise", "express_cry"
];


opendialog_gestures()
{
    llDialog(llAvatarOnSitTarget(), "What do you want to do in front of this mirror?", GESTURE_BUTTON, 696543);
}


default
{
    state_entry()
    {
        llListen(696543, "", NULL_KEY, "");
        ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, 0);
        is_sitting = 0;
        llSitTarget(<-0.63, 0, 0>,llEuler2Rot(<180, -90, 0>*DEG_TO_RAD));
        llSetText(DISPLAY_TEXT,<1,1,1>,1);
        llSetCameraEyeOffset(<-1, 0, 0>);
        llSetCameraAtOffset(<-5, 0, -100>);
    }
    
    changed(integer change)
    {
        if(change & CHANGED_LINK)
        {
            key av = llAvatarOnSitTarget();
            
            if(av != NULL_KEY)
            {
                llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);
            }
            else
            {
                if((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && is_sitting)
                {
                    llMessageLinked(LINK_SET, 0, "standing", NULL_KEY);
                    is_sitting = 0;
                    llStopAnimation(ANIMATION);
                    llSetText(DISPLAY_TEXT,<1,1,1>,1);
                    llUnSit(av);
                    llOwnerSay("Press \"Ignore\" button if you want to remove the menus.");
                }
            }
        }         
        ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, 0);
    }
    listen(integer channel, string name, key id, string message)
    {
    if (llListFindList(GESTURE_BUTTON, [message]) != -1)  // verify dialog choice
    {
        opendialog_gestures();   // The dialog box keeps showing until you choose "Ignore".
        GESTURE = llList2String(GESTURE_LIST, llListFindList(GESTURE_BUTTON, [message]));
        llStartAnimation(GESTURE);
        }
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_TRIGGER_ANIMATION)
        {
            llMessageLinked(LINK_SET, 0, "sitting", NULL_KEY);
            is_sitting = 1;
            llStopAnimation("sit_generic");
            llStopAnimation("sit");
            llStartAnimation(ANIMATION);
            llSetText("",<1,1,1>,1);
            opendialog_gestures();
        }
    }
    on_rez(integer start_param)
    {
        llResetScript();
    }

Profile pics


Your profile pic is important because it is the image that defines you when other residents aren’t immediately around to see you, and it represents your main (or dominant) manifestation.
The two most asked questions about profile pics in Second Life are:
  1. What should my profile pic dimensions be?
  2. Where can I get my picture taken?
In this guide to profile pics, we tackle both and add some helpful hints along the way. Our recommendations:

1. What should my profile pic dimensions be?

Easy Answer:

  • Any image that is scaled to a 4:3 ratio.

How to do it:

  • First of all, you need Photoshop or a similar image-editing program. It doesn’t need to be too horribly fancy to pull this off:
  1. Take a photo of your avatar from within Second Life, or pick an image you’d like to use as your profile picture.
  2. Open the image in Photoshop or a similar image-editing program.
  3. If your program has a cropping tool, crop your image to the general area that you want to use.
  4. Find the image dimensions in pixels. In Photoshop, you’ll go to Image->Canvas Size… and choose to view the dimensions in pixels.
  5. Decide whether you want to retain the image’s HEIGHT or WIDTH.
  6. For this example we will chose to retain the image’s HEIGHT (to retain the WIDTH, just reverse this step). Take the image’s HEIGHT and divide it by 3. Add the result to the original HEIGHT and assign that number to the WIDTH. For example:   
  • You have an image that measures 1102×810 pixels, and you want to retain the HEIGHT of 810 pixels because you don’t want to chop off the top or the bottom of the image.
  • Divide 810 by 3: 810/3 = 270
  • Add 270 to 810 (the original HEIGHT): 270+810 = 1080
  • Your new width needs to be 1080 pixels
  • Crop the image to 1080×810 pixels. This will give you a perfect 4:3 

miércoles, 11 de febrero de 2009

Victoria Bushfire relief

The response from the Second Life community to the tragic circumstances in Victoria, Australia has been phenomenal. I can't express enough how humble and grateful the generosity of our international community makes me feel.

A lot of people have been asking for a list of content creators with items up for sale to benefit the cause. Here is the list as I have it so far (with SLurls - hurrah). I will be adding to this list daily, we've only been collecting for about 36hours so it amazes - and again, humbles - me that the list of participants is already so large. If you have an item or items up for sale benefiting the relief effort please get in contact with me in world or via email (dakota.buck@gmail.com).

Aemilia Case Philotic Energy
Faery Sola Studio Sidhe
Dakota Buck Savvy?
Shelly Toonie Moonshine Clothing
Dove Swanson [Long Awkward Pose]
Rosie Barthelmess Sable Rose Jewelry
Evangeline Miles Evie's Closet
Marx Dudek Marxi Designs
Ruina Kessel House of Ruin
Ashia Tomsen Ashia Designs
Ana Lutetia AnaLu
Whimsy Winx Winx Home & Garden
Sakuradawn Lei Lazy Places
Brandy Rasmuson Shine
Nuala Shippe Kunstkammer
Anicia Medici Sugar Mill Poses
Teagan Blackthorne & Laynie Link Tea Lane
Luth Brodie Reel Expression
Autumn Hykova Pixel Dust
Truth Hawks TRUTH
Kallisti Burns Discord Designs
Mouse Mimistrobell Dark Mouse Jewelry
Ziggy Quirk Ziggy's Quirks
Noirran Marx Subtle Submission
Samara Barzane Park Galleries (Souvenirs by Samara Barzane)
Ryker Beck Genesis
Reghan Straaf Hatpins
SySy Chapman SYSY's
Leah McCullough Naive
Sasy Scarborough Essentia
Kuranosuke Kamachi DeLa
Saiyge Lotus Balderdash
Aikea Rieko Tokeo.Plastik
Trixie Bumbo Primagine
Allias Nightfire Skinzor's
Kavar Cleanslate Exile
Ravenlynn Templar LVS & Co
Helix Constantine Oddment
Helena Stringer The Stringer Mausoleum
candy Enoch A Piece of Candy
Twiggy Whippet & Dakota Buck Whippet&Buck
Margo Imako SteamBound
Lupus Hirano & Allesist Klaar Carima QueensArt Island
Alaska Metropolitan OPIUM Everyday
Neferia Abel Ivalde
Sequoia Nightfire Aurora Borealis
Aislyn Darcy Dysnomia
Sascha Frangilli Sascha's Designs
Tuli Asturias Tuli
Ariel Wingtips mainstore location
Samsara Nishi Sam's Secret Boutique
Chaddi Masala & Milli Santos Ex-Pose
wollemia Sands BULL & BEAR
Aeris Pinazzo Mythology
Iota Ultsch Tres Jolie!
Popfuzz Bamboo Popfuzz
Kurston Brody Serenity Style
Zacch Morane Filthy Xzynoid
Oleandra Mureaux Shapes by []Chez Oleandra[]
GM Nikolaidis Spork
Miles Beck Beck's
Teagan Blackthorne & Laynie Link Nooby Doo's
Sanura Sakai Home of Sanu
Severina Dollinger First Flower
Azazeal Whitfield October Rust
Dendre Benelli Dendre's sculpties
Kryptonia Paperdoll Splashing Doll
Bonny Greenwood Mindgardens Creations
Dave Casanova DCNY Clothing Co.
BurningBright Nightfire BBEBN Fashions & Photography
Once again, if you have an item or items up with partial or full profits going to Bushfire Relief contact Dakota Buck. If you would like to create an item, or donate sales from an existing item(s), IM Autumn Hykova - she has the vendor packs and donation kiosks.