Nicht aus der Schweiz? Besuchen Sie lehmanns.de
Second Life-Programmierung mit der Linden Scripting Language -  Matthias Melzer

Second Life-Programmierung mit der Linden Scripting Language (eBook)

eBook Download: PDF
2007 | 1. Auflage
383 Seiten
Carl Hanser Fachbuchverlag
978-3-446-41516-4 (ISBN)
Systemvoraussetzungen
31,99 inkl. MwSt
(CHF 31,25)
Der eBook-Verkauf erfolgt durch die Lehmanns Media GmbH (Berlin) zum Preis in Euro inkl. MwSt.
  • Download sofort lieferbar
  • Zahlungsarten anzeigen

ERSTELLEN SIE EIGENE SECOND LIFE-APPLIKATIONEN //



Liefert einen umfassenden Leitfaden zur Programmierung von SL-Applikationen


Stellt die Linden Scripting Language (LSL) ausführlich vor 


Alle Buchbeispiele unter http://downloads.hanser.de und in der virtuellen Präsenz des Buches in Second Life



SECOND LIFE-PROGRAMMIERUNG MIT LINDENSCRIPT //



Innerhalb von Second Life lassen sich – neben der Erstellung von 3D-Objekten – mit Hilfe der Linden Scripting Language, kurz LSL, eigene Anwendungen programmieren. Solche Anwendungen dienen dazu, Objekte und Spiel. guren (Avatare) mit Interaktivität zu versehen. Das vorliegende Buch beschreibt, wie sich derartige Anwendungen erstellen lassen. Matthias Melzer liefert einen Einstieg in die wichtigsten Konzepte der Sprache wie Variablen, Datenypen, Operatoren, Schleifen, Funktionen, Events und States. Der Hauptteil liefert das nötige Wissen, um Objekte zu erstellen und zu manipulieren. Behandelt werden das Formen von Objekten, Rechteverwaltung, Farben und Texturen, das Verknüpfen von Objekten, Objektinventar, Sensoren, Kollisionen sowie die Rotation und Ani mation von Objekten und das Erstellen von Fahrzeugen.



Zudem werden avatarspezifische Funktionalitäten (Teleports, Attachments, Huds, das Abfangen von Tastaturbefehlen usw.) behandelt. Auch die Kommunikation in und aus dem Second Life und das Einbinden von Audio und Video sowie das Erstellen von Partikelanimationen werden vorgeführt.



Zusammen mit zahlreichen kleinen Beispielapplikationen ergibt dies einen wertvollen Leitfaden, der alle wichtigen Themen behandelt, die es für die Second Life- Programmie rung braucht.



matthias MELZER, Diplom-Informatiker (FH), ist seit Jahren begeisterter Web Developer und setzt dabei vorrangig Open Source-Technologien wie PHP, MySQL, Apache und AJAX ein. Mit dem Web 2.0 und der Entwicklung von Rich Internet Applications beschäftigt er sich seit 2005, mit Second Life und LSL unmittelbar nach deren Erscheinen.



Besuchen Sie das Buch in SecondLife // Dort erhalten Sie alle Listings des Buches und können diese auch gleich in der zugehörigen Sandbox ausprobieren. Sie finden das Buch auf der Sim Terra Tron (http://slurl.com/secondlife/Terra%20Tron/102/252/24).

