Sie sind hier
E-Book

Second Life-Programmierung mit der Linden Scripting Language

AutorMatthias Melzer
VerlagCarl Hanser Fachbuchverlag
Erscheinungsjahr2007
Seitenanzahl383 Seiten
ISBN9783446415164
FormatPDF
KopierschutzWasserzeichen/DRM
GerätePC/MAC/eReader/Tablet
Preis31,99 EUR

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).

Kaufen Sie hier:

Horizontale Tabs

Leseprobe

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.

Inhaltsverzeichnis
Inhalt8
Vorwort14
Der Aufbau des Buches15
Erforderliche Ressourcen16
Typografische Konventionen16
Die Beispiele und das Buch im SecondLife16
Feedback17
Danksagung17
1 Einführung in LindenScript18
1.1 Die Entwicklungsumgebung18
1.2 Hello, Avatar!20
1.3 Variablen22
1.3.1 Deklarieren von Variablen23
1.3.2 Variablen Werte zuweisen25
1.4 Datentypen26
1.4.1 Integer26
1.4.2 Float28
1.4.3 String28
1.4.4 Vector29
1.4.5 Rotation/Quaternion35
1.4.6 Key36
1.4.7 List36
1.5 Typumwandlung38
1.5.1 Explizite Typumwandlung38
1.5.2 Implizite Typumwandlung42
1.6 Operatoren43
1.6.1 Zuweisungsoperator43
1.6.2 Arithmetische Operatoren44
1.6.3 Inkrement- und Dekrementoperatoren45
1.6.4 Relationale Operatoren46
1.6.5 Logische Operatoren48
1.6.6 Binäre Operatoren50
1.6.7 Sonstige Operatoren53
1.6.8 Priorität der Operatoren54
1.7 Konstanten55
1.8 Anweisungen und Blöcke56
1.9 Kontrollstrukturen57
1.9.1 if und if-else57
1.9.2 while-Schleife60
1.9.3 do-while-Schleife61
1.9.4 for-Schleife61
1.9.5 jump63
1.10 Funktionen65
1.11 In LindenScript integrierte Funktionen69
1.11.1 Funktionen zur string-Bearbeitung69
1.11.2 Funktionen zur list-Bearbeitung73
1.12 In Abschnitte eingeteilte Listen (Strided Lists)84
1.13 Kartenziehen – ein erstes Beispielprogramm86
1.14 Ereignisse/Events92
1.14.1 Dem Benutzer zuhören – der Event93
1.14.2 Zeitgesteuerte Skripte – der Event96
1.14.3 Anweisungen beim Rezzen eines Objektes ausführen – der Event on_rez97
1.15 Zustände/States99
2 Primitives/Objekte104
2.1 Was ist ein Primitive? Was ist ein Objekt?104
2.1.1 Primitives104
2.1.2 Objekte105
2.2 Identität eines Prims106
2.3 Zugriffsrechte107
2.4 Einfache Manipulationen von Prim-Eigenschaften110
2.4.1 Auf ein Wort – die allmächtige Funktion llSetPrimitiveParams110
2.4.2 Die Eigenschaft Physikalisch110
2.4.3 Die Eigenschaft Phantom113
2.4.4 Die Eigenschaft Temporär113
2.4.5 Prim-Dimensionen114
2.4.6 Die Position eines Prims innerhalb von Second Life115
2.5 Formen120
2.5.1 Pfadschnitt/Path Cut123
2.5.2 Hohl und Hohlform/Hollow and Hole Shape125
2.5.3 Verdrehung (Torsion)/Twist127
2.5.4 Verjüngung/Taper127
2.5.5 Scherung/Topshear130
2.5.6 Vertiefung/Dimple130
2.5.7 Lochgröße/Holesize131
2.5.8 Profilschnitt/Profile Cut133
2.5.9 Versatz/Skew135
2.5.10 Umdrehungen/Revolutions135
2.5.11 Spiralform/Radius Delta136
2.6 Farben und Texturen von Objekten138
2.6.1 Farben138
2.6.2 Face, die Seiten eines Prims139
2.6.3 Texturen144
2.6.4 Transparente Prims/Objekte147
2.7 Licht148
2.8 Textliches149
2.9 Die Funktion llSetPrimitiveParams im Überblick150
2.9.1 Die Konstanten und Übergabewerte von llSetPrimitiveParams150
2.9.2 Basisformen setzen mit llSetPrimitiveParams152
2.9.3 Überblick über die Parameter der Formmanipulation154
2.9.4 Konstanten für Sculpted Prims155
2.9.5 Konstanten für Bumpmapping155
2.9.6 Glanz-Konstanten156
2.9.7 Prim-Material156
3 Verknüpfte Objekte/Linked Sets158
3.1 Allgemeines zu verknüpften Objekten158
3.2 Anweisungen in verknüpften Objekten159
3.2.1 Versenden von Nachrichten in Linked Sets159
3.2.2 Empfangen von Nachrichten in Linked Sets160
3.2.3 Eigenschaften abfragen und manipulieren in Linked Sets161
3.2.4 Programmatisches Anlegen und Auflösen von verknüpften Objekten167
4 Objektinventar174
4.1 Allgemeines zum Objektinventar174
4.2 WYGIWYG – eine Beispielanwendung175
4.2.1 Das Basisskript176
4.2.2 Einen neuen Gegenstand im Objektinventar ermitteln179
4.2.3 Objektinventarrechte und Übergabe eines Gegenstands an einen Spieler183
4.3 Auslesen von Notizen/Notecards189
4.4 Skriptfunktionen194
4.4.1 Auslesen von Landmarks196
5 Kommunikation198
5.1 Dialoge198
5.2 Instant Messages203
5.3 E-Mail204
5.4 HTTP207
5.5 XML-RPC210
5.6 Beispielanwendung RSS-Reader210
5.6.1 XyText211
5.6.2 Das serverseitige Abrufen des RSS-Feeds214
5.6.3 Aufruf des PHP-Skriptes aus LindenScript heraus215
5.6.4 Der RSS-Reader als Ganzes216
5.7 Finaler Überblick zur Kommunikation in LindenScript219
6 Rotation, Animation und Translation eines nichtphysikalischen Objekts222
6.1 Einführung222
6.2 Rotation von Prims223
6.2.1 Mathematisches223
6.2.2 Umrechnung von Grad in Radiant und umgekehrt224
6.2.3 Drehung eines Prims/Objektes224
6.2.4 Wiederholte Drehung eines Prims/Objektes225
6.2.5 Animierte Drehung mit llTargetOmega228
6.2.6 Lokale Rotation in Linked Sets230
6.3 Rotation und Animation von Texturen232
6.3.1 Animation von Texturen durch Einzelbilder234
6.3.2 Animierte Rotation von Texturen235
6.3.3 Animation einer Textur durch Skalierung235
7 Avatarfunktion238
7.1 Allgemeine Avatarfunktionen239
7.2 Sitzen243
7.3 Attachments247
7.4 Animation von Avataren251
7.5 Steuerung von Avataren/Controls256
7.6 Money, Money, Money260
7.7 Teleports270
8 Media274
8.1 Audio274
8.1.1 In-world sound274
8.1.2 Streaming Audio281
8.2 Video283
9 Partikel288
9.1 Einführung288
9.2 Partikelemissionen beenden290
9.3 Der Emitter290
9.4 Die Funktion llParticleSystem291
9.4.1 Schemata/Pattern292
9.4.2 Den Ausstoß von Partikeln beeinflussen294
9.4.3 Farbe von Partikeln295
9.4.4 Transparenz296
9.4.5 Größe von Partikeln297
9.4.6 Das Aussehen von Partikeln mit Texturen bestimmen297
9.4.7 Rotation des Partikelemitters299
9.4.8 Partikel auf ein Ziel zubewegen299
9.4.9 Überblick über alle Übergabewerte an llParticleSystem301
9.5 Partikelbeispiele304
9.5.1 Bling Bling305
9.5.2 Let it snow, let it snow, let it snow306
9.5.3 Feuer!!!307
10 Erweiterte Objektfunktionalität310
10.1 Huds310
10.1.1 Vorabinformationen310
10.1.2 Ein Hud-gesteuerter Bildbetrachter312
10.2 Sensoren316
10.2.1 Allgemeines zu Sensoren317
10.2.2 Beispielprogramm Avatar-Scanner-Attachment319
10.3 Physikalische Objekte323
10.3.1 Beschleunigung/acceleration324
10.3.2 Drehmoment/torque325
10.3.3 Geschwindigkeit/velocity326
10.3.4 Kraft/force326
10.3.5 Masse/mass327
10.3.6 Impuls/impulse328
10.3.7 Reibung/friction329
10.3.8 Schwerkraft/gravity329
10.3.9 Energie/energy329
10.3.10 Weitere Funktionen für physikalische Objekte330
10.4 Kollisionen331
10.5 Abschließendes Beispielprogramm – eine Pistole333
11 Fahrzeuge342
11.1 Grundkonzepte342
11.2 Autos344
11.2.1 Mein erstes Auto344
11.2.2 Auto 2.0 – jetzt mit Reifen351
11.2.3 Türen, Motorhaube und Kofferraum352
11.2.4 Du nicht354
11.3 Wasserfahrzeuge356
11.4 Ein fliegender Teppich360
11.5 Die Parameter der vehicle-Funktion im Überblick362
A Glossar368
B Alle Events im Überblick372
C Alternative Editoren374
C.1 Compiler/Debugger374
C.2 Editoren374
C.3 Syntax-Checker375
Register376

