Preloader
Auf dieser Website werden Daten wie z.B. Cookies gespeichert, um wichtige Funktionen der Website, einschließlich Analysen, Marketingfunktionen und Personalisierung zu ermöglichen. Sie können Ihre Einstellungen jederzeit ändern oder die Standardeinstellungen akzeptieren.
Cookie Hinweise
Datenschutzregelung
10.06.2024

Ökologische Jagdschule - Online Schulung Editor

Lektionen

WertArtBeschreibungBeispiel
initialSituationTextAusgangssituation der Waffe Waffe steht im Gewehrhalter oder liegt auf dem Tisch, sie kann geöffnet oder geschlossen sein
taskTextAufgabentitelDrilling zum Handhabungstisch bringen
initialStateIdWaffenzustand vor der Schulung. Diese Ids werden in der Model JSON definiert (states)unlocked
introVideoTextIntro Video vor der Prüfung intro.mp4
successVideoTextAbschluss Video nach erfolgreicher Prüfung example2.mp4
actionsObjektsammlungEnthält Objekte für die einzelnen Lektionsschritte, die Reihenfolge der Objekte ist auch die Reihenfolge des korrekten Schulungsablaufs. 
dummysObjektsammlungDummy-Hotspots, um den Schüler*innen eine falsche Fährte zu legen 

actions-Objekte

Objektsammlung - enthält Objekte für die einzelnen Lektionsschritte, die Reihenfolge der Objekte ist auch die Reihenfolge des korrekten Schulungsablaufs.

WertArtBeschreibungBeispiel
studentActionTextFalls kein Hotspot notwendig ist, muss eine studentAction definiert werden. Diese Anweisung wird als Aufgabenbox oben links dargestellt Ansage: Ich führe eine Sicherheitsüberprüfung durch
hotspotIdIdHotspots sind die anklickbaren Punkte an der Waffe. Diese Ids werden in der Hotspots JSON definiertswitchSafety
animationIdIdAnimations Id für den Befehl der Waffe eine Animation auszuführenA1_Secure
icon (optional)IdHier kann ein Icon in den Hotspot Punkt eingefügt werden. Pfeilausrichtung richtet sich nach der Position nach dem Neuladen des Modells.
Verfügbare Icons: arrow-up, arrow-right, arrow-down, arrow-left
arrow-up
showHotspotId (optional)Id

⚠️ Achtung
Es wird eine hotspotId erwartet. 

Die angegebene Hotspot-ID ist vor dem Schulung verborgen und wird erst sichtbar, wenn die im Objekt angegebene Hotspot-ID angeklickt wird.

BarrelControl
hideHotspotId (optional)Id

⚠️ Achtung
Es wird eine hotspotId erwartet. 

Blendet die angegebene hotspotId aus.

ProofMarkControl
solutionVid (optional)TextBei Falscher Antwort kann ein Video hinterlegt werden für die richtige Ausführungexample2.mp4
interruption (optional)BoolNach dem Klick auf diese Action wird ein Unterbrechungsvideo gezeigtNur true ist erlaubt
ignoreOrderBool

true => Nach dem Klick auf diese Aktion wird die richtige Reihenfolge außer Kraft gesetzt und sucht nach dem nächsten ignoreOrder: false in der Aktion Liste. Die Aktionen innerhalb von ignoreOrder: true und ignoreOrder: false ist die Reihenfolge egal. 

false => Diese Aktion setzt die richtige Reihenfolge wieder in Kraft.

 

dummys-Objekte

Objektsammlung - Dummy-Hotspots, um den Schüler*innen eine falsche Fährte zu legen

WertArtBeschreibungBeispiel
icon (optional)IdHier kann ein Icon in den Hotspot Punkt eingefügt werden. Pfeilausrichtung richtet sich nach der Position nach dem Neuladen des Modells.
Verfügbare Icons: arrow-up, arrow-right, arrow-down, arrow-left
arrow-up
hotspotIdIdHotspots sind die anklickbaren Punkte an der Waffe. Diese Ids werden in der Hotspots JSON definierttriggerLeft_Right
studentActionTextFalls kein Hotspot notwendig ist, muss eine studentAction definiert werden. Diese Anweisung wird als Aufgabenbox oben links dargestellt Ansage: Ich führe eine Sicherheitsüberprüfung durch

Beispiel Lektion