Inhalt 8
Vorwort 14
Der Aufbau des Buches 15
Erforderliche Ressourcen 16
Typografische Konventionen 16
Die Beispiele und das Buch im SecondLife 16
Feedback 17
Danksagung 17
1 Einführung in LindenScript 18
1.1 Die Entwicklungsumgebung 18
1.2 Hello, Avatar! 20
1.3 Variablen 22
1.3.1 Deklarieren von Variablen 23
1.3.2 Variablen Werte zuweisen 25
1.4 Datentypen 26
1.4.1 Integer 26
1.4.2 Float 28
1.4.3 String 28
1.4.4 Vector 29
1.4.5 Rotation/Quaternion 35
1.4.6 Key 36
1.4.7 List 36
1.5 Typumwandlung 38
1.5.1 Explizite Typumwandlung 38
1.5.2 Implizite Typumwandlung 42
1.6 Operatoren 43
1.6.1 Zuweisungsoperator 43
1.6.2 Arithmetische Operatoren 44
1.6.3 Inkrement- und Dekrementoperatoren 45
1.6.4 Relationale Operatoren 46
1.6.5 Logische Operatoren 48
1.6.6 Binäre Operatoren 50
1.6.7 Sonstige Operatoren 53
1.6.8 Priorität der Operatoren 54
1.7 Konstanten 55
1.8 Anweisungen und Blöcke 56
1.9 Kontrollstrukturen 57
1.9.1 if und if-else 57
1.9.2 while-Schleife 60
1.9.3 do-while-Schleife 61
1.9.4 for-Schleife 61
1.9.5 jump 63
1.10 Funktionen 65
1.11 In LindenScript integrierte Funktionen 69
1.11.1 Funktionen zur string-Bearbeitung 69
1.11.2 Funktionen zur list-Bearbeitung 73
1.12 In Abschnitte eingeteilte Listen (Strided Lists) 84
1.13 Kartenziehen – ein erstes Beispielprogramm 86
1.14 Ereignisse/Events 92
1.14.1 Dem Benutzer zuhören – der Event 93
1.14.2 Zeitgesteuerte Skripte – der Event 96
1.14.3 Anweisungen beim Rezzen eines Objektes ausführen – der Event on_rez 97
1.15 Zustände/States 99
2 Primitives/Objekte 104
2.1 Was ist ein Primitive? Was ist ein Objekt? 104
2.1.1 Primitives 104
2.1.2 Objekte 105
2.2 Identität eines Prims 106
2.3 Zugriffsrechte 107
2.4 Einfache Manipulationen von Prim-Eigenschaften 110
2.4.1 Auf ein Wort – die allmächtige Funktion llSetPrimitiveParams 110
2.4.2 Die Eigenschaft Physikalisch 110
2.4.3 Die Eigenschaft Phantom 113
2.4.4 Die Eigenschaft Temporär 113
2.4.5 Prim-Dimensionen 114
2.4.6 Die Position eines Prims innerhalb von Second Life 115
2.5 Formen 120
2.5.1 Pfadschnitt/Path Cut 123
2.5.2 Hohl und Hohlform/Hollow and Hole Shape 125
2.5.3 Verdrehung (Torsion)/Twist 127
2.5.4 Verjüngung/Taper 127
2.5.5 Scherung/Topshear 130
2.5.6 Vertiefung/Dimple 130
2.5.7 Lochgröße/Holesize 131
2.5.8 Profilschnitt/Profile Cut 133
2.5.9 Versatz/Skew 135
2.5.10 Umdrehungen/Revolutions 135
2.5.11 Spiralform/Radius Delta 136
2.6 Farben und Texturen von Objekten 138
2.6.1 Farben 138
2.6.2 Face, die Seiten eines Prims 139
2.6.3 Texturen 144
2.6.4 Transparente Prims/Objekte 147
2.7 Licht 148
2.8 Textliches 149
2.9 Die Funktion llSetPrimitiveParams im Überblick 150
2.9.1 Die Konstanten und Übergabewerte von llSetPrimitiveParams 150
2.9.2 Basisformen setzen mit llSetPrimitiveParams 152
2.9.3 Überblick über die Parameter der Formmanipulation 154
2.9.4 Konstanten für Sculpted Prims 155
2.9.5 Konstanten für Bumpmapping 155
2.9.6 Glanz-Konstanten 156
2.9.7 Prim-Material 156
3 Verknüpfte Objekte/Linked Sets 158
3.1 Allgemeines zu verknüpften Objekten 158
3.2 Anweisungen in verknüpften Objekten 159
3.2.1 Versenden von Nachrichten in Linked Sets 159
3.2.2 Empfangen von Nachrichten in Linked Sets 160
3.2.3 Eigenschaften abfragen und manipulieren in Linked Sets 161
3.2.4 Programmatisches Anlegen und Auflösen von verknüpften Objekten 167
4 Objektinventar 174
4.1 Allgemeines zum Objektinventar 174
4.2 WYGIWYG – eine Beispielanwendung 175
4.2.1 Das Basisskript 176
4.2.2 Einen neuen Gegenstand im Objektinventar ermitteln 179
4.2.3 Objektinventarrechte und Übergabe eines Gegenstands an einen Spieler 183
4.3 Auslesen von Notizen/Notecards 189
4.4 Skriptfunktionen 194
4.4.1 Auslesen von Landmarks 196
5 Kommunikation 198
5.1 Dialoge 198
5.2 Instant Messages 203
5.3 E-Mail 204
5.4 HTTP 207
5.5 XML-RPC 210
5.6 Beispielanwendung RSS-Reader 210
5.6.1 XyText 211
5.6.2 Das serverseitige Abrufen des RSS-Feeds 214
5.6.3 Aufruf des PHP-Skriptes aus LindenScript heraus 215
5.6.4 Der RSS-Reader als Ganzes 216
5.7 Finaler Überblick zur Kommunikation in LindenScript 219
6 Rotation, Animation und Translation eines nichtphysikalischen Objekts 222
6.1 Einführung 222
6.2 Rotation von Prims 223
6.2.1 Mathematisches 223
6.2.2 Umrechnung von Grad in Radiant und umgekehrt 224
6.2.3 Drehung eines Prims/Objektes 224
6.2.4 Wiederholte Drehung eines Prims/Objektes 225
6.2.5 Animierte Drehung mit llTargetOmega 228
6.2.6 Lokale Rotation in Linked Sets 230
6.3 Rotation und Animation von Texturen 232
6.3.1 Animation von Texturen durch Einzelbilder 234
6.3.2 Animierte Rotation von Texturen 235
6.3.3 Animation einer Textur durch Skalierung 235
7 Avatarfunktion 238
7.1 Allgemeine Avatarfunktionen 239
7.2 Sitzen 243
7.3 Attachments 247
7.4 Animation von Avataren 251
7.5 Steuerung von Avataren/Controls 256
7.6 Money, Money, Money 260
7.7 Teleports 270
8 Media 274
8.1 Audio 274
8.1.1 In-world sound 274
8.1.2 Streaming Audio 281
8.2 Video 283
9 Partikel 288
9.1 Einführung 288
9.2 Partikelemissionen beenden 290
9.3 Der Emitter 290
9.4 Die Funktion llParticleSystem 291
9.4.1 Schemata/Pattern 292
9.4.2 Den Ausstoß von Partikeln beeinflussen 294
9.4.3 Farbe von Partikeln 295
9.4.4 Transparenz 296
9.4.5 Größe von Partikeln 297
9.4.6 Das Aussehen von Partikeln mit Texturen bestimmen 297
9.4.7 Rotation des Partikelemitters 299
9.4.8 Partikel auf ein Ziel zubewegen 299
9.4.9 Überblick über alle Übergabewerte an llParticleSystem 301
9.5 Partikelbeispiele 304
9.5.1 Bling Bling 305
9.5.2 Let it snow, let it snow, let it snow 306
9.5.3 Feuer!!! 307
10 Erweiterte Objektfunktionalität 310
10.1 Huds 310
10.1.1 Vorabinformationen 310
10.1.2 Ein Hud-gesteuerter Bildbetrachter 312
10.2 Sensoren 316
10.2.1 Allgemeines zu Sensoren 317
10.2.2 Beispielprogramm Avatar-Scanner-Attachment 319
10.3 Physikalische Objekte 323
10.3.1 Beschleunigung/acceleration 324
10.3.2 Drehmoment/torque 325
10.3.3 Geschwindigkeit/velocity 326
10.3.4 Kraft/force 326
10.3.5 Masse/mass 327
10.3.6 Impuls/impulse 328
10.3.7 Reibung/friction 329
10.3.8 Schwerkraft/gravity 329
10.3.9 Energie/energy 329
10.3.10 Weitere Funktionen für physikalische Objekte 330
10.4 Kollisionen 331
10.5 Abschließendes Beispielprogramm – eine Pistole 333
11 Fahrzeuge 342
11.1 Grundkonzepte 342
11.2 Autos 344
11.2.1 Mein erstes Auto 344
11.2.2 Auto 2.0 – jetzt mit Reifen 351
11.2.3 Türen, Motorhaube und Kofferraum 352
11.2.4 Du nicht 354
11.3 Wasserfahrzeuge 356
11.4 Ein fliegender Teppich 360
11.5 Die Parameter der vehicle-Funktion im Überblick 362
A Glossar 368
B Alle Events im Überblick 372
C Alternative Editoren 374
C.1 Compiler/Debugger 374
C.2 Editoren 374
C.3 Syntax-Checker 375
Register 376

