Artykuły o Second Life

Część 15 - LSL - część druga

Jest to dalszy ciąg poprzedniego artykułu. Uzupełnię tutaj część informacji o języku skryptowym Second Life, o których zapomniałem poprzednio wspomnieć.

 

Zacznę od tego, że każde zdarzenie wywołane skryptem ląduje na szczycie stosu zdarzeń. Pierwszeństwo mają te położone najwyżej, co oznacza, że niektóre reakcje są opóźnione. Może oczywiście dojść do przepełnienia stosu i wtedy niektóre się nie wykonają.

Warto tutaj napisać, jak wygląda od strony technicznej sytuacja z regionami i serwerami. Otóż na pojedynczy serwer przypada ok. 4 regionów Estate. Jeżeli mamy do czynienia z regionami MainLand, to czasem na serwer przypada ok. 16 regionów, przy czym są to np. regiony tworzące ocean. Regionów Estate jest ok. 10 tysięcy, natomiast na MainLand składa się ok. 7 kontynentów złożonych z kilkudziesięciu lub nawet kilkuset regionów w większym lub mniejszym stopniu zabudowanych.

Skrypty są dość specyficznymi dodatkami do obiektów, ponieważ wymagają od procesora dodatkowych obliczeń. Według szacunków na typowy region wychodzi ok. 128 działek o najmniejszej powierzchni, czyli 512 metrów kwadratowych (chociaż mogą być jeszcze mniejsze, ale mało kto takie tworzy). Przyjmiemy, że na działkę przypada jedne obiekt oskryptowany. Wychodzi z tego ok. 128 skryptów. Jeżeli w każdym jest chociaż jedno zdarzenie, np. touch_start (odpowiada początkowi kliknięcia na obiekt) i awatary w tym samym momencie klikną w obiekty na regionie, do procesora trafia polecenie wykonania 128 skryptów. Na typowym regionie jest tych skryptów znacznie więcej i posiadają znacznie więcej zdarzeń. A jeżeli mamy 4 regiony, to wynika z tego, że procesor musiałby wykonać polecenia 512 skryptów.

Aby widzieć, co się dzieje na typowym komputerze,gdzie jest OpenSim i region posiadający ok. 500 obiektów, zapraszam do obejrzenia filmiku mojej produkcji, gdzie każdy element piramidy ma skrypt zmieniający teksturę obiektu, przezroczystość kilku z nich oraz powoduje przesuwanie jeszcze innych.

Prócz standardowych możliwości zmiany tekstury, czy chociażby położenia, obrotu i zmiany rozmiaru, możemy za pomocą skryptu zmienić w obiekcie wszystkie jego cechy fizyczne, czyli kształt, wydrążenie, wycięcie, rodzaj materiału, z którego jest wykonany. Wszystkie opcje z narzędzia budowy. Nawet można ustawić skryptem, czy na obiekt ma zadziałać siła grawitacji (co dodatkowo ma wpływ na pracę serwera).

Skrypty obsługują również zdarzenia związane z płatnościami. Możemy przy ich pomocy dowiedzieć się, ile wpłacono nam Linden dolarów (waluta Second Life) poprzez obiekt, możemy też wypłacać awatarom L$.

Jeżeli jesteśmy właścicielem regionu, możemy przy pomocy skryptów modyfikować np. kształt terenu, dodawać lub usuwać osoby z listy dostępu lub listy zbanowanych. Część skryptów ma nawet możliwość kopiowania obiektu lub wyjmowania z oskryptowanego obiektu inne (np. automatyczne sadzenie roślin na parceli).

Skrypty mogą też obsługiwać stream audio i video (tutaj wymagane sterowniki Quick Time oraz modyfikacja tekstury na obiekcie). Prócz tego możemy załadować do Second Life krótkie dźwięki i odtwarzać je poprzez skrypty (wymagany item dźwięku w obiekcie lub podanie klucza UUID danego dźwięku).

Ciekawe efekty są również wtedy, kiedy skrypt tworzy tzw. particle (mogą mieć formę dymu, ognia itp.). Można do nich załadować również własną teksturę.

Jeżeli połączymy te wymienione przeze mnie możliwości skryptów (oraz te niewymienione) możemy stworzyć naprawdę ciekawe programy do ciekawych przedmiotów (np. zwierzęta, pojazdy wszelkiego rodzaju itp.) Jest tego bardzo dużo. Z tego składa się wizualna część Second Life, która wchodzi w reakcję z awatarami i innymi obiektami.

Attachmenty i HUDy również mogą posiadać skrypty (te drugie posiadają). Dzięki temu możemy mieć np. własny radar lub zmieniać kolor szkieł w okularach. Skrypty dają naprawdę wiele możliwości. większość mebli posiada skrypt zmiany animacji siedzenia, co dodatkowo urozmaica dany obiekt, a nawet miejsce.

 

Zatem osoby zainteresowane skryptowaniem w Second Life odsyłam do linków podanych w poprzednim artykule.

2010-06-10, Piotr Górski

© 2015-2019
2022 Translates by Google Translator