Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Lernen mit OpenSim
#1
Lernen mit OpenSim!

Hallo, wir sind hier 4 Leute die gern an einem Lernkurs teilnehmen würden.

Ich schreibe es hier im Forum weil ja immer die Möglichkeit besteht, dass es auch Leute gibt

die kein Problem damit haben mal etwas nicht oder nur unvollständig zu wissen.

Wenn sich noch einige Personen zum Kurs anmelden würden, so lohnt sich das auch für alle.

Über folgende Kurse würden wir uns freuen.

1. Richtig sitzen! ui, Du kannst das schon? Fein!

Wie geht das und welche Möglichkeiten gibt es? Was ist gut und was ist nicht so gut.

2. Ava erstellen und anziehen - mit Erklärung der Löcher in den Klamotten - wieso ? warum ? weshalb Löcher?

3. NPC erstellen und ankleiden

4. Bauen, klar


Das sind jetzt nur 3 Punkte mit denen man anfangen könnte. Im Kopf habe ich noch 50 weitere Punkte.

Wir würden uns freuen wenn jemand die Kurse mit Voice machen würde.

Weitere Ideen, Vorschläge oder Meinungen einfach posten.

Ich gebe dann später selbst auch einen Kurs zum Thema: Wie man es NICHT machen sollte :-)

Lukas
Antworten }
Thanks given by: Achim , Dina
#2
Huhu Lukas,

wir haben in VirtuLife.de, ein Bildungszentrum .. was noch zum Leben erwachen will ...
Denke, das sich das vielleicht verbinden lassen würde ...

Hab zwar im Moment noch einiges auf dem Schirm, aber den 1 oder anderen Kurs könnte ich evtl auch anbieten Smile

Habt Ihr denn Vorstellungen, ob es eher tagsüber oder eher abends sein soll?
Wie ist denn die Idee, einmal pro Woche 1-2 Std? Oder dachtet ihr eher an nen CrashKurs .. solange es dauert am WE?

Die Idee selbst .. finde ich klasse !!
LG Piper
Antworten }
Thanks given by: Lukas Silberstein , Achim
#3
Also solche Kurse gab es früher.
Das ist aber eingeschlafen.


Zu 3. NPC erstellen und ankleiden:


Das ist ganz einfach ihr braucht nur ein Script dazu Animationen aus eurem Inventar.


2 Animationen nach Wahl und eine Animation für das gehen in einen Würfel tun.
Namen für die Animationen sind:
Walk
Animation1
Animation2


Soundstücke braucht man aber nicht unbedingt, Namen für die Soundstücke:
Ton1
Ton2


Eine leere Notecard mit dem Namen: Aussehen


Dieses Script einfügen mit dem Namen Verfolger.
Code:
// Dies ist ein NPC verfolger von Ferd Frederix.
// Lizens: http://creativecommons.org/licenses/by-nc

// Speichert im Prim 2 Animationen mit dem Namen Animation1 und Animation2
// Speichert im Prim 2 Sounds Ton1 und Ton2, sollten keine Sounds vorhanden sein wird nichts abgespielt.

// Einstellungen
float max_distance = 50; //Sensor Entfernung zu einen echten Avatar
string fName = "Manfred"; // Vorname
string lName = "Aabye"; // Nachname

float gTimer;
integer iWaitCounter = 60;
integer channel;
integer listener;
key npc;
integer npc_on = FALSE;
vector Dest;
string lastAnim;
 
Play(string anima)
{
   if (anima == lastAnim)
       return;
 
   if (anima == "Animation1" && llFrand(5) < 1)
   {
       anima = "Animation2";  
       gTimer = llFrand(5) + 4;
   }
   else
   {
       gTimer = llFrand(5) + 1;
   }
   
   osNpcPlayAnimation(npc,anima);
   osNpcStopAnimation(npc,lastAnim);
   lastAnim = anima;
}

Sound()
{
   if (llFrand(2) > 0.5)
       return;
       
   integer n = llGetInventoryNumber(INVENTORY_SOUND);
   integer n2 = llCeil(llFrand(n));

   string name = llGetInventoryName(INVENTORY_SOUND,n2);
   llTriggerSound(name,1.0);
}