{
  "initialSituation": "Waffe steht im Gewehrhalter oder liegt auf dem Tisch, sie kann geöffnet oder geschlossen sein",
  "task": "Drilling zum Handhabungstisch bringen",
  "initialState": "unlocked",
  "actions": [
    {
      "studentAction": "Ansage: 'Ich führe eine Sicherheitsüberprüfung durch'"
    },
    {
      "icon": "arrow-up",
      "hotspotId": "switchSafety",
      "animationId": "A1_Secure"
    },
    {
      "hotspotId": "switchWeaponClose",
      "animationId": "weapon_open",
      "showHotspotId": "BarrelControl"
    },
    {
      "icon": "arrow-left",
      "hotspotId": "triggerLeft_Left",
      "animationId": "A1_trigger_control"
    },
    {
      "hotspotId": "BarrelControl"
    },
    {
      "hotspotId": "switchWeaponClose",
      "animationId": "weapon_close",
      "hideHotspotId": "BarrelControl"
    },
    {
      "hotspotId": "barellTilt",
      "animationId": "A1_Remove_forearm"
    },
    {
      "hotspotId": "switchWeaponClose",
      "animationId": "A1_Loosen_barrels",
      "showHotspotId": "ProofMarkControl"
    },
    {
      "hotspotId": "ProofMarkControl"
    },
    {
      "hotspotId": "switchWeaponClose",
      "animationId": "A1_Insert_barrels",
      "hideHotspotId": "ProofMarkControl"
    },
    {
      "hotspotId": "barellTilt",
      "animationId": "A1_Insert_forearm"
    },
    {
      "hotspotId": "switchWeaponClose",
      "animationId": "weapon_open"
    },
    { "studentAction": "Ansage: 'Sicherheitsüberprüfung ist durchgeführt'" }
  ],
  "dummys": [
    { "icon": "arrow-right", "hotspotId": "triggerLeft_Right" },
    { "icon": "arrow-left", "hotspotId": "triggerRight" },
    { "hotspotId": "switchShotguns" }
  ]
}

Model

WertArtBeschreibungStandardwerteBeispiel
nameText

Dateiname der Waffe

⚠️ Achtung
Es werden nur GLB-Dateien erwartet.

 drilling.glb
pathTextPfad zur oben angegebenen GLB-Dateimodels/models_v2/
configObjektHier können die Configs für <model-viewer> überschrieben werden
Zum Beispiel camera-orbit, camera-target, shadow-intensity, field-of-view, usw.
"config": {
    "touch-action": "pan-y",
    "interaction-prompt": "none",
    "shadow-intensity": "1",
    "camera-controls": "",
    "camera-orbit": "-2.45rad 1.5rad 2m",
    "camera-target": "0 0.4m 0m",
    "max-field-of-view": "45deg",
    "min-field-of-view": "25deg",
    "field-of-view": "45deg",
    "interpolation-decay": "80",
    "min-camera-orbit": "auto auto 10%",
    "zoom-sensitivity": "1",
  },
"config": {
    "camera-orbit": "-3.13...21663052387m",
    "camera-target:": "0.325...354631630188m"
  },