8 Media (S. 257)

Dieses Kapitel beschäftigt sich mit dem Einbinden von Musik und Video in Second Life. Obwohl uns Second Life im ersten Augenblick als Multimedia vorkommt, werden Sie sehen, dass die Möglichkeiten in diesem Bereich andere als multi sind. Die Einbindung unterliegt einigen Beschränkungen, und es ist nicht immer einfach, seiner Kreativität freien Lauf zu lassen.

In diesem Kapitel werden Sie ein einfaches Gerät zum Abspielen von Musik bauen, ein Prim so einsetzen, dass Sie Videos auf ihm abspielen können, und ein Radio programmieren, mit dem es Ihnen möglich ist, verschiedene Internetradiostationen auf Ihrem Land zu empfangen. Zudem wird Ihnen alles Wissenswerte im Zusammenhang mit dem Thema Audio und Video in Second Life aus Programmierersicht erklärt werden.

8.1 Audio

Im Bereich Audio wird in Second Life zwischen zwei verschiedenen Arten unterschieden: der Empfang von Streaming Audio auf einer Parzelle und das Abspielen der von Ihnen hochgeladenen Sound-Schnipsel, sogenanntem in-world sound .

8.1.1 In-world sound

Eigene Sounds eignen sich primär zum Abspielen von Soundeffekten, dennoch ist es möglich, ganze Musikstücke abzuspielen, wie Sie im weiteren Verlauf sehen werden. Linden Lab beschränkt das Hochladen von Audiomaterial. Das zu übergebende Dateiformat ist WAV105 PCM, und die Länge einer Audiodatei darf zehn Sekunden nicht überschreiten. Falls Sie nicht wissen, wie man bspw. ein MP3 in das WAV-Format überführt, bietet das Progamm Audacity106 hierfür gute Dienste. Es ist sowohl für PC als auch für Mac kostenlos erhältlich.