walk_to_master(vector myPos)
{
   vector myVector = <randBetween(-2,2),randBetween(-2,2),myPos.z> ;
   myPos.z = 0;

   iWaitCounter = 60;
   Play("Walk");
   osNpcMoveToTarget(npc, myPos + myVector, OS_NPC_NO_FLY );
   llSetTimerEvent(0.5);
   Sound();
}

float randBetween(float min, float max)
{
   return llFrand(max - min) + min ;
}
dialog(key avi)
{
   channel = llCeil(llFrand(5000) + 5000);
   listener = llListen(channel,"","","");
   llDialog(avi, "Choose:",["Start","Ende","Aussehen"],channel);
}
Start()
{
   vector npcPos = llGetPos() + <1.0,1.0,1.0>;
   npc = osNpcCreate(fName,lName, npcPos, "Aussehen");
   llSetObjectDesc(npc);
   npc_on = TRUE;
   llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME, max_distance, PI);  
}

default
{
   
   state_entry()
   {
       llSay(0,"Bereit");
       gTimer = llFrand(2) + 1;
       osNpcRemove(llGetObjectDesc());

   }
   
   changed (integer what)
   {
       if (what & CHANGED_REGION_START)
       {
           if (npc_on)
           {
               Start();
           }
       }
   }
   
   on_rez(integer p)
   {
       llResetScript();
   }
   
   touch_start(integer x)
   {
       //if (llDetectedKey(0) == llGetOwner())  {
           dialog(llDetectedKey(0));
       //}
   }
   
   listen(integer channel, string name, key id, string msg) {
       llListenRemove (listener);
       if (msg == "Start")
       {
           if( !npc_on ) {
              Start();
           } else {
               llOwnerSay("Bereits gestartet");
           }
       } else if (msg == "Ende")  {
           npc_on = FALSE;
           osNpcRemove(llGetObjectDesc());
           llSetTimerEvent(0);
       } else if (msg ==  "Aussehen") {
           osAgentSaveAppearance(llGetOwner(), "Aussehen");
           llOwnerSay("Dein Aussehen wurde gespeichert");
       }
   
   }

   sensor(integer num)
   {
       Dest = llDetectedPos( 0 );
       walk_to_master(Dest);
   }
   
   no_sensor()
   {
        Play("Animation2");
        llSleep(10);
        llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME, max_distance, PI);
   }
 
   timer()
   {
       vector pos;
       if (--iWaitCounter)  {
         
           list Poses = llGetObjectDetails(npc,[OBJECT_POS]);
           pos = llList2Vector(Poses, 0);
           
           if (llVecDist(pos, Dest ) > 4) {
               return;
           }
       }
       
       if (llFrand(5) < 0.5) {
            if (llVecDist(pos, Dest ) <1) {
               Play("Ton1");
               llTriggerSound("Ton1",1.0);
               llSleep(1.5);
           } else {
               Play("Ton2");
               llTriggerSound("Ton2",1.0);
               llSleep(1.5);
           }
           
           
       }
       
       Play("Animation1");

       llSleep(gTimer);
       llSetTimerEvent(0);
       llSensor("", NULL_KEY, AGENT_BY_LEGACY_NAME, max_distance, PI);
       
   }
}


Jetzt Bauen beenden.


Den Würfel anklicken, es erscheint ein Menü.
Auf Aussehen anklicken um euren Avatar zu speichern.
Danach Start um den NPC anzuzeigen.
Und Ende um den NPC zu beenden.


Das könnt ihr so oft machen wie ihr das möchtet.

In der Notecard mit dem Namen Aussehen ist euer Avatar anschließend drin.

1. Richtig sitzen,
hier wird nur ein gutes Sitzkissen mit Animationen benötigt.
Das ist mittlerweile so aufwendig und gut geworden, das ein Selbstbau kaum lohnt.

2. Avatar erstellen,
ich glaube es gibt nur eine Handvoll Menschen die Riggen und gewichten überhaupt können.

4. Bauen ja wie Inworld oder mit Blender, Sketchup oder anderen Externen Programmen.
Sketchup da hab ich mal versucht einen schriftlichen Kurs zu machen.
http://www.gridtalk.de/forumdisplay.php?fid=63
[Bild: attachment.php?aid=2009]
Antworten }
Thanks given by: Lukas Silberstein , Achim
#4
(13.04.2019, 15:54)Piper schrieb: Huhu Lukas,

wir haben in VirtuLife.de, ein Bildungszentrum .. was noch zum Leben erwachen will ...
Denke, das sich das vielleicht verbinden lassen würde ...

Hab zwar im Moment noch einiges auf dem Schirm, aber den 1 oder anderen Kurs könnte ich evtl auch anbieten Smile

Habt Ihr denn Vorstellungen, ob es eher tagsüber oder eher abends sein soll?
Wie ist denn die Idee, einmal pro Woche 1-2 Std? Oder dachtet ihr eher an nen CrashKurs .. solange es dauert am WE?

Die Idee selbst .. finde ich klasse !!
LG Piper

Hallo Piper,

ich sehe mir das Zentrum auf jeden Fall an. Im Bezug auf die Zeiten würde ich pauschal immer den Abend so ab 19:00 Uhr oder 20:00 Uhr vorschlagen. Da hat jeder Abendbrot gegessen und dann kann es losgehen. Am Wochenende würde auch passen wenn keine Party geplant ist. Super wenn du den Kurs *richtig sitzen* machen würdest. Wenn Du magst spechen wir den Termin Inworld ab.

Lukas

Hallo Manni,

danke für diese umfangreichen Informationen und das mit dem Script. Ja, habe es sofort probiert und es funktioniert einfach klasse.

Ich habe zwar Scripten nicht drauf aber Interesse auf diesem Gebiet zu lernen.

Es interessiert mich sehr, weil man so viel damit machen kann. Eine gute Anleitung ist die beste Basis für Anfänger!

Ohne Einstieg geht es nun mal nicht.

Lukas
Antworten }
Thanks given by: Achim , Piper
#5
Dann habe ich direkt eine Aufgabe für dich.
Du schreibst das Script funktioniert klasse, jetzt entferne aus diesem Script die Funktion Aussehen speichern,
damit man nicht aus versehen einen erstellten Avatar löscht.
Beim ändern von Scripten erlernt man am besten wie das Scripten funktioniert.
Das solltest du ohne Programmierkenntnisse in etwa 2 Stunden schaffen.
Lese dazu alles was du nicht verstehst, unten in den Links nach.


Wenn dir langweilig wird, oder du eine Ablenkung benötigst, spiele mit diesem Script Werkzeug herum
und setze die Scripte Inworld ein: http://www.3greeneggs.com/autoscript/index_de.html


Alle Informationen zum Scripten erhältst du hier:
http://wiki.secondlife.com/wiki/LSL_Portal/de
Zu dem LSL Befehlsumfang kommt für uns noch der OSSL Befehlsumfang hinzu,
der gleichzeitig genutzt werden kann: http://opensimulator.org/wiki/OSSL_Implemented


Code:
// Diese Schrägstriche besagen, das nachfolgend nur ein Vermerk kommt und mit diesem solltest du nicht geizen.
// Ein minimales Grundgerüst ist folgenderweise aufgebaut:
default
{
   state_entry()
   {
    // Hier kommen alle Funktionen hin.
    // Dieses Script hat keinerlei Funktionen aber Funktioniert.
   }
}
// Script Ende

Code:
// Beim start des Scriptes Hallo Welt sagen.
default
{
    //  state_entry wird bei Script start einmal ausgeführt und alles was sich in den {} Klammern befindet.
    state_entry() {
        // Hallo Welt Inworld sagen.
        llSay(0,"Hallo Welt");
    }
}
// Script Ende

Code:
// Bei berührung Hallo Welt sagen.
default
{
    //  touch_start wird beim berühren ausgeführt und alles was sich in den {} Klammern befindet ist dein Source Code.
    touch_start(integer total_number)
       {
        // Hallo Welt, Inworld nach anklicken sagen.
        llSay(0,"Hallo Welt");
        }
}
// Script Ende

Aufgabe: Tausche „llSay(0,"Hallo Welt");“ gegen andere Funktionen aus, das ; Semikolon ist das ende einer Zeile.
[Bild: attachment.php?aid=2009]
Antworten }
Thanks given by: Achim , Lukas Silberstein
#6
Totgeglaubte leben länger.
Ab Herbst wird es wieder Kurse geben.
Antworten }
Thanks given by: Achim , Lukas Silberstein , Otto vonOtter
#7
Also wenn jemand Interesse hat, AvSitter kann ich gern erklären...
---------
DarkWolf

Virtual Life Grid


Lebe dein Leben - lebe es, denn es ist Deins

Was zum nachdenken für SIM Betreiber

"Ist es Kunst - oder kann es weg?
(Zitat Josch Wolf)
Antworten }
Thanks given by: Lukas Silberstein
#8
Huhu Lukas,

jepp, das mit dem Sitzen können wir als erstes angehen, da gibt es einige Möglichkeiten ..
Besuch mich doch einfach mal inworld
HG: "s1.virtulife.de:8002: Puflax" ohne Leerzeichen

dann können wir besprechen, wann wie wo .. warum, wieso und weshalb Smile

Ganz liebe Grüße
Piper
Antworten }
Thanks given by: Lukas Silberstein
#9
Ich habe die Erfahrung gemacht, dass es sinnvoller ist, Neulinge einfach zu adden "schreib mich an wenn du Fragen hast" und dann kommt am nächsten Tag: "Wie lade ich Mesh hoch?"
Es ist nicht möglich, umfassende Anleitungen für jede erdenkliche Frage abzuliefern. Ich habe zum Beispiel gerade das Problem, das ich keinen Gruppen mehr beitreten kann, weil ich aus den alten nicht herauskomme ohne manuelle Hilfe der Grideigentümer. Dieses Problem war so nicht vorhersehbar, als man das Hypergrid erfand.
Will sagen, es wird immer irgendetwas Neues geben, das plötzlich zum Problem mutiert, aber irgendwer hat dann eine Idee. Der Nachteil ist natürlich: Wenn ich mich als derjenige präsentiere, der immer eine Antwort hat oder jemanden kennt, der eine Antwort hat, ist das viel arbeitsintensiver als ein Kurs und im schlimmsten Fall bin ich den ganzen Tag nur noch damit beschäftigt, Newbies die Schuhe anzuziehen. Aber wenn ich morgen einen Kurs machen würde zum Thema: "Wie ziehe ich meine Schuhe richtig an?", würde keiner kommen. Ich würde in derselben Zeit aber 3 IMs kriegen: "Deine Schuhe sind scheiße, meine Füße gucken raus!"
So sind die Menschen eben, was soll man machen.
Ich will ja niemandem den Wind aus den Segeln nehmen, aber das sind meine 2 cents.

LG, Otto
Ich habe noch nie im Leben etwas Gescheites gesagt und bin zu eitel, andere zu zitieren.

Antworten }
Thanks given by:
#10
Hallo Otto,

2 Cent sind immer noch besser wie kein Feedback. Als ich in Opensim damals angefangen habe, konnte ich mich nicht einmal ankleiden.

Nur durch die Hilfe und Unterstützung eines ganz lieben Menschen habe ich gelernt Dinge zu verstehen. Angefangen habe ich also mit einem Wissen das = 0 war.

Ohne einen Mentor oder ein Gespräch wie man was macht, wäre ich damals wieder gegangen. Ich bin also heute immer noch sehr dankbar für all das was ich an Hilfe und Unterstützung bekommen habe.

Wäre es dieser Person damals egal gewesen wie ich meine Socken anziehe, hätte die Gemeide OPENSIM heute mal wieder einen User weniger.

Es ist eine Frage der persönlichen Einstellung und des allgemeinen menschlichen Charakters,
wie man dem anderen Personen gegenüber tritt.

Unsere eigenen Erfahrungen zeigen, dass Menschen zu allem fähig sind und das so wohl im positiven als auch im negativen Sinne.

Es wird immer Menschen geben die nur die Hand aufhalten, im Verborgenen bleiben und das aufgesaugte fremde Wissen aus Egoismus mit niemanden teilen.

Deine Aufgabe ist es zu unterscheiden, wer Hilfe bekommt oder auch nicht!

Jedem eine Chance zu geben zeigt Charakter und trenne dich von Menschen die vorne freundlich und nett sind aber hinter dem Rücken die schmutzige Zunge wetzen.

Ich weiß, dass das schwierig ist aber die Zeit ist auf deiner Seite.

Gib bitte diese 2 Cent den Leuten die Dir nicht gut tun.

LG, Lukas
Antworten }
Thanks given by:


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 2 Gast/Gäste