ididid des <model-viewer>-Elements (hat bisher keine Auswirkungen)modelcustom-model-id
altTextSEO Alt-Tag (Mehr infos dazu hier)  
statesArrayBeinhaltet die States-Objekte 
"states": [
    { 
         "unlocked": {
    	      "animationStart": "A6_secure"
    	  } 
    },

Anfangszustände hinzufügen

Am besten kann man den letzten State Block duplizieren

Anfangszustände Kategorien

Es gibt zwei Kategorien: animationStart und animationEnd. Diese werden nach dem Laden des Modells ausgeführt.

  • Mit animationStart wird die Animation auf den Anfang der Animation gesetzt.
  • Bei animationEnd wird die Animation bis zum Ende ausgeführt.

Beispiel Model

{
  "name": "drilling_animiert_glb_-__einzelanimationen_v2.glb",
  "path": "",
  "config": {
    "camera-orbit": "-3.1350825101286133rad 1.6454213859339055rad 3.1963021663052387m",
    "camera-target:": "0.3254594848718852m 0.4153378850415097m -0.05687354631630188m"
  },
  "id": "",
  "alt": "",
  "states": [
    { "unlocked": { "animationStart": "A6_secure" } },
    { "jagdbereitmachen": { "animationStart": "A3_insert_ammo" } },
    { "weaponOpen": { "animationEnd": "weapon_open" } },
    { "weaponCloseSafe": { "animationEnd": "A1_weapon_close" } },
    { "weaponCloseSafe_rifle": { "animationEnd": "A2_weapon_close" } }
  ]
}

Hotspots

Hotspots werden in der Sammlung "hotspots" hinzugefügt und können beliebig benannt werden. Als Wert wird ein Objekt mit folgenden möglichen Attributen angegeben

WertArtBeschreibung
surfaceText


Surface Points kann mithilfe dem Dubug-Tool ermittelt werden. Link zur Anleitung.

Beispiel:
15 0 910 686 912 0.651 0.072 0.276

coordObjekt

Koordinaten, betehend aus:

{ "x": [X-WERT], "y": [Y-WERT], "z": [Z-WERT] }

Beispiel:

{ "x": -0.05463, "y": 0.17111, "z": 0.00939 }
cameraRideObjekt

Führt eine Kamerafahrt mit einem Klick auf den Triggerpunkt aus.
cameraRide besteht aus:

{
   "orbit": "[ORBIT-WERT]",
   "target": "[TARGET-WERT]"
}

Die Daten bekommen Sie im Debug Mode. Link zur Anleitung.

Beispiel:

{
   "orbit": "-3.1577668006758612rad 2.7418967062928736rad 0.06503875715702566m",
   "target": "0.0024657398701924795m 0.18032149576194745m -0.11092496650313502m"
}

Unterschiede: Oberflächenpunkten (Surface Points) und Koordinaten

Surface Points:

  • Erklärung: Surface Points beziehen sich auf Punkte oder Positionen auf der Oberfläche eines 3D-Modells. In der Grafik oder Webentwicklung sind dies die Orte, an denen etwas auf der sichtbaren Oberfläche eines Objekts platziert wird.
  • Beispiel: Wenn Sie ein 3D-Modell eines Autos haben, könnten Surface Points die Positionen sein, an denen Sie Logos oder Aufkleber auf dem Auto platzieren.
  • Hinweis: Bei Animationen werden die Surface Points mitbewegt, was bedeutet, dass sie sich wie Sticker verhalten. Wenn das 3D-Modell animiert wird, bewegen sich die Surface Points entsprechend, sodass die platzierten Elemente auf der Oberfläche des Modells den Animationen folgen.

coord (Koordinaten):

  • Erklärung: Koordinaten (coord) sind mathematische Werte, die die Position eines Punktes im Raum des 3D-Modells beschreiben. Sie haben keine direkten Verbindungen zum Modell selbst, sondern definieren einfach die Position im dreidimensionalen Raum.
  • Beispiel: Wenn Sie ein Objekt auf einer Webseite platzieren möchten, können Sie Koordinaten wie "coord": { "x": 0.00325, "y": 0.16625, "z": -0.03972 } verwenden. Diese Koordinaten legen die genaue Position im Raum des 3D-Modells fest, relativ zu einem Ursprungspunkt.

Zusammengefasst: Surface Points sind spezifische Positionen auf der sichtbaren Oberfläche eines 3D-Modells, und bei Animationen verhalten sie sich wie Sticker, indem sie sich entsprechend der Bewegung des Modells mitbewegen. Koordinaten (coord) beschreiben die Position im Raum des 3D-Modells und haben keine direkten Verbindungen zum Modell selbst.

Debug Tools

Debug Tools aktivieren

Hinter der URL vom Schulungsprogramm ein &debug=1 einfügen.

Im Debug-Modus erhalten Sie viele zusätzliche und nützliche Informationen. Es wird angezeigt, wenn Hotspots nicht angezeigt werden können. Dazu können HotspotIds ermittelt, Surface Points bestimmt, Camera Orbit und Camera Target für Kamerafahrten ausgegeben werden. Außerdem wird angezeigt, welche Animation gerade gestartet wurde und welche gerade beendet wird.

HotspotIds und Camera Daten anzeigen

  • HotspotId: 
    Fahren Sie mit der Maus über die Triggerpunkte und die entsprechende HotspotId wird unten links angezeigt.
  • Camera Orbit und Camera Target:  
    Werden beim Drehen der Kamera aktualisiert. Diese Daten der aktuellen Ansicht können in cameraRide in Hotspots für Kamerafahrten eingegeben werden.
     

Surface Points erfassen

Wenn man im Programm die STRG-Taste gedrückt hält und an die gewünschte Stelle klickt, erhält man den Surface Point für die Hotspot Position an der Waffe.

Aufgaben manuell starten

Hinter der URL vom Schulungsprogramm ein &lesson=[LEKTION-NUMMER] einfügen.

Hardware Performance Tests

Test 1 - FPS

Link: https://threejs.org/examples/webgl_gpgpu_birds.html

Bei dieser Seite, sollte der Kunde im besten Fall um die 60 FPS haben. 
Mit der Maus kann der Kunde die Vögel verscheuchen, das stresst die Hardware noch etwas.

Test 2 - WebGL

Link: https://webglreport.com/?v=1

Dieser Test prüft allgemein, ob der Browser 3D-Modelle anzeigen und verarbeiten kann. 
Es reicht aus, wenn bei WebGL 1 die Meldung “This browser supports WebGL 1” angezeigt wird.