Weitere E-Books zum Thema: Programmiersprachen - Softwareentwicklung

Spring

E-Book Spring

Das Spring Framework ist 2012 stolze zehn Jahre alt geworden. Seit dem ersten Release von Rod Johnson hat es wichtige Meilensteine für die Enterprise-Java-Welt gesetzt und sogar eine Brücke zum ...

Spring Boot 2

E-Book Spring Boot 2

Spring Boot hat seit 2014 das Spring-Ökosystem revolutioniert und verdrängt in zunehmendem Maße 'klassische' Spring-Anwendungen.Spring Boot ist kein neues Framework, sondern basiert auf Spring und ...

C++ Kurs

E-Book C++ Kurs

Ein Lehrbuch für Einsteiger, das sich sowohl als Begleitmaterial für den Unterricht als auch für das Selbststudium eignet. Im Vordergrund steht die Programmierung technischer ...

Weitere Zeitschriften

CE-Markt

CE-Markt

 Das Fachmagazin für Consumer-Electronics & Home Technology ProductsTelefónica O2 Germany startet am 15. Oktober die neue O2 Handy-Flatrate. Der Clou: Die Mindestlaufzeit des Vertrages ...

SPORT in BW (Württemberg)

SPORT in BW (Württemberg)

SPORT in BW (Württemberg) ist das offizielle Verbandsorgan des Württembergischen Landessportbund e.V. (WLSB) und Informationsmagazin für alle im Sport organisierten Mitglieder in Württemberg. ...

