Interaktion mit Gegenständen

  • #1, by DarkLioraSunday, 31. January 2016, 21:02 8 years ago
    Hallo liebe Visionairer,
    für ein Uni-Projekt habe ich mich entschlossen, mich in die Engine hier einzuarbeiten. Bisher ging auch alles recht einfach. Doch jetzt steh ich vor einem kleinen Problem.
    Ich habe Gegenstände, Kulissenobjekte, Inventar, etc.
    Natürlich würde ich jetzt gerne Gegenstände aus dem Inventar miteinander kombinieren, aber auch mit Kulissenobjekten. Hier scheitert es aber. Ich denke, dass der Fehler daran liegt, dass die Inventargegenstände nicht am Mauszeiger "kleben" bleiben. Ansonsten habe ich Aktionen, Befehle etc alles eingestellt.
    Es wäre supoer, wenn ihr mir schnell helfen könntet, weil die Abgabe näher rückt ^^
    P.S.: Natürlich habe ich mir bereits sämtliche Tutorials angeschaut und durchgelesen, diese konnten mir aber leider nicht weiterhelfen.
    Danke euch!

    Newbie

    5 Posts


  • #2, by sebastianSunday, 31. January 2016, 21:28 8 years ago
    Hallo DarkLiora,

    im Grunde gibt es zwei Verfahren, die du anwenden kannst:
    Drag&Drop, sprich Items werden beim Kombinieren/Benutzen auf ein anderes Objekt/Item gezogen
    oder
    das ganze ohne Dragging, sondern reines "zusammen klicken" eines Items mit einem anderen Item/Objekt durch eine spezielle Aktion, welches man dann nur durch den Aktionstext erkennt.

    Da ich aus deinem Text entnehme, dass du Drag&Drop versuchen möchtest versuche folgendes:


    Spieleinstellungen:
    Aktiviere "allow dragging of items from inventory" (zweiter Haken auf der linken Seite)

    Bei deinen Interface Buttons:
    Beim Command, welcher das Kombinieren auslösen soll, muss in den Command properties der Haken bei "Items can be dragged with this command" angehakt sein. Sobald dieser Command aktiv ist und dann ein Item angewählt wird, ersetzt das Item den Cursor. Ein Rechtsklick entfernt es wieder.

    Bei Items/Kullissenobjekten:
    Hier die "Item dropped" Actionen auswählen, um Item X anzuwenden.
    Bei Items kannst du auch "Item dropped <-> " nutzen, um die Aktion auch zu starten, wenn das Item selbst auf das andere anzuwenden. Du brauchst also nicht bestimmte Dinge doppelt programmieren.


    Ich hoffe das hilft erstmal weiter smile

    Grüße
    Sebastian

    Thread Captain

    2346 Posts

  • #3, by MachtnixSunday, 31. January 2016, 21:48 8 years ago
    Hallo.

    Erstmal zum allgemeinen Verständnis: Gegenstände innerhalb des Inventars und mit Kulissenobjekten lassen sich durchaus kombinieren. ABER:
    Nur die Inventargegenstände bleiben am Mauszeiger "kleben", wenn du "ziehen mit der Maus" aktivierst (das ist in dem Menü, in dem du auch festlegst, ob z.B. nur mit Objekten oder nur mit Personen interagiert werden soll.). Kulissenobjekte lassen sich zwar anklicken, aber nicht "ziehen". Nur mit viel Aufwand. Ein Item kannst du also auf ein anderes Item oder auf ein Kulissenobjekt ziehen, aber nicht andersrum.

    Aber ich vermute mal, die "doppelten Objekte" bei Visionaire erscheinen noch nicht ganz logisch. Mir zu Anfang auch nicht.

    Du hast auf der Kulisse ein Objekt, z.B. einen Koffer. Den legst du wie ein Kulissenobjekt an, das heißt mit Position und aktivem Bereich und so weiter. Möchte der Charakter den Koffer nun in sein Inventar einfügen, so muss einmal eine Aktion angelegt werden, die den Koffer auf der Kulisse verschwinden lässt (denn er soll ja danach weg sein) und zweitens brauchst du einen zweiten Koffer, der im Ordner "Gegenstände" liegen muss und der in das Inventar eingefügt wird und dort dann auftaucht. Das ist "Gegenstände zum Charakter hinzufügen". Bei dieser Aktion werden nur diejenigen Gegenstände aufgelistet, die in "Gegenstände" liegen. Da das Inventar zumeist kleinere Taschen besitzt, benötigst du also ein identisches Kofferbild, nur etwas kleiner. Der Koffer auf der Kulisse nützt dir nichts.

    Im Grunde sind beide Aktionen komplett unabhängig voneinander. Das heißt, du kannst Gegenstände als Item hinzufügen, die auf der Kulisse gar nicht existieren. Oder du nimmst einen Gegenstand ins Inventar auf, er verschwindet aber gar nicht von der Kulisse (warum auch immer, z.B. wenn du unendliche Ressourcen vorgaukeln möchtest und ein Coladosenspender z.B. nie alle wird). Weil es eben in Wahrheit zwei verschiedene Objekte sind. Nur durch die entsprechenden "Lege-Gegenstand-ab-" und "Benutze"-Aktionen entscheidest du, was mit den Dingen passiert. Deswegen gibt es dieses "Mit-der-Maus-ziehen" nicht bei Kulissenobjekten. Diese werden durch ihre Positionen fixiert und nur bei Animationen kann man einiges tricksen.

    Normalerweise klickt man das Kulissenobjekt an und der Charakter packt es in sein Inventar. Hat er zwei Gegenstände im Inventar, so kannst du diese auch innerhalb des Inventars kombinieren, indem du dir für diese Objekte sinnvolle Aktionen überlegst. Dann kann man "benutze Koffer" mit z.B. "Reiseaufkleber" kombinieren.

    Um aber aus zwei Objekten eines zu machen, muss wieder getrickst werden; genau genommen löschst du nämlich eines und ersetzt das andere durch das Resultatobjekt. Das heißt, der Aufkleber z.B. wird gelöscht und der Koffer OHNE wird mit einem Bild eines Koffers MIT Aufkleber ersetzt. Du brauchst also schon drei Gegenstände: Koffer OHNE, Koffer MIT und Aufkleber alleine. Ist alles logisch, aber langwierig...

    Das Thema ist irre vielseitig. Ich hoffe, ich habe das einigermaßen rübergebracht und ich krieg jetzt keine Entwickler-Schelte, weil ich was falsch verstanden habe... ;-)

    Ich empfehle das etwas ältere Tutorial "Erste Schritte" von Einzelkämpfer", das auch in Deutsch ist.

    Machtnix

    Thread Captain

    1097 Posts

  • #4, by DarkLioraSunday, 31. January 2016, 23:27 8 years ago
    Vielen Dank erst einmal für eure Antworten.

    Danke Machtnix, dass du dir soviel Mühe mit dem text und erklären gegeben hast, aber diese Sachen sitzen ^^ Da ist alles so angelegt wie es soll und alle Items (sofern sie verwendet/benutzt/verändert werden) auch noch einmal extra angelegt und haben eigene Grafiken.

    Nun zu dir Sebastian.
    Haken etc sind alle gesetzt. Aber im Inventar habe ich die Eigenschaften auf "Platzhalter für Gegenstände" gesetzt, da ich diese ansonsten nicht im Inventar sehe. Das heißt, dass der Teil für "kann man ziehen" ausgegraut ist.
    Ob jetzt Drag&Drop oder mit Befehlen ist mir eigentlich egal, ich möchte nur das es funktioniert, da es primär um die Spielerführung in diesem Level geht.
    Ich habe in meiner Szene z.Bsp. einen Eimer und ein Seil als Kulissenobjekte. Beide sind auch als Gegenstände vorhanden. Bei "Nimm" nimmt er die gegenstände in das Inventar und setzt die Sichtbarkeit der Kulissenobjekte auf 0%. Sowei so gut. Nun möchte ich im Inventar Eimer und Seil kombinieren , um meinen Gegenstand "Eimer mit Seil" zu erhalten (Gegenstand ist natürlich mit passender Grafik vorhanden).
    Ich kann zwar über die Items mit meinem Mauszeiger fahren und er zeigt an, dass da was ist, aber ich kann eben nicht mit den Sachen interagieren.
    Ich habe bereits sowohl Aktionen bei den Gegenständen, als auch bei den Kulissenobjekten angelegt und versucht es so zu regeln, aber ... nada. Nichts passiert.
    Deine "Item drop" sachen habe ich auch schon versucht. roll

    LG
    DarkLiora

    Newbie

    5 Posts

  • #5, by sebastianMonday, 01. February 2016, 00:08 8 years ago
    Welchen befehl möchtest du zum kombinieren nutzen? Dort musst du den haken"kann man ziehen"setzen.
    Ich habe dies bei meiner normalen linksklick aktion integriert, sprich sobald ich das item anklicke wird es zum kombinieren ausgewählt

    Thread Captain

    2346 Posts

  • #6, by DarkLioraMonday, 01. February 2016, 00:16 8 years ago
    Bei dem Befehl " benutze ". Da ist auch der haken. Klappt dennoch nicht.
    Ich hatte auch einmal eingestellt dass, wenn ich links auf den inventargegenstand klicke, direkt der Befehl benutze aktiv wird. Ich kann dann benutze "eimer" anklicken aber hinterher nicht auf seil. Also da passiert nichts, lediglich der nutzbare Befehl wird angezeigt .


    Für die Erstellung des Interfaces habe ich mit dem erste Schritte tutorial gearbeitet.

    Newbie

    5 Posts

  • #7, by sebastianMonday, 01. February 2016, 07:27 8 years ago
    Kannst du mal ein paar screenshots machen?

    Thread Captain

    2346 Posts

  • #8, by georgmoensMonday, 01. February 2016, 09:18 8 years ago
    Also du hast einen Schalter "benutze" angelegt. Dieser Schalter hat im Reiter "Schaltereigenschaften" den Haken bei "Platzhalter für Gegenstände". Im Reiter "Befehlseigenschaften" hast du den Namen "Benutze" hingeschrieben und den Cursor für benutzen ausgewählt. Dann hast du den Haken bei "Gegenstände können mit diesem Befehl gezogen werden" gemacht. Schließlich hast du den Punkt bei "Objekte und Personen" gesetzt.Schließlich noch den Punkt bei "kombinierter Befehl" und das Verbindungswort "mit" eingetragen.
    Wenn das alles so gemacht wurde, muss es funktionieren, so ist es bei mir auch. Ich habe auch das Interface mit dem "erste Schritte tutorial" erstellt.
    Ach ja, und wenn du dann willst, dass mit den Gegenständen im Inventar wirklich was geschieht, dass du also z.B. "Benutze Säge mit Holz" machst und das Holz soll anschließend in 2 Stücke gesägt sein, dann musst du natürlich noch bei dem Gegenstand Holz die Aktion "Säge abgelegt auf Holz" machen usw. usw., aber das wäre jetzt zunächst mal zuviel, weil ich nicht weiß, wo genau dein Problem ist.

    Newbie

    87 Posts

  • #9, by DarkLioraMonday, 01. February 2016, 19:56 8 years ago
    Ich habe heute die exakte Version von gestern gestartet, um mich dem Problem wieder zu widmen. Und ich fühle mich völlig ****, es hat funktioniert, beim ersten Mal, alles so wie es sollte. Ich habe an den Einstellungen nichts verändert.
    Ich danke euch trotzdem für eure Antworten! smile

    Newbie

    5 Posts

  • #10, by MachtnixTuesday, 02. February 2016, 01:16 8 years ago
    Hi,
    wenn du z.B. zwei Gegenstände im Inventar hast, z.B. ein Messer und einen Apfel, und du möchtest das Messer auf den Apfel anwenden, gehst du in die Aktion, die im Gegenstand "Messer" liegt, wählst dort "Gegenstand abgelegt (Auswirkung nur auf diesen Gegenstand)" und wählst als Gegenstand im Eingabefeld den Apfel. Als Aktion trägst du irgendwas ein. Zum Testen nehme ich grundsätzlich erstmal nur eine Textausgabe, damit ich weiß, dass die Logik funktioniert. Das bedeutet: ziehst du im Inventar das Messer auf den Apfel, kommt die Aktion z.B. "Apfel schneiden". Ziehst du den Apfel auf das Messer, geschieht nichts (oder das, was in den Kommentargruppen festgelegt ist. Bei Benutzen steht dann vielleicht zufallsgesteuert, je nachdem, was man angelegt hat: "Geht nicht" oder "Das kann ich nicht benutzen"). Das ist die einseitige Ausführungsart.

    Dann gibt es diesen Befehl nochmal in der Varaiante "Anwendung auf beide Gegenstände". Dann ist es egal, ob du das Messer auf den Apfel ziehst oder den Apfel auf das Messer. Ist beide Mal dasselbe Resultat (dieselbe Aktion).

    Willst du mit einem Charakter interagieren, musst du in den Charakteraktionen z.B. "Apfel abgelegt (sofort)" anlegen. Dann ziehst du den Apfel auf den Charakter und die Aktion startet. Soll das mit dem Spielcharakter auch möglich sein, muss in den Interfaceeinstellungen bei "Benutzen" die Option "eigene Person" aktiviert sein.

    Ich habe dann testweise einen Text ausgeben lassen (Schmeckt gut!) und danach den Gegenstand aus dem Inventar entfernt (Apfel ist aufgegessen).

    Mit Kulissenobjekten ist das genauso.

    Was ich bis jetzt noch nie hinbekommen habe, ist, dass das ausgestauschte Item an derselben Stelle im Inventar auftaucht wo sich vorher das alte Item befand. Mein angeschnittener Apfel wird auf eine andere, neue Position gelegt, der alte Apfel wird gelöscht und alles rückt einen Schritt weiter, wie bei der Hutmacher-Teaparty. Ich bin sicher, dass das auch irgendwie geht; ist eben nur ein Schönheitsfehler.

    Machtnix

    Thread Captain

    1097 Posts

  • #11, by sebastianTuesday, 02. February 2016, 07:34 8 years ago
    @machtnix
    Dafür gibts eim kleines lua script im wiki

    Thread Captain

    2346 Posts