Die Limitierung der Länge wird auf die sonst anzunehmenden Copyright-Verstöße zurückgeführt. Ein Upload einer Audiodatei kostet immerhin 10 L$ und ein Song von drei Minuten Länge demnach 180 L$, zum Zeitpunkt der Erstellung dieses Buches also fast 0,50 €. Da überlegt man es sich schon zweimal, bevor man einen Song hochlädt, vor allem wenn man die begrenzten Möglichkeiten des Abspielens sieht, auf die wir im Laufe des Kapitels noch zu sprechen kommen werden.

Ein weiterer Grund mag sein, dass Linden Lab nicht mit übermäßig vielen Audiodateien Serverplatz verschwenden möchte, denn obwohl die Dateien vor dem Ablegen auf dem Server erst in das Ogg Vorbis107-Format überführt und zuvor in 44,1 KHZ 16 Bit mono konvertiert werden, verbrauchen sie dennoch einiges an Speicherplatz. Eine Zehn- Sekunden-Datei Stille ist im Ogg Vorbis-Format immerhin noch 82 KB groß. Wenn nun die Anfrage eines Clients zum Abspielen eines Sounds an die Server geschickt wird, wird die komplette Datei an den Client übertragen und lokal gecached. Bevor sie abgespielt wird, wird sie vom Client wieder in das WAV-Format gewandelt. Hierbei wird Rechnung getragen, dass die meisten Soundkarten Ogg Vorbis nicht direkt abspielen können, WAV hingegen schon.

So weit zur Vorgeschichte. Sehen wir uns einmal an, welche Möglichkeiten Ihnen in Verbindung mit den in-world sounds zur Verfügung stehen.

Erscheint lt. Verlag 1.1.2007
Sprache deutsch
Themenwelt Mathematik / Informatik Informatik Netzwerke
Mathematik / Informatik Informatik Programmiersprachen / -werkzeuge
Mathematik / Informatik Informatik Web / Internet
ISBN-10 3-446-41516-5 / 3446415165
ISBN-13 978-3-446-41516-4 / 9783446415164
Haben Sie eine Frage zum Produkt?
PDFPDF (Wasserzeichen)
Größe: 8,9 MB

DRM: Digitales Wasserzeichen
Dieses eBook enthält ein digitales Wasser­zeichen und ist damit für Sie persona­lisiert. Bei einer missbräuch­lichen Weiter­gabe des eBooks an Dritte ist eine Rück­ver­folgung an die Quelle möglich.

Dateiformat: PDF (Portable Document Format)
Mit einem festen Seiten­layout eignet sich die PDF besonders für Fach­bücher mit Spalten, Tabellen und Abbild­ungen. Eine PDF kann auf fast allen Geräten ange­zeigt werden, ist aber für kleine Displays (Smart­phone, eReader) nur einge­schränkt geeignet.

Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen dafür einen PDF-Viewer - z.B. den Adobe Reader oder Adobe Digital Editions.
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen dafür einen PDF-Viewer - z.B. die kostenlose Adobe Digital Editions-App.

Zusätzliches Feature: Online Lesen
Dieses eBook können Sie zusätzlich zum Download auch online im Webbrowser lesen.

Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.

Mehr entdecken
aus dem Bereich
Das umfassende Handbuch

von Martin Linten; Axel Schemberg; Kai Surendorf

eBook Download (2023)
Rheinwerk Computing (Verlag)
CHF 29,20
Das umfassende Handbuch

von Michael Kofler; Charly Kühnast; Christoph Scherbeck

eBook Download (2024)
Rheinwerk Computing (Verlag)
CHF 43,85