DGIP-intern

DGIP-intern

Mitteilungen der Deutschen Gesellschaft für Individualpsychologie e.V. (DGIP) für ihre Mitglieder Die Mitglieder der DGIP erhalten viermal jährlich das Mitteilungsblatt „DGIP-intern“ ...

Die Großhandelskaufleute

Die Großhandelskaufleute

Prüfungs- und Praxiswissen für Großhandelskaufleute Mehr Erfolg in der Ausbildung, sicher in alle Prüfungen gehen, im Beruf jeden Tag überzeugen: „Die Großhandelskaufleute“ ist die ...

die horen

die horen

Zeitschrift für Literatur, Kunst und Kritik."...weil sie mit großer Aufmerksamkeit die internationale Literatur beobachtet und vorstellt; weil sie in der deutschen Literatur nicht nur das Neueste ...

e-commerce magazin

e-commerce magazin

PFLICHTLEKTÜRE – Seit zwei Jahrzehnten begleitet das e-commerce magazin das sich ständig ändernde Geschäftsfeld des Online- handels. Um den Durchblick zu behalten, teilen hier renommierte ...

EineWelt

EineWelt

Eine Anregung der Gossner Mission zum verbesserten Schutz indigener Völker hat Bundespräsident Horst Köhler aufgegriffen: Er hat auf Anregung des Missionswerkes eine Anfrage an die Bundesregierung ...

Euphorion

Euphorion

EUPHORION wurde 1894 gegründet und widmet sich als „Zeitschrift für Literaturgeschichte“ dem gesamten Fachgebiet der deutschen Philologie. Mindestens ein Heft pro Jahrgang ist für die ...