Unsere Community beeindruckt immer wieder mit cleveren, kreativen und einfach nur lustigen Konstruktionen – und diese hier könnte den Vogel (oder besser gesagt den Block) abschießen. Vor kurzem haben wir darüber gesprochen, dass Stream Deck immer mehr Einzug hält: mit Stream Deck-Modulen und Virtual Stream Deck auf Ihrem Computer. Und jetzt? Jetzt gibt es Stream Deck auch in Minecraft.
Vor etwa einem Monat hat ein Community-Spezialist von Elgato auf dem Twitter-Account von Elgato einen Minecraft-Entwurf eines Stream Decks mit 15 Tasten gepostet. Von dem Geist der freundschaftlichen Überbietung gepackt, begann ich zu überlegen, wie ich dieses Konzept in die Tat umsetzen könnte. Das Ergebnis ist zwar bei weitem nicht perfekt und neigt dazu, kaputtzugehen, wenn man es nur falsch ansieht, aber ich bin mehr als zufrieden damit!
Diese Version wird von einem Virtual Stream Deck mit sechs Tasten angetrieben, das heimlich auf meinem anderen Monitor versteckt ist. Ein sehr hackiges Node.js-Skript übernimmt die schwierigen Aufgaben, die SD-Tasten entsprechend den im Spiel aktivierten Funktionen zu drücken und die VSD-Anzeige in etwas umzuwandeln, das in Minecraft dargestellt werden kann.
Auf der Minecraft-Seite ist das verwendete Redstone außerordentlich einfach. Hinter dem Bildschirm überwacht jeder Knopf mithilfe eines Paares kalibrierter Skulk-Sensoren (Sound-Sensoren im Spiel) Eingabeereignisse, bei denen es sich in diesem Fall entweder um Schneebälle handelt, die auf den Knopf fallen (Signalstärke 2), oder um das Geräusch einer explodierenden Windladung (Signalstärke 15). Jedes Paar führt zu einem einzelnen Befehlsblock, der bei Auslösung 1 bis 8 Leerzeichen in den Chat des Spiels einfügt. Die Seiten-vor-/zurück-Tasten an den Seiten verfügen über eine kleine zusätzliche Schaltung, die die Anzeigeleuchten steuert, ansonsten funktionieren sie jedoch identisch.
Der Großteil der Magie geschieht in dem benutzerdefinierten Node.js-Skript, das ich für dieses Projekt geschrieben habe. Beim ersten Start des Programms erhalte ich einige spezielle Informationen, mit denen ich entweder ein Virtual Stream Deck (VSD)-Fenster oder das Minecraft-Spielfenster auswählen kann, und dann auch die Koordinaten des VSD-Fensters. Sobald alle Einstellungen vorgenommen sind, laufen zwei Schleifen parallel: Eingabe und Anzeige.
Die Eingabe-Hälfte des Programms ist einfacher zu verstehen. Immer wenn Minecraft läuft, speichert es die wichtigsten Ereignisse in einer Textdatei mit dem passenden Namen "latest.log". Wichtig ist, dass diese Logdatei auch alle im Chat empfangenen Nachrichten enthält, was bedeutet, dass wir mit ein wenig cleverem Code nur die Logeinträge anzeigen können, die unsere Nachrichten mit nur Leerzeichen enthalten. Wenn eine solche Nachricht eintrifft, zählen wir die Anzahl der Leerzeichen und bestimmen anhand dieser, welche Taste gedrückt werden muss. Ich habe die Tasten von oben nach unten und von links nach rechts angeordnet (es gibt auch zwei zusätzliche Tasten für "Seite zurück" und "Seite vor"). Sobald wir die Schaltfläche ausgewählt haben, verwende ich eine spezielle Desktop-Automatisierungsbibliothek, um die Maus sehr schnell aus dem Minecraft-Fenster zu bewegen, auf die entsprechende Schaltfläche auf dem Virtual Stream Deck zu klicken, das alles steuert, und sie wieder zur Steuerung von Minecraft zurückzubringen (Sie müssen F3+P drücken, damit dies funktioniert; andernfalls wird das Spiel angehalten, wenn es den Fokus verliert). Wenn Sie die Maus während dieser Vorgänge nicht bewegen, funktioniert das Ganze ziemlich nahtlos! Wenn ja, dann geht es meistens furchtbar kaputt, lol.
Das funktioniert gut für das Drücken von Tasten, aber das wirklich Geniale am Stream Deck ist, dass man unter jeder Taste ein programmierbares Display hat. Wie lässt sich das in Minecraft umsetzen? Die Lösung, für die ich mich entschieden habe, ist vielleicht nicht die eleganteste, aber sie funktioniert, und darauf kommt es mir an! Viermal pro Sekunde macht das Skript einen Screenshot des VSD-Fensters. Unter der Annahme, dass die Tasten eine bestimmte Größe haben (die Standardgröße von 52x52 px funktioniert recht gut), schneidet es den Screenshot auf die Größe einer Taste zu und passt ihn dann auf 8x8 px an. Anschließend wird jedes Pixel im zugeschnittenen Bild durch einen cleveren Code überprüft, um den Block zu ermitteln, dessen Farbe am ehesten übereinstimmt. (Vielen Dank an kult0922 auf GitHub, der eine Website erstellt hat, die Bilder in Minecraft-Pixelkunst umwandelt, und den Quellcode dafür veröffentlicht hat! Ohne diesen Code hätte die Umsetzung dieses Projekts wahrscheinlich deutlich länger gedauert). Wiederholen Sie diesen Vorgang einfach für die anderen fünf Schaltflächen.
Die Liste der benötigten Blöcke zu erstellen ist ein guter Anfang, aber sie ins Spiel zu bringen ist noch ein Problem. Wenn du Chat-Befehle ausführen kannst, könntest du den Befehl /setblock mehrmals verwenden, um jeden Pixel einzeln zu aktualisieren, aber das ist sehr langsam und ineffizient. Ein besseres Werkzeug wäre der Strukturblock, ein Werkzeug im Vanilla-Spiel, mit dem Sie unter anderem vorgefertigte "Schemas" von Strukturen in die Spielwelt einfügen können. Ich habe herausgefunden, wie ich mit meinem Skript Schemata so erstellen kann, wie Minecraft sie erwartet, und sobald sie im Schemata-Ordner gespeichert sind, kann ich einen Chat-Befehl ausführen, der den Strukturblock im Spiel anweist, das richtige Schema für den aktuellen Zustand des Bildschirms zu suchen (jeder einzelne Frame muss einen eindeutigen Dateinamen haben, was die Sache etwas kompliziert macht). Sobald das erledigt ist, muss nur noch ein kleiner Redstone-Schaltkreis den aktiven Entwurf wiederholt in die Welt einfügen, und schon hat man einen funktionierenden Bildschirm!
Am Ende des Tages haben Sie ein weitgehend funktionsfähiges Stream Deck – allerdings in Minecraft! Mein Skript ist zwar in erster Linie für die Ausführung auf meinem Rechner konzipiert, aber ich sehe keinen Grund, warum es nicht verbessert werden könnte, um auch auf Multiplayer-Servern zu laufen! Der ursprüngliche Prototyp dieses Projekts lief tatsächlich auf einer Instanz von Stream Deck Mobile unter Windows Subsystem für Android, was technisch gesehen bedeutet, dass man alles auf einem völlig separaten Gerät oder in einer virtuellen Maschine ausführen könnte. Ob das eine gute Idee ist, ist natürlich eine ganz andere Frage ... aber lassen Sie sich von Bedenken wie "Praktikabilität" nicht davon abhalten, damit herumzuspielen :)
Interessante Tatsache: Das Stream Deck-Logo oben wurde aus 24 Karten erstellt. Die Struktur des Logos befindet sich im End-Void, ist jedoch so groß, dass es sich fast von einem Ende des Void zum anderen erstreckt.
Weitere Arbeiten von TheAppleFreak finden Sie hier:
PRODUKTE IM ARTIKEL