How To

Minecraft ve Stream Deck Bir Arada: Tamamen İşlevsel Bir Redstone Yapısı

Last updated:

  Bu sayfa DeepL tarafından otomatik olarak çevrilmiştir. Switch to English

Topluluğumuz, akıllı, yaratıcı ve son derece eğlenceli yapımlarıyla her zaman hayranlık uyandırır. Bu yapım da en iyilerinden biri olabilir. Son zamanlarda, Stream Deck'in bilgisayarınızdaki Stream Deck Modülleri ve Sanal Stream Deck ile her zamankinden daha fazla yerde karşımıza çıktığından bahsediyorduk. Peki ya şimdi? Minecraft'ta da var.

İlham

Yaklaşık bir ay önce, bir Elgato topluluk uzmanı, Elgato Twitter hesabına 15 tuşlu bir Stream Deck'in Minecraft versiyonunu paylaştı. Samimi bir rekabet ruhuna kapılarak, bu konsepti nasıl gerçek bir işlevsel gerçekliğe dönüştürebileceğimi bulmaya başladım. Yaptığım şey hayal gücünün sınırlarını zorlasa da mükemmel değil ve yanlış bir şekilde bakarsanız kırılma eğilimi gösteriyor, ancak sonuçtan çok memnunum!

Bu yapı, diğer monitörümde gizlice saklanmış altı tuşlu bir Virtual Stream Deck tarafından destekleniyor. Node.js komut dosyası, oyunda etkinleştirilenlere göre SD düğmelerine basmanın zor kısımlarını hallediyor ve VSD ekranını Minecraft'ta gösterilebilecek bir şeye dönüştürüyor.

unnamed

Minecraft tarafında, kullanılan redstone son derece basittir. Ekranın arkasında, her düğme, giriş olaylarını izlemek için bir çift kalibre edilmiş sculk sensörü (oyun içi ses sensörleri) kullanır. Bu durumda, giriş olayları ya düğmeye düşen kartopları (sinyal gücü 2) ya da rüzgar şarjının patlama sesi (sinyal gücü 15) şeklindedir. Her çift, tetiklendiğinde oyun içi sohbete 1 ila 8 boşluk ekleyen tek bir komut bloğuna yönlendirir. Yan taraftaki sayfa geri/ileri düğmeleri de gösterge ışıklarını kontrol eden küçük bir ekstra devreye sahiptir, ancak bunun dışında aynı şekilde çalışır.

Özel komut dosyasında neler oluyor?

Sihirin büyük kısmı, bu proje için yazdığım özel Node.js komut dosyasında gerçekleşiyor. Programın ilk başlatılmasında, Virtual Stream Deck (VSD) penceresini veya Minecraft oyun penceresini seçmemi sağlayan bazı özel bilgiler alıyorum, ardından VSD penceresinin koordinatlarını da alıyorum. Tüm kurulum tamamlandıktan sonra, birbiriyle eş zamanlı olarak çalışan iki döngü var: giriş ve görüntüleme.

Programın giriş kısmı, ikisi arasında mantık yürütmesi daha kolay olanıdır. Minecraft her çalıştırıldığında, en önemli olayları latest.log adlı bir metin dosyasına kaydeder. Önemli olan, bu günlük dosyasının sohbette alınan tüm mesajları da içermesidir. Bu sayede, biraz akıllı kod yazarak sadece boşluklardan oluşan mesajları içeren günlük girişlerini görebiliriz. Böyle bir mesaj geldiğinde, boşluk sayısını sayar ve bunu hangi düğmeye basacağımızı belirlemek için kullanırız. Düğmeleri yukarıdan aşağıya, soldan sağa sıraladım (sayfa geri/ileri için iki ek düğme daha var). Düğmeyi seçtikten sonra, özel bir masaüstü otomasyon kütüphanesi kullanarak fareyi Minecraft penceresinden çok hızlı bir şekilde çıkarır, her şeyi çalıştıran Virtual Stream Deck'teki ilgili düğmeye tıklar ve fareyi Minecraft'ın kontrolüne geri döndürürüm (bunun çalışması için F3+P tuşlarına basmanız gerekir; aksi takdirde oyun odak noktasını kaybettiğinde duraklayacaktır). Bu hareketler gerçekleşirken fareyi hareket ettirmezseniz, oldukça sorunsuz bir şekilde çalışır! eğer öyleyse, korkunç bir şekilde kırılma eğilimindedir lol

Bu, düğmelere basmayı sorunsuz bir şekilde hallediyor, ancak Stream Deck'in asıl sihirli yanı, her tuşun altında programlanabilir bir ekranın bulunması. Bunu Minecraft'ta nasıl gösterebilirsiniz? Seçtiğim çözüm belki de en zarif çözüm değil, ama işe yarıyor ve benim için önemli olan da bu! Sкрипт saniyede dört kez VSD penceresinin ekran görüntüsünü alır. Düğmelerin belirli bir boyutta olduğunu varsayarsak (varsayılan boyut olan 52x52 px oldukça iyi çalışıyor), ekran görüntüsünü sadece bir düğmenin boyutuna kırpar, ardından 8x8 px boyutuna yeniden boyutlandırır. Bu işlem tamamlandığında, kırpılan görüntünün her pikselini inceler ve renklerine en yakın bloğu bulmak için akıllı bir kod çalıştırır. (Görüntüleri Minecraft piksel sanatına dönüştüren bir web sitesi oluşturan ve bunun kaynak kodunu yayınlayan GitHub'daki kult0922'ye çok teşekkürler! Bu kod olmasaydı, bu projeyi tamamlamak çok daha uzun sürerdi). Diğer beş düğme için de aynı işlemi tekrarlayın.

İhtiyacınız olan blokların listesini elde etmek iyi bir adımdır, ancak bunları oyuna aktarmak hala bir sorundur. Sohbet komutlarını çalıştırmanın bir yolu varsa, /setblock komutunu birden çok kez kullanarak her pikseli tek tek güncelleyebilirsiniz, ancak bu çok yavaş ve verimsiz bir yöntemdir. Daha iyi bir araç, vanilla oyunda bulunan ve diğer şeylerin yanı sıra önceden hazırlanmış yapı "şemalarını" oyun dünyasına yerleştirmenize izin veren Structure Block olacaktır. Minecraft'ın beklediği şekilde şemaları oluşturmak için komut dosyamı nasıl yazacağımı buldum ve şemalar klasörüne kaydedildikten sonra, oyundaki Yapı Bloğuna ekranın mevcut durumu için doğru şemaya bakmasını söyleyen bir sohbet komutu verebiliyorum (her bir kare için benzersiz bir dosya adı olması gerekiyor, bu da işleri biraz karmaşıklaştırıyor). Bu yapıldıktan sonra, aktif şemayı dünyaya tekrar tekrar yapıştıran küçük bir redstone devresi yeterlidir ve çalışan bir ekranınız olur!

Sonuç

Sonuç olarak, Minecraft'ta çoğunlukla kullanılabilir bir Stream Deck'e sahip olursunuz! Komut dosyası öncelikle benim makinemde çalışmak üzere tasarlanmış olsa da, çok oyunculu sunucularda çalışacak şekilde geliştirilemeyeceğini düşünmüyorum! Bu projenin orijinal prototipi, Windows Subsystem for Android'de çalışan Stream Deck Mobile'ın bir örneğinde çalışıyordu, bu da teknik olarak her şeyi tamamen ayrı bir cihazda veya sanal bir makinede çalıştırabileceğiniz anlamına geliyor. Bunun iyi bir fikir olup olmadığı elbette tamamen farklı bir soru... ama "pratiklik" gibi endişelerin sizi denemekten alıkoymasına izin vermeyin :)

İlginç bilgi: Üst kısımdaki Stream Deck logosu 24 harita kullanılarak yapılmıştır. Logonun yapısı End void'da yer almaktadır, ancak o kadar büyüktür ki void'un bir ucundan diğer ucuna kadar uzanmaktadır.

unnamed (1)

TheAppleFreak'in diğer çalışmalarını inceleyin:

MAKALEDEKI ÜRÜNLER