Alle Beiträge

  • Rechner für Blender und Unity bauen – Teil 1 – Einleitung & Überblick

    Rechner für Blender und Unity bauen – Teil 1 – Einleitung & Überblick

    Rechner für Blender und Unity bauen

    So funktioniert diese Serie:
    Es gibt eine Video- und eine Text-Version. Am Anfang jedes Artikels steht das Video, darunter die Text-Version des jeweiligen Abschnitts. Am Ende der Seite findest Du einen Link zum jeweils nächsten Teil. Wenn Du nur die Videos sehen willst, kannst Du das auch über diese Youtube-Playlist tun.

    Inhalt

    Teil 1 – Einleitung & Überblick

    Für jede Form von Softwareentwicklung werden leistungsfähige Entwicklungsrechner benötigt. Besonders hoch sind die Anforderungen jedoch bei aufwendigen Techniken wie zum Beispiel dem Rendern von Szenen, die auf 3D-Simulation basieren. Blenders „Cycles“-Renderer basiert essentiell auf Lichtsimulationen, wodurch zwar sofort ansehnliche Ergebnisse entstehen, die Rechenzeit aber schon bei vergleichsweise einfachen Szenen schnell ansteigt.

    Es liegt nicht nur an der Hardware

    Um komplexe Berechnungen durchzuführen, ist eine leistungsfähige Hardwareausstattung hilfreich. Dennoch sei vorweg genommen, dass die Geschwindigkeit mit der Blender ein Bild berechnet, auch wesentlich von anderen Faktoren abhängt.

    Auch auf Hochleistungshardware kann das Rechnen viel Zeit verbrauchen, wenn es sich um eine komplexe Szene handelt und die Einstellungen nicht optimiert wurden. Das heißt ganz allgemein auch, dass ein Projekt mit Problemen im Aufbau auf besserer Hardware nicht automatisch schneller berechnet werden kann. Außerdem ist es auch ein Stück weit normal, dass das Berechnen aufwändiger Szenen sehr lange dauert. Bei Pixar z.B. dauert das Berechnen eines einzigen Film-Bildes 50 Stunden oder noch erheblich länger und das, obwohl dort hochoptimierte und sehr leistungsfähige Systeme zum Einsatz kommen.

    Rendern mit besserer Hardware beschleunigen

    Der allgemeine Trend bei der Anschaffung von Hochleistungs-PCs fürs Rendering geht dahin, keine fertigen Systeme zu kaufen, sondern die idealen Komponenten selbst zusammen zu stellen. Dabei gibt es aber viele Unterschiede im Detail zu beachten, weil verschiedene Hardware nur ihre volle Leistung bringen kann, wenn alles richtig zusammenspielt. Für Blender und Cycles wird als Prozessor Intel gegenüber AMD meist bevorzugt und bei der Grafikkarte können einige Funktionen (CUDA) nur von Nvidia-Karten genutzt werden.

    Welche Hardware ist die richtige?

    Da ich selbst auch kein Experte beim Zusammenbau von Hardware bin, habe ich zunächst einige Recherche betrieben. Das Video von Tobi Lijsen zu diesem Thema gibt einige gute Anregungen, ist hinsichtlich der konkreten Komponenten aber nicht mehr ganz aktuell. Daher bin im weiteren Verlauf auf eine amerikanische Ratgeber-Seite gestoßen, die Konfigurationen für Gaming- und Render-PCs vorstellt und diese auch immer wieder aktualisiert.

    Vom Ratgeber ausgehend habe ich eine Liste von Komponenten für einen Blender-Render-PC zusammengestellt. Einige Bestandteile sind in Europa nicht verfügbar und wurden daher von mir mit Alternativen ersetzt.

    Einkaufsliste

    Die im folgenden beschriebenen Bestandteile des Render-PCs liegen in der mittleren Preisklasse bei insgesamt knapp unter 2000 Euro. Nicht enthalten sind folgende Komponenten, die ich von meinem bestehenden Rechner übernommen habe und daher nicht nochmal kaufen musste:

    • Maus und Tastatur (USB), ca. 35€
    • Monitor, ich verwende den ASUS VG248QE^. ca. 280€
      Achtung: Dein Monitor braucht unbedingt einen HDMI-Anschluss, da die unten aufgelistete Grafikkarte keinen DVI oder älteren Ausgang mehr hat.
    • HDMI-Kabel^, sofern nicht schon vorhanden, ca. 6€.
    • DVD-Laufwerk, z.B. LG GH24NSD1.AUAA10B DVD-R/RW+R/RW Bulk Sata Schwarz^ oder ähnlich, ca. 13€, für die Treiber-Installationen von den Setup-DVDs erforderlich!
    • Optional: zusätzliche interne Festplatte, ca. 90€.
      Hier habe ich noch eine alte WD5000AAKS^, die für den Moment ausreicht. Eine zusätzliche Platte ist gut als Datenspeicher, für den Aufbau und den Start des Rechners aber nicht erforderlich.

    Neue Komponenten

    Gehäuse

    Netzteil/Strom

    Mainboard

    Prozessorkühler

    Scythe CPU Kühler Mugen 5 PCGH Edition (SCMG-5PCGH)^
    ca. 59€

    Dieser spezielle Prozessorkühler hat einen riesigen Wärmeleiter und zwei Ventilatoren. Dieser separate Kühler ist für den Aufbau nicht zwingend erforderlich, zumal der Lieferumfang des Prozessors selbst einen kleinen ’normalen‘ Kühler enthält.

    Prozessor

    Arbeitsspeicher (32 GB DDR4)

    Interne Hochgeschwindigkeitsfestplatte (SSD)

    Grafikkarte

    Windows 10 Lizenz

    Windows 10 Pro

    … auf einem bootfähigen USB-Stick^ (min. 8GB Kapazität nötig). Du kannst einen Window 10-Installationsstick mit dem Media Creation Tool erstellen. Ansonsten werden auch Windows 10-Lizenzen im Handel angeboten, bei denen ein Boot-USB-Stick mitgeliefert^ wird.

    Werkzeug

    Inhalt dieses Specials

  • Bruchlandung auf fremdem Planeten in Blender

    Bruchlandung auf fremdem Planeten in Blender

    Nachdem wir zunächst ein Shuttle im Weltraum in Blender umgesetzt hatten, beschäftigt sich das aktuelle Update des Cycles-Kurses mit der Bruchlandung auf der Planetenoberfläche.

    Die neuen Inhalte umfassen 30 Lektionen und fast 5 Stunden neues Videomaterial, das ich in drei neue Abschnitte aufgeteilt habe:

    Teil 1: Planetenoberfläche – Terrainmodellierung und HDRI-Beleuchtung

    Wir erstellen eine Landmasse mit Hilfe des Landschaftsgenerators und sehen uns dabei an, wie Materialien (z.B. Staub) abhängig von der Steigung der Oberfläche aufgetragen werden. Technisch umfasst das die Werkzeuge Eroder, Slope, Sculpting, Weight- und Vertex Color-Daten, Kacheln der Textur im Node-Editor, Subdivision und mehr. Für eine visuell ansprechende Stimmung setzen wir eine hochrealistische Beleuchtung per HDRI-Map ein und berücksichtigen Nebel in der Nachbearbeitungskette.

    Terrain-Generator
    Terrain-Generator

    Teil 2: Bruchlandung – Animation und Dynamic Paint

    Wir legen eine Kamerafahrt für die Szene an und importieren das Shuttle sowie die Rauchpartikel. Obwohl Cycles keine Billboard-Partikel unterstützt, wenden wir einen Workaround an, damit sich die Rauchwolke an die bewegliche Kameraposition anpasst.

    Besonders interessant finde ich die Arbeit mit Dynamic Paint, die es ermöglicht, die Textur an den Berührungsflächen einer Kollision zu verändern. Auf dieser Grundlage leiten wir ein sich verformendes Emitter-Mesh ab, das Staubpartikel beim Aufprall des Shuttles auf dem Fels aufwirbelt.

    Kollisionsspur mit Dynamic Paint zeichnen.
    Kollisionsspur mit Dynamic Paint zeichnen.

    Teil 3: Umgebung ausbauen – Ozean und Felsenstreuung

    Schließlich dekorieren wir die Szene aus, in dem wir eine Ozeanoberfläche mit Cycles-Materialien herstellen und animieren. Ich zeige Dir, wie Du mit wenigen Handgriffen einen organisch verformten Fels erzeugst und neben einzeln platzierten Findlingen, die Szene durch automatisch verstreute Kieselsteine ausdekorierst. Am Ende setzen wir alle Komponenten zusammen und schneiden unseren neuen Clip zur bestehenden Sequenz hinzu.

    Wasserfläche erzeugen
    Wasserfläche erzeugen
    Blender und Cycles: Der ultimative 3D Animation Kurs

    Wie immer ist dieses Update für bereits eingeschriebene Teilnehmer kostenlos!  Neue Teilnehmer finden einen Link mit Rabattcoupon auf der Kursseite.

  • Praktikum im Bereich 3D und GameDesign finden

    Praktikum im Bereich 3D und GameDesign finden

    In letzter Zeit werde ich sehr oft nach Firmen gefragt, die möglicherweise Schülerpraktika im Bereich 3D-Design oder Spiele-Entwicklung anbieten. Grundsätzlich ist das eine gute Idee, da vor allem Berufseinsteiger oder auch Quereinsteiger im Rahmen eines Praktikums eine tolle Gelegenheit erhalten, in den Arbeitsalltag hineinzuschauen.

    Der schwere Anfang

    Das kleinere Probleme dürfte auf der technischen Seite liegen, da Blender und Unity einerseits etablierte Technologien sind. Diese Produkte folgen modernen Softwarekonzepten, wodurch ein mit ihnen angeeignetes Vorwissen eine sehr gute technische Ausgangsposition darstellt, selbst wenn in der Firma mit einer anderen Software gearbeitet wird. Zwar unterscheiden sich die konkreten Handgriffe, doch bauen z.B. 3D-Modellierungsverfahren immer auf den selben technischen Ideen auf.

    Die größere Schwierigkeit in der Praxis ist dagegen oft, eine Firma zu finden, die überhaupt Schülerpraktika oder Schnuppertage für komplette Neueinsteiger anbietet, zumal ein solches Praktikum an der Schwelle zwischen Schule und Beruf  den Firmen zunächst nichts nützt, aber gewisse Kosten verursacht. Zugunsten eines ausgeglichenen gegenseitigen Nutzens werden Praktika deshalb meist erst ab einer etwas höheren Berufsstufe und über einen längeren Arbeitszeitraum hinweg ausgeschrieben.

    Stellen für Praktika finden

    Auch wenn oder gerade weil z.B. ein Schülerpraktikum oft nicht ausdrücklich ausgeschrieben ist, kann eine Lösung darin liegen, proaktiv auf Firmen zu zu gehen. Folgende Schritte kannst Du gehen, um ein Schülerpraktikum im Bereich Spieleentwicklung zu finden:

    1. Welches Geschäftsfeld?

    Überlege Dir zunächst, welches 3D-Umfeld Dich überhaupt interessiert. Zwar gibt es natürlich etliche Gemeinsamkeiten, aber auch viele Unterschiede in den konkreten Anwendungsgebieten. Im Software- und Game-Design spielt Interaktion und technische Effizienz eine größere Rolle, während im Bereich 3D-Illustration oder Werbung eine präzise Gestaltung wichtiger sein kann. 3D- und GameDevelopment sind sehr umfangreiche Themen – was genau möchtest Du im Praktikum machen?

    2. Firmen suchen

    Schau Dir dann an, welche Firmen in diesen Bereichen arbeiten. Dazu musst Du einfach suchen und Dir die Webseiten der Firmen ansehen. Am Ende des Artikels findest Du eine Liste mit Jobbörsen als Ausgangspunkt. Wonach Du suchen musst, hängt natürlich stark von Deinen Wünschen ab. Dazu können neben dem Tätigkeitsfeld auch Dinge wie z.B. der Ort gehören. Überlege, welche Voraussetzungen und Einschränkungen für Dich am wichtigsten sind. Je höher Deine Anforderungen und Begrenzungen sind, desto schwieriger wird es, eine entsprechende Praktikumsstelle zu finden.

    Wenn Du nicht weißt, wo Du zu suchen anfangen sollst, eignet sich eventuell auch eine Rückwärtssuche: Welche Produkte, Filme, Spiele, etc. begeistern Dich? Worin findest Du Motivation selbst in dem Bereich arbeiten zu wollen? Sieh Dir dann an, welche Firmen diese Produkte hergestellt haben und sieh Dir deren Internetauftritte an. Vielleicht kommen konkret diese Firmen noch nicht in Frage, z.B. weil sie im Ausland sitzen, doch kannst Du hier schon Hinweise darauf finden, wonach Du weiter suchen kannst.

    3. Sich vorstellen und nach Praktikum fragen

    Wenn Du in Frage kommende Firmen gefunden haben, kannst Du einfach eine Art Mini-Bewerbungsmail schreiben in der Du Dich kurz vorstellst und nachfragst, ob die Möglichkeit zu einem Schülerpraktikum besteht.

    Mein Tipp: formuliere eine ordentliche Mail, aber beschränke Dich auf die wichtigsten Aussagen.

    Anregungen für den Aufbau einer ersten Mail-Anfrage:

    • Kurze Selbstvorstellung, z.B. Name, ggf. Alter, berufliche/schulische Situation und Ziel (Praktikum)
    • 2-3 Sätze darüber, welche Vorerfahrung Du mitbringst und wie Du auf die Firma aufmerksam wurdest
    • Kurze Zusammenfassung dessen was Du suchst (z.B. Dauer, Tätigkeit) und Frage, ob die Möglichkeit für ein Praktikum besteht

    Sammle eigene Erfahrungen

    Die ersten Schritte sind immer schwierig, aber jeder der heute in einer Firma arbeitet, stand selbst einmal an der selben Stelle im Leben und kennt die Situation. Probiere es einfach aus, sammle eigene Erfahrungen und finde heraus, was für Dich funktioniert. Im besten Fall findest Du mit einer solchen Initiativbewerbung eine Stelle. Im schlechtesten Fall bist Du eine Erfahrung reicher. Vielleicht entsteht auch etwas völlig unerwartetes und Du bekommst z.B. weitere Tipps oder Hinweise für Stellenangebote.

    Anhang Stellenbörsen

    Folgende Seiten listen Stellenanzeigen für Jobs oder Praktika im Game-Development-Bereich an:

    [linktipp url=“https://www.praktikumsstellen.de/praktikumsplaetze-game-design“ title=“Praktikumsstellen“ pros=““ cons=““ tags=““]

    [linktipp url=“http://gamesjobsgermany.de“ title=“GameJobs Germany“ pros=““ cons=““ tags=““]

    [linktipp url=“https://www.games-career.com/de/“ title=“Games-Career“ pros=““ cons=““ tags=““]

    Hast Du einen Tipp für eine Jobdatenbank, die hier erscheinen sollte? Lass es mich wissen, damit ich sie hier hinzufügen kann.

  • Animationsfilme mit Blender und Cycles erstellen

    Animationsfilme mit Blender und Cycles erstellen

    In meinen bisherigen Kursen kam Blender als 3D-Modellierungswerkzeug zur Erstellung von Modellen für Unity-Spiele zum Einsatz. Viele Blender-Funktionen blieben dabei ungenutzt, weil sie im Exportvorgang nicht unterstützt werden oder sich technisch nicht für Echtzeit-3D eignen.

    Immer wieder haben Teilnehmer Fragen und Wünsche geäußert, die sich auf Blenders eigentliche Funktion als Werkzeug für 3D-Grafik und Filme bezogen. Zu meinem Erstaunen musste ich feststellen, dass scheinbar tatsächlich noch kein deutschsprachiger Blender-Kurs zu diesem Thema auf Udemy angeboten wurde – bis jetzt!

    Blender und Cycles: Der ultimative 3D Animation Kurs

    Blender und Cycles: Der ultimative 3D-Animations-Kurs

    Erstelle eigene 3D Animationsfilme mit Blender und Cycles – Überzeugende Ergebnisse schnell und ohne Vorkenntnisse!

    Spätestens seit Einführung des Render-Moduls „Cycles“ ist es selbst am Heim-PC möglich, fotorealistische 3D-Bilder mit physikalisch korrekten Lichtsituationen zu erstellen. In diesem Kurs lernst Du, wie Du mit Blender beeindruckende eigene 3D-Animationsfilme erstellen kannst!

    Der neue Kurs befasst sich unter anderem mit folgenden Themen:

    Rendering und Cycles-Eigenschaften

    • Was bedeutet Rendern und wie funktioniert es?
    • Die Rolle der Kamera und ihre Einstellungen
    • Was ist der Unterschied zwischen Blenders Render-Modulen?
    • Was ist Cycles und wie funktioniert dieser Renderer?
    • Typen und Einstellungen von Lichtquellen kennen und bearbeiten
    • Materialketten mit dem Node-Editor aufbauen
    • Was sind Stellschrauben für die Render-Geschwindigkeit und -Qualität?
    • Bonus: Wie wird eine Kugel ohne Verzerrungen texturiert?

    Verfahren der 3D-Modellierung

    • Box-Modellierung mit Mirroring, Extrusion und Schnittwerkzeugen
    • Shape-Extrusion aus geometrischen oder freien Formen
    • Spline-Modellierung und Beveling
    • Blick auf das Nurbs-Verfahren
    • Techniken für die effiziente Oberflächenglättung und Kantendefinition

    Farben, Materialien und Texturen

    • Unterschiedlich komplexe Materialien für Cycles erstellen
    • UV-Unwrapping-Methoden
    • Modelle mit den 3D-Painting-Werkzeug direkt bemalen
    • Einstellungen und bestes Vorgehen beim 3D-Pinsel
    • Zeichnungen mit Fototexturen kombinieren
    • Unebenheiten und Glanzeffekte realisieren
    • Spiegelungen simulieren
    • Komplexe mehrschichtige Materialien erstellen
    • Aufkleber-Texturen frei auf dem Modell platzieren

    Spezialeffekte anwenden

    • Vergleich von Smoke-Simulation und Partikel-System
    • Einstellungen für Partikel und Erstellung einer Rauchspur
    • 3D-Rauch mit 2D-Ebenen simulieren
    • Partikeldaten im Cycles-Material berücksichtigen
    • Wie wird das Ergebnisbild mit automatisierter Nachbearbeitung verändert?
    • Aufbau einer Aura (Glühen) als PostProcessing-Effekt

    Video-Bearbeitung

    • Objektgruppen in Render Layern organisieren
    • Vor- und Nachteile verschiedener Ausgabeformate
    • Alpha-Kanal-Daten (Transparenz) richtig rendern
    • Grundlagen von Blenders Video-Editor
    • Render-Ebenen in der Nachbearbeitung zusammensetzen, überarbeiten, schneiden und exportieren

     Schreibe Dich jetzt ein:


    Blender und Cycles: Der ultimative 3D Animation Kurs
    Hier einschreiben

  • 2D-Sound in Unity unabhängig abspielen

    2D-Sound in Unity unabhängig abspielen

    Häufig gibt ein Soundeffekt im Spiel ein akustisches Feedback über ein Ereignis. So könnte ein Ton erklingen, wenn die Spielfigur z.B. eine Münze einsammelt. Sounds werden der Spielszene in Unity normalerweise über eine Audio Source-Komponente hinzugefügt. Allerdings wird eine solche Geräuschquelle beim Einsammeln sofort zusammen mit dem Objekt aus der Szene entfernt, so dass der Clip keine Gelegenheit zum Abspielen hat. Dieser Umstand macht es erforderlich, ein separates Abspielobjekt auszulösen, welches sich nach dem vollständigen Abspielen selbst löscht und aufräumt. Dieser Artikel beschreibt Beispiele, um ein solches unabhängiges Abspielen zu realisieren.

    Unity-Funktion PlayClipAtPoint

    Unity selbst bietet seit einigen Versionen die Methode AudioSource.PlayClipAtPoint(SoundClip,Position) an, die eine Audio-Datei ohne weitere Abhängigkeiten abspielt und aufräumt. Die Dokumentation enthält bereits ein leicht zu erweiterndes C#-Code-Beispiel:

    using UnityEngine;
    
    public class Demo: MonoBehaviour
    {
        public AudioClip clip; //Assign in Inspector
    
        private void OnTriggerEnter(Collider collider)
        {
            ...
            AudioSource.PlayClipAtPoint(clip, transform.position); //Play clip at position of this object
            ...
        }
    }

    Funktionsweise:

    • Beim Einsammeln wird im Code lediglich der Befehl AudioSource.PlayClipAtPoint(...) aufgerufen. Die Funktion erstellt automatisch ein zusätzliches Spielobjekt mit Audio-Player und löscht es nach dem Abspielen.
    • Der Befehle benötigt eine Sound-Datei als ersten Parameter, für den sich z.B. ein public-Feld („clip“) eignet. Das Sound-Asset lässt sich dann im Inspector zuweisen.
    • Der Befehle benötigt eine Position im Raum als zweiten Parameter, für den z.B. die Position des eingesammelten Objekts in Frage kommt.

    Anmerkungen:

    • Dieser Befehl wirkt dreidimensional, d.h. der Sound wird aufgrund seiner räumlichen Position zum Audio Listener, der normalerweise an der Kamera hängt, lauter oder leiser.
    • Oft genügt es aber, ein Audio-Feedback räumlich unabhängig, abzuspielen. Hierfür lässt sich z.B. die Kamera-Position als räumliche Koordinate übergeben: AudioSource.PlayClipAtPoint(clip, Camera.main.transform.position);

    Eigene Helfer-Funktion PlayClip2D

    Die Helfer-Klasse Audio aus dem GDP-Toolkit stellt die Funktion PlayClip2D bereit, die PlayClipAtPoint ähnelt, aber den Audiospieler für ortsunabhängigen 2D-Sound konfiguriert und über das Rückgabeobjekt Zugriff auf weitere Parameter gewährt.

    • Lade die Klasse Audio.cs aus meinem GitHub-Repository herunter und kopiere sie in Dein Projekt.
    • Füge using GameDevProfi.Utils; an den Anfang der C#-Datei ein, von der aus Du den Sound starten willst.
    • Rufe an der gewünschten Stelle Audio.PlayClip2D(clip); auf. Der Parameter clip muss auf ein Audio-Asset zeigen. Dieses könnte wiederum in deinem Script als Feld definiert werden, um es im Inspector zuweisen zu können.

    Beispiel für die Nutzung:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using GameDevProfi.Utils;
    
    public class SoundDemo : MonoBehaviour
    {
        /// <summary>
        /// Clip to play, assign in Inspector.
        /// </summary>
        public AudioClip clip;
    
        void Start()
        {
            if (clip == null) { Debug.LogError("Assign an audio clip in Inspector.");  enabled = false; }
        }
    
        void Update()
        {
            if (Input.GetKeyUp(KeyCode.Alpha3)) Audio.PlayClip2D(clip);
        }
    }

    Wird die Taste 3 gedrückt, spielt der Sound ortsunabhängig ab.

    AudioSource im Prefab auslagern

    Um die Parameter des AudioPlayers visuell zu definieren, besteht eine weitere Möglichkeit darin, ein Prefab des AudioPlayers zu erstellen, das beim Einsammeln der Münze in der Szene instanziiert wird. Das automatische Löschen lässt sich ebenfalls durch die Audio-Helfer des GDP-Toolkit einbauen:

    • Lade die Klasse Audio.cs aus meinem GitHub-Repository herunter und kopiere sie in Dein Projekt.
    • Füge using GameDevProfi.Utils; an den Anfang der C#-Datei ein, von der aus Du den Sound starten willst.
    • Füge ein Feld vom Typ GameObject der Klasse hinzu. Erstelle ein leeres Objekt im Unity Editor, füge einen Audio-Player hinzu und speichere dieses Objekt als Prefab, in dem Du es auf das Projekt ziehst. Ziehe weise dem audioPlayerPrefab-Feld Deines Scripts im Inspector dieses Prefab zu.
    • Rufe an der gewünschten Stelle Instantiate(audioPlayerPrefab); auf.
    • Damit das Objekt nach dem Abspielen gelöscht wird, füge sofort nach dem Instantiate eine Komponente vom Typ Audio.AutoCleanup hinzu.

    Beispiel für die Nutzung:

    using System.Collections;
    using System.Collections.Generic;
    using UnityEngine;
    using GameDevProfi.Utils;
    
    public class SoundDemo : MonoBehaviour
    {
        public GameObject audioPlayerPrefab;
      
        void Update()
        {
          if (Input.GetKeyUp(KeyCode.Alpha4))
          {
            GameObject player = Instantiate(audioPlayerPrefab);
            player.AddComponent<Audio.AutoCleanup>();
          }
        }
    }
    

    Wird die Taste 4 gedrückt, spielt der Sound ortsunabhängig ab, in dem das Prefab dupliziert und ein AutoCleanup-Script hinzugefügt wird.

    Zusammenfassung

    Um einen Sound schnell und einfach abzuspielen, bietet Unity die Funktion AudioSource.PlayClipAtPoint. Da diese keinen Zugriff auf Eigenschaften des Players gibt, lässt sich der Sound hier aber nicht positionsunabhängig abspielen. Die Funktion PlayClip2D aus dem GDP-Toolkit zeigt eine ähnliche Implementierung, die den Player für 2D vorkonfiguriert und zudem Zugriff auf das Player-Objekt gewährt. Zudem besteht die Möglichkeit ein Prefab zu instantiieren, wodurch die präzise Konfiguration sogar im Unity-Editor möglich wird.

     

     

     

     

  • Verzerrungsarmes Texturieren einer Kugel in Blender

    Verzerrungsarmes Texturieren einer Kugel in Blender

    Beim Versuch eine rechteckige Textur auf eine kugelförmige Oberfläche abzubilden, kommt es beim UV-Mapping zwangsläufig zu Verzerrungen. Zur Vermeidung dieser Probleme, die vor allem an den Polen auftreten, gibt eine Reihe von Abbildungsvarianten. Jedoch stellt nicht nur das möglichst glatte Entfalten des Meshs eine Herausforderung dar. Die Bildbereiche der anzuwendenden Textur müssen außerdem nahtlos aneinander passen. Je mehr isolierte Inseln in der UV-Abbildung entstehen, desto schwieriger wird die Bearbeitung der Textur in der Bildbearbeitungssoftware.

    Beispiel 1: Bei Blenders Kugel-Projektion entstehen viele Stauchungen und Streckungen in der Abbildung, wodurch es zu sichtbaren Texturverzerrungen kommt.
    Beispiel 1: Bei Blenders Kugel-Projektion entstehen viele Stauchungen und Streckungen in der Abbildung, wodurch es zu sichtbaren Texturverzerrungen kommt.

    Beispiel 2: Blenders Smart-Projektion verhindert Verzerrungen in der Textur, erzeugt aber viele einzelne Mapping-Inseln. Es ist schwierig, in der Bildbearbeitung alle Kanten nahtlos aneinander passend zu gestalten.
    Beispiel 2: Blenders Smart-Projektion verhindert Verzerrungen in der Textur, erzeugt aber viele einzelne Mapping-Inseln. Es ist schwierig, in der Bildbearbeitung alle Kanten nahtlos aneinander passend zu gestalten.

    Lösungsweg über Hemisphären

    Intuitiv könnte man davon ausgehen, dass ein horizontal entfaltetes Texturband (wie z.B. eine Weltkarte) auch horizontal auf die Kugel abgebildet werden müsste. Allerdings führt genau dieser Ansatz zu den größten Problemen. Drehen wir das Vorgehen um und schneiden sowohl die Kugel als auch die Karte der Länge nach in zwei Teile, können wir eine verzerrungsarme Projektion erreichen.

    Bei der Aufteilung in zwei Halbkugeln und der Verwendung von Polarkoordinaten lässt sich die Textur mit nur zwei Inseln so abbilden, dass kaum Verzerrungen entstehen.
    Bei der Aufteilung in zwei Halbkugeln und der Verwendung von Polarkoordinaten lässt sich die Textur mit nur zwei Inseln so abbilden, dass kaum Verzerrungen entstehen.

    Schritte zur Erstellung einer hemisphärischen Kugeltexturierung

    1. Lege die gesamte Weltkarte in einer geraden Bildauflösung an. Da wir das Bild halbieren, sollten Länge und Höhe restlos durch 2 teilbar sein. Als Format für die Kugeltextur wird Breite = 2*Höhe oft empfohlen.
      Tipp: Du kannst in Blender im Image-Fenster ein Helfer-Gitter über den Menüpunkt Image > New erzeugen lassen. Damit lässt sich die Abbildungsbeziehung leicht nachvollziehen.

      Erzeugen eines UV-Helfer-Gitters in Blender.
      Erzeugen eines UV-Helfer-Gitters in Blender.

      Bonus: Du kannst ein Helfer-Gitter der Größe 1024×512px hier herunterladen. Klicke mit der rechten Maustaste auf das Bild und wähle Bild speichern unter….

      UV-Test-Gitter 1024×512px.
      UV-Test-Gitter 1024×512px.
    2. Sorge dafür, dass der linke und rechte Bildrand nahtlos aneinander passen. Eventuell lässt sich ein Kachel-Filter verwenden, in Gimp im Menü Filter > Abbilden > Nahtlos kacheln zu finden. (Für das Testgitter hier nicht nötig.)
    3. Schneide das Bild der Länge nach in zwei separate Bilder. Dupliziere das Bild (Gimp: Strg+D) und halbiere das Bild jeweils so, dass einmal die obere Hälfte, einmal die untere stehen bleibt. Gimp: Menü Bild > Leinwandgröße, Höhe = 50%, Ausschnitt oben bzw. unten verankern.

      Bild halbieren in Gimp.
      Bild halbieren in Gimp.
    4. Stelle sicher, dass die Ebene nicht größer ist als die Arbeitsfläche (sonst wirken die nachfolgenden Filter auch auf den abgeschnittenen Bereich). Gimp: Alles grob auswählen,  Menü: Bild > Auf Auswahl zuschneiden.
    5. Wandle beide Bilder in Polarkoordinaten um. Gimp: Menü Filter > Verzerren > Polarkoordinaten
      Für das obere Bild: Optionen umgekehrt, von oben, Polarkoordinaten anhaken.
      Für das untere Bild: Optionen umgekehrt und Polarkoordinaten anhaken (ohne von oben).

      Textur in Gimp zu Polarkoordinaten umwandeln.
      Textur in Gimp zu Polarkoordinaten umwandeln.
    6. Übermale die Pole. Der Kreismittelpunkt ist jetzt stark verzerrt. Da dieser Bereich aber später fast verzerrungsfrei auf die Kugel abgebildet wird, kann er jetzt bequem mit einer unverzerrten Textur übermalt werden.

      Die übermalten Bereiche der Pole (D8, D7) bleiben später fast unverzerrt erhalten.
      Die übermalten Bereiche der Pole (D8, D7) bleiben später fast unverzerrt erhalten.
    7. Kopiere beide fertigen Kreistexturen in ein Bild, dessen Größe genau die Kreise abdeckt.
      1. Für beide Bilder: Wenn der Bildhintergrund transparent ist: Gimp: Menü Bild > Auf Inhalt zuschneiden. (Sonst: Bild > Leinwandgröße und dort Breite auf Höhe setzen.)
      2. Breite des rechten Bilds verdoppeln (Gimp: Menü Bild > Leinwandgröße), dabei das bestehende Bild am rechten Rand platzieren.
      3. Linkes Bild: Alles auswählen, dann Menü Bearbeiten > Sichtbares kopieren.
      4. Rechtes Bild: neue leere Ebene in Gimp erstellen, dann Bearbeiten > einfügen und das eingefügte Bild an die linke obere Ecke schieben. Schwebende Auswahl in Gimp ggf. noch verankern (Menü Ebene > Verankern).
        Das Ergebnis sollte so aussehen:

        Zusammengeführte Texturen.
        Zusammengeführte Texturen.
    8. Exportiere das Bild als png-Datei.
    9. Erstelle in Blender eine UV-Sphere mit einer geraden Anzahl an Ringen. Die Kugel muss in ihrer vertikalen Mitte eine Kante haben.

      Erzeugen eine UV-Sphere mit vertikaler Mittelkante.
      Erzeugen eine UV-Sphere mit vertikaler Mittelkante.

       

    10. Gehe ins UV-Editing-Layout, und mit Tab in den Edit-Mode der Kugel. Öffne die Bilddatei, so dass sie auf die Kugel abgebildet wird.
    11. Markiere im Edit-Mode die Kante in der Mitte der Kugel und markiere sie als Saum.

      Markieren des Schnittsaums, um zwei Hemisphären zu erhalten.
      Markieren des Schnittsaums, um zwei Hemisphären zu erhalten.
    12. Wähle alle Elemente der Kugel aus (Taste A) und führe dann ein Unwrapping aus. Taste U > Unwrap. Das UV-Mapping sollte jetzt den beiden Texturkreisen entsprechen.
    13. Passe die Projektionen so an, dass das Mapping überall zusammen passt.  Zunächst muss eventuell alles auf x gespiegelt werden (im UV/Image-Editor: alles markieren, dann S X -1), damit die obere und untere Kugel richtig abgebildet wird. Ist eine Hälfte noch spiegelverkehrt, diese nach dem gleichen Prinzip anpassen.

      Beispiel-Ergebnis des hemisphärischen UV-Wrappings.
      Beispiel-Ergebnis des hemisphärischen UV-Wrappings.

    Zusammenfassung

    Ein Weg um eine Kugel rundherum verzerrungsarm zu texturieren besteht im Trennen der oberen und unteren Halbkugel und dem Umrechnen des Texturbildes in Polarkoordinaten. Zwar kann das exakte Ausrichten der Halbkugelkanten etwas Detailarbeit erfordern, doch entfallen bei diesem Verfahren die typischen Verzerrungsprobleme an den Kugelpolen komplett.

    [kursbanner thema=“blenderrender“]

     

  • Visual Scripting für Unity im Vergleich (Update 2020)

    Visual Scripting für Unity im Vergleich (Update 2020)

    Für fast alle größeren Programmiersprachen tauchen früher oder später Werkzeuge für Visual Scripting (grafisches Programmieren) auf, die die Formulierung von Programmlogik durch grafische Oberflächen erleichtern sollen. In diesen Systemen muss kaum mehr Code von Hand geschrieben werden. Statt dessen ermöglichen Listen oder Diagramme das Zusammenbauen eines Scripts durch Ziehen, Platzieren und Verbinden von vorgefertigten Bausteinen per Maus. Dieser Artikel befasst sich mit einigen Visual Scripting-Werkzeugen für den Unity-Editor.

    Spiele entwickeln ohne Programmieren?

    Wenn man noch wenig Erfahrung mit Software-Entwicklung hat, kann die Komplexität des Themas schnell einschüchternd und überfordernd wirken. Folglich werden Visual Scripting -Systeme oft mit Versprechen beworben, die den Eindruck erwecken, dass die Entwicklung einer Software, z.B. eines Spiel, mit Hilfe solcher Werkzeuge quasi ohne Programmierung möglich wäre.

    Das ist jedoch ein Trugschluss, denn es gibt einen entscheidenden Unterschied in den Begriffsdetails. Der Ausdruck „Programmieren“ wird oft sehr allgemein mit unterschiedlicher Bedeutung eingesetzt, wobei tatsächlich aber mindestens die folgenden zwei Aspekte zu unterschieden sind:

    • Formulieren von Programmlogik – Was soll der Computer genau machen?  Wie soll er z.B. auf Nutzereingaben reagieren? Für alle dynamischen oder interaktiven Vorgänge sind derartige Fragen zu beantworten, was die Programmlogik bildet.
    • Schreiben von Code – Die Programmlogik muss als Text in einer Programmiersprache für den Computer verständlich ausgedrückt werden.

    Visual Scripting kann lediglich das Schreiben von textuellem Code mit dem Anordnen von grafischen Elementen ersetzen. Das Formulieren der Programmlogik ist immer erforderlich, denn ein Projekt ohne jegliche Programmlogik ist statisch, also letztlich ein Film oder Bild. Anders ausgedrückt: Es ist nicht möglich, ein Programm zu entwickeln, ohne festzulegen, was passieren soll. Woher sollte der Computer wissen, was zu tun ist? Das bedeutet, dass das „technische Denken“, das die Grundlage des Software-Entwicklungs-Prozesses darstellt, in jedem Fall erforderlich ist.

    Nachteile von Visual Scripting

    Ein perfektes grafisches Programmiersystem ist eine tolle Vorstellung, doch tauchen in der Praxis etliche Nachteile auf, so dass sein Einsatz in vielen Fällen sogar ungeeignet ist:

    • Aufblähung trivialer Elemente – Dadurch dass jeder Baustein eine grafische Fläche einnimmt, benötigen selbst einfachste Anweisungen relativ viel Platz, was die Übersichtlichkeit eines Diagramms erschwert. Dieser Nachteil hängt natürlich vom konkreten System und seiner Darstellung ab.
    • Kaum überschaubar – Durch die Isolation von Programm-Modulen in einzelnen Diagrammen ist es in größeren Projekten schwer, den Überblick zu behalten. Ähnlich wie beim Schreiben von Code lässt sich dieser Nachteil höchstens durch extrem sorgfältiges Kapseln von Modulen und dem Minimieren von Abhängigkeiten mildern.
    • Nicht optimierbar – Das visuelle Script wird zur Ausführung in Programmbefehle übersetzt. Es kann passieren, dass dieser generierte Code nicht optimal läuft – entweder durch Schwächen im Übersetzungssystem oder durch Sonderfälle im formulierten Ablauf. Während sich technische Anweisungen im Code für jede Situation optimieren lässt, kann auf den technischen Ablauf visueller Scripte in den meisten Fällen kein Einfluss genommen werden.
    • Schwierige Fehlersuche – Sofern das Visual Scripting -Werkzeug nicht über einen ausgereiften eigenen Debugging-Mechanismus verfügt, kann die Fehlersuche schwierig sein, da sich die tatsächlich ausgeführten Programmbefehle u.U. von den abstrakten Bausteinen unterscheiden.
    • Starke Abhängigkeit – Die meisten Visual Scripting-Tools speichern die aufgebauten Inhalte in eigenen, oft binären Datei-Formaten. Dadurch entsteht eine enorme Abhängigkeit. Wird die Software z.B. nicht mehr weiterentwickelt, müssen schlimmstenfalls alle Inhalte in einem Ersatzsystem nachgebaut werden, da die Daten unzugänglich werden. Da es sich bei Code-Dateien um reinen Text handelt, bleibt geschriebener Code dagegen dauerhaft zugänglich.

    Vorteile von Visual Scripting

    Während sich beim Schreiben von Code beliebiger – auch falscher –  Text eingegeben lässt, ist der Autor bei der Verwendung von Visual Scripting stark eingeschränkt, denn es kann nicht frei, sondern nur aus einer eingeschränkten Anzahl von Möglichkeiten gewählt werden. Diese Eigenschaft ist Grundlage für die meisten Aspekte, die als Vorteil von Visual Scripting empfunden werden:

    • Schneller Einstieg – Das Angebot grafischer Bausteine und Werkzeuge ist meist intuitiv verständlich, so dass das Grundprinzip des „Zusammenklickens“ einzelner Elemente sehr leicht zu verstehen und anzuwenden ist.
    • Weniger Vorkenntnisse nötig – Die Durchsuchbarkeit der Listen verfügbarer Bausteine erspart das lernen und nachschlagen konkreter Befehle und Formulierungen.
    • Keine Syntaxfehler – Das Risiko von Tippfehlern ist minimiert, da die im System verfügbaren Bausteine bereits korrekt hinterlegt sind.
    • Zugang für Quereinsteiger – Mitarbeiter ohne Informatik-Kenntnisse, wie z.B. Designer, erhalten durch die zuvor genannten Vorteile die Möglichkeit, selbst Programmlogik in das Projekt einzubauen.
    • Trennung von technischer und inhaltlicher Logik – Vor allem bei Spielen mit einer Geschichte oder Handlung unterscheidet sich die Programmlogik in zwei Gruppen: Technische Logik ist für den Betrieb des Spiels in Form eines Programmablaufs nötig (z.B. Grafik darstellen, Spielstände verwalten, u.v.m.). Inhaltliche Logik beschreibt Elemente des Handlungsverlaufs (z.B. eine Schatztruhe kann nur mit einem Schlüssel geöffnet werden). Während die Steuerung technischer Vorgänge in der Regel besser und effizienter in geschriebenem Code umgesetzt wird, kann sich Visual Scripting durchaus als Zusatzmodul für Inhaltsformulierung eignen. Da inhaltliche Logik meist weniger komplex ist und oft von Autoren umgesetzt wird, die sich mit Inhalt und weniger mit Technik auskennen, ist hier eine leichte und schnelle Umsetzbarkeit oft besonders wichtig.

    Visual Scripting Tools (VST) für Unity

    Eine subjektive Auswahl und Bewertung von (vor allem freien) Visual Scripting-Plugins für Unity 3D.

    1. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/bolt-87491?aid=1101l8pNg“ title=“Bolt^“ pros=“mächtig, gepflegt, tolles Design, kostenlos“ cons=““ tags=““]Die grafische Präsentation von Bolt gefällt mir sehr gut. Es weist gute Wartungs- und Entwicklungsupdates auf und unterstützt Zustandsgraphen wie auch Flussdiagramme. Zudem ist es seit 2020 kostenlos erhältlich. [/linktipp]
    2. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/behavior-bricks-74816?aid=1101l8pNg“ title=“Behaviour Bricks^“ pros=“kostenlos, aktive Neuentwicklung“ cons=“schwerfälliges Design, etwas umständlich“ tags=““]Scheinbar aus einem Projektbedarf der Autoren entstanden ist dieses kostenlose VST im Prinzip funktional. Allerdings wirkt das ganze Layout sehr grob und jedes Element braucht (zu) viel Platz, um komplexe Scripte überschaubar zu halten. Der mitgelieferte Funktionsumfang wirkt noch ziemlich begrenzt und an einigen Stellen scheint die Integration der Scripte in die Szene etwas umständlich. Update: Gerade wurde eine komplette Neuimplementierung veröffentlicht, die scheinbar unter aktiver Entwicklung steht. [/linktipp]
    3. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/behaviour-machine-free-20280?aid=1101l8pNg“ title=“Behaviour Machine^“ pros=“kostenlose Version, schöner Graph-Editor“ cons=“veraltet, Elemente verstreut“ tags=“ab 45€“]Dieses VST hat ein übersichtliches, elegantes Design, das sich sehr gut in Unity einpasst. Der Funktionsumfang ist sehr umfangreich und es werden sowohl Diagramme als auch Sequenzlisten unterstützt. Die Free-Version unterstützt nur Desktop-Programme, für Mobilgeräte und andere Ziele muss eine Lizenz erworben werden. Leider scheint das Projekt nicht mehr gepflegt zu werden, das letzte Update ist über ein Jahr alt und die Webseite leidet unter Serverfehlern, um die sich scheinbar niemand kümmert. Keine gute Perspektive.  [/linktipp]
    4. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/uscript-personal-learning-edition-52060?aid=1101l8pNg“ title=“uScript^“ pros=“kostenlose Version, gepflegt, professionell, essenziell, Code-Ausgabe, gut dokumentiert“ cons=“Einschränkungen PLE unklar, träge, Demos fehlerhaft, umständlich“ tags=“ab 30€“]Das professionell anmutende uScript, das ohne großen Ballast durch essentieller Funktionalität glänzt, bietet eine Personal Learning Edition an, die den gesamten Funktionsumfang der Kaufversion abdeckt. Für kommerzielle Spiele ist eine kostenpflichtige Lizenz zu erwerben. Im Gegensatz zu interpretierenden VSTs ist eine Besonderheit von uScript, dass es C#-Code erzeugt, der dann wie handgeschriebener Code von Unity verarbeitet wird. Dies ermöglicht beliebige Einsicht und Bearbeitung dieses Codes, macht den Arbeitsfluss aber extrem träge, da Änderungen an Diagrammen ständig in Code umgewandelt wird, den Unity sofort kompiliert, wodurch viele Wartezeiten entstehen. Das Projekt wird aktiv gepflegt, ist stellenweise aber scheinbar recht komplex. Im Test liefen die mitgelieferten Demos nicht alle fehlerfrei. [/linktipp]
    5. [linktipp url=“https://github.com/ConstellationLanguage/Constellation“ title=“Constellation“ pros=“kostenlos, open source, interessanter Ansatz“ cons=“noch zu früh, keine Doku“ tags=““]Ein ganz junges VST-Projekt mit vielversprechenden Ansätzen ist Constellation, das quelloffen als Unity-Projekt bei github angeboten wird. Es bleibt abzuwarten, wie es sich weiter entwickelt, eine erste stabile Version ist für 2019 geplant. Der unter MIT-Lizenz stehende Code könnte sogar als Basis für einen eigenen Editor dienen. Allerdings sind manche Stellen im Code etwas merkwürdig aufgebaut und es fehlt jegliche Inline-Dokumentation. [/linktipp]
    6. [linktipp url=“https://www.assetstore.unity3d.com/en/#!/content/34184″ title=“Fungus“ pros=“kostenlos, open source, sehr gepflegt, leichter Einstieg, gut dokumentiert“ cons=“Templates charakteristisch, sehr linear“ tags=“<img draggable=“ /> mein Favorit“]Das Fungus VST wirkt auf den ersten Blick wie ein super simples Programmier-Tool für Kinder. Die Beispiele sind sehr auf Linearität und Dialog-basierte Spiele ausgelegt und die grafischen Vorlagen weisen einen sehr speziellen Stil auf, der zu vielen Projekten vermutlich nicht passt. Dennoch halte ich dieses System derzeit für eines der besten kostenlosen VSTs für Unity! Hinter den Beispielen – die man mögen kann oder nicht – steckt eine mächtige Visual Scripting-Engine mit aufgeräumter Oberfläche, die Ablaufdiagramme sowie auch Sequenzlisten unterstützt. Die mitgelieferten Befehle sind umfangreich, eigene Erweiterungen möglich, zumal es sich um ein sehr gepflegtes und ständig weiterentwickeltes quelloffenes Projekt handelt. Es gibt eine gute Dokumentation, Tutorials und Videos, die den Einsteig leicht machen. Obwohl auch schon auf Unity-Konferenzen vorgestellt, findet das Projekt noch relativ wenig Beachtung. [/linktipp]

    Weitere kommerzielle VSTs

    Zu folgenden VSTs habe ich recherchiert, sie aber nicht selbst getestet:

    1. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/playmaker-368?aid=1101l8pNg“ title=“PlayMaker^“ pros=“beliebt,umfangreich“ cons=“keine Free-Version, teils umständlich“ tags=“ab 60€“]Eines der ältesten und etabliertesten VST für Unity, das auch in zahlreichen kommerziellen Titeln zum Einsatz kam.[/linktipp]
    2. [linktipp url=“https://assetstore.unity.com/packages/tools/visual-scripting/nodecanvas-14914?aid=1101l8pNg“ title=“Node Canvas^“ pros=“mächtig, gepflegt, tolles Design“ cons=“kostenpflichtig“ tags=“ab 67€“]Ähnlich wie Bolt, teils aber nicht ganz so mächtig. [/linktipp]

    In Zukunft: Unity-eigenes VST?

    In der Unity-Entwicklungs-Roadmap und an verschiedenen anderen Stellen finden sich Hinweise darauf, dass der Unity-Editor selbst in Zukunft ein visuelles Scripting-Tool anbieten wird. Ähnlich der Integration zuvor externer Tools in der Vergangenheit (z.B. Text Mesh Pro) ist davon auszugehen, dass dieser kostenloser Bestandteil zukünftiger Standard-Installationen sein dürfte.

    UPDATE 2020

    Tolle News! Im Juli 2020 hat Unity bekannt gegeben, dass BOLT als Visual Scripting Tool aufgekauft wurde, wodurch es nun kostenlos über den Package Manager verfügbar ist. (In der Vergangenheit hat dieses großartige Tool um die 60€ in Einzellizenz gekostet.)

    Zusammenfassung

    Visual Scripting Tools bieten Werkzeuge an, um Programmlogik durch das Zusammenklicken von Diagrammen statt dem Schreiben von textuellem Code auszudrücken. Dieses Tools haben ihre Vor- und Nachteile, können sich aber vor allem zur Formulierung von inhaltlichen Abläufen und Handlungszweigen gut eignen. Unter den kostenlosen VSTs für Unity war bisher das scheinbar oft unterschätzte Fungus-Projekt mein Favorit. Nach der Übernahme durch Unity ist das ab jetzt kostenlose BOLT jedoch DER Tipp für VST in Unity. Unter kostenpflichtigen Produkten, macht auch Node Canvas einen sehr guten Eindruck. 

     

     

  • Pixel-präzises Rendering in Unity

    Pixel-präzises Rendering in Unity

    Nach fast vier Monaten intensiver Arbeit ist es soweit: mein neuer Kurs ist ab sofort online! In stetigem Bemühen Euch neue Techniken und Bereiche vorzustellen, dreht sich diesmal alles um Unitys 2D-Fähigkeiten:

    ZWEITEILIG: GESTALTUNG+INFORMATIK

    In meiner kürzlich durchgeführten Kursumfrage zeigte sich sehr deutlich, dass sich meine Kursteilnehmer die Kombination von gestalterischen und technischen Themen wünschen.

    Entsprechend beschäftigt sich dieser Kurs zur Hälfte mit dem Erstellen von PixelArt-Grafik aus gestalterischer Sicht. Du lernst, worauf es ankommt, um mit wenigen Pixeln ansprechende Hintergründe, Objekte und Figuren zu erstellen. Der Kurs zeigt Dir die Konzepte und Handgriffe zur Realisierung von kachelbaren Grafiken, der Objektorganisation in Spritesheets, dem Definieren von Animationssequenzen und vieles mehr.

    In der anderen Hälfte schauen wir uns an, wie sich Unitys 2D-Werkzeuge einsetzen lassen, um mit den gezeichneten Bildern ein interaktives Mini-Rollenspiel umzusetzen. Besonderen Wert legt der Kurs auf die pixelpräzise Darstellung Deiner Grafiken. Dieses extra für diesen Kurs ausgearbeitete Detailwissen, wirst Du in kaum einem anderen Unity-Kurs oder Tutorial finden!

    PRIMA ALS FORTSETZUNG DES C#-KURSES

    Die Umfrage zeigt auch, dass viele Teilnehmer schon ein wenig Vorwissen mitbringen. Der neue PixelArt-Kurs richtet sich als Vertiefungs-Thema an fortgeschrittene Anfänger und ist eine hervorragende Fortsetzung für alle, die bereits erste Schritte in Unity und C# unternommen haben. Keine Sorge – es werden alle Details der Umsetzung unserer Spielinhalte genau besprochen, jedoch sollten die Grundlagen der objektorientierten Programmierung bereits bekannt sein.

    Tipp: In meinem Unity-C#-Kurs lernst Du die erforderlichen Vorkenntnisse.

    ERGEBNIS: SPIEL-PROTOTYP und BAUSTEINKASTEN

    Nach Abschluss aller Lektionen hast Du einen Werkzeugkasten erstellt, mit dem Du den im Kurs entstandenen Spielprototyp problemlos um weitere Levels und Inhalte erweitern kannst.

    Das setzen wir konkret um:

    • Kachelsystem zur Gestaltung von Gras, zufällig gestreutes Laub, im Wind wehende Blumenwiese
    • Animierte Ozean-Fläche im Hintergrund
    • Wanderweg mit automatischer Richtungs- und Kurvengrafik
    • Insel-Landmasse, mit automatischer Wahl der jeweils richtigen Randgrafik an der Formkante
    • Heldenfigur, die in vier Richtungen laufen und kämpfen kann
    • Bäume mit räumlichem Effekt (Figur läuft vor den Wurzeln, aber hinter der Baumkrone vorbei)
    • Blocker-Hilfsmittel, um die Laufbewegung auf die Landmasse zu beschränken
    • Ausrüstbarer Schild, mit Wechsel der Bilder der Heldenfigur („Skin“)
    • Ausrüstbares Schwert mit sichtbarem Schwung beim Schlagen
    • Inventar, einsammelbare Kristalle und Lebesenergie-Herzen
    • Zerstörbare Büsche mit Zerschlagungsanimation
    • Feinde, die den Weg blockieren, den Helden verletzen und wegstoßen und mit dem Schwert zerstört werden können
    • Modulare Explosion, die z.B. bei Feindvernichtung abspielt
    • Blinken des Helden bei Verletzung
    • Todesanimation und GameOver bei vollständiger Erschöpfung
    • Zufälliges Erscheinen von Schätzen bei Zerstörung von Busch und Feind („Random Loot Spawn“)
    • Status-Leiste per UI-System – pixelpräzise mit der Spielszene ausgerichtet
    • Pixelpräzise Schriften
    • Savegame-System zur Sicherung von gesammelten Ressourcen, zerstörten Objekten und Spielerzustand
    • Speicherpunkte und Portalsystem
    • Integration von Musik und Soundeffekten (verschiedene Techniken)
    • Pausieren und Fortsetzen, Anzeige eines InGame-Menüs bei abgedunkelter Szene
    • Startmenü zum Fortsetzen, Neustarten oder Beenden des Spiels; inkl. animiertem Wolkenhintergrund
    • Credits-Szene mit selbstablaufendem Abspanntext (aus Textdatei gelesen)
    • Steuerung per Tastatur und Gamepad
    • Erstellen einer Bildschirmtastatur, um das Spiel auf Smartphones bedienen zu können
    • …und vieles mehr…

    Der Kurs ist mit fast 24 Stunden Videomaterial + Übungen sehr umfangreich, so dass ich hier nicht alles auflisten kann. Sieh Dir die Kurs-Seite an, um alle Inhalte im Detail nachzulesen!

    NEU: GRATIS E-BOOK ZUM KURS

    Du erhältst außerdem erstmals ein kostenloses, über 30-seitiges eBook mit Zusammenfassungen, Mitschriften und Code-Schnipseln zu den besprochenen Inhalten. An vielen Stellen gibt es sogar Links zu den zugehörigen Videolektionen zum schnellen Nachschlagen und Wiederholen.

    Schreibe Dich jetzt ein:

    [kursbanner thema=“pixelrpg“]

    Schreibe Dich jetzt ein!

     

  • Aktualisierung der Nutzungsverträge für AssetStore-Anbieter

    Aktualisierung der Nutzungsverträge für AssetStore-Anbieter

    Zum 14. September 2018 aktualisiert Unity die Nutzungsbedingungen wie auch das Provider Agreement, das die Vertragsgrundlage für AssetStore-Anbieter bildet.

    Neue Werbewerkzeuge für Publisher

    Die bereits zuvor angekündigte Erweiterung der Werbewerkzeuge führt nun dazu, dass Werbeaktionen gezielter definiert werden können. Das betrifft sowohl den Zeitraum als auch die eingeschlossenen Assets, die nun individuell an Werbeaktionen teilnehmen können sollen.

    Schärfere Nutzungslizenzen für Käufer

    Formulierungsänderungen an der Nutzungslizenz für Asset-Käufer machen nun deutlicher, dass eine einzelne Lizenz für maximal 2 Computer gilt, die aber nicht gleichzeitig genutzt werden können (es sei denn es wurden zwei separate Lizenzen, eine pro Computer, gekauft).

    Für Dienstleister verschärfen sich die Nutzungsbedingungen dahingehend, dass Lizenzen nicht mehr ‚durchgereicht‘ werden können. Kurz gesagt heißt das, dass ein Dienstleister, der ein Asset gekauft hat, dieses nicht einfach in einem für seinen Endkunden produzierten Projekt verwenden kann, sondern, dass auch der Endkunde eine separate Lizenz des Assets kaufen muss.

    Aus den Nutzungsbedingungen wird das Wort interaktiv gestrichen, so dass der Lizenztext auch statische Medien abdeckt. Assets können damit z.B. auch in Werbematerial (Print, Bild, Film) zum Einsatz kommen, sofern das Werbematerial ein Produkt (Spiel) bewirbt, in dem das Asset vorkommt. Als Anbieter haben wir unabhängig davon immer noch die Möglichkeit weitere Nutzungen zu erlauben, wenn man danach gefragt wird.

    [kursbanner thema=“assetstore“]

    Klärung der Rückerstattungsregeln

    Zur Stärkung des Vertrauens in den AssetStore als Handelsplattform werden die Rückerstattungsrichtlinien durch einige Formulierungsänderungen verdeutlicht. Verkäufe sind nach wie vor grundsätzlich endgültig und Rückgaben sind nur in Sonderfällen (oder bei gesetzlichem Anspruch) möglich.

    Als Anbieter können wir außerdem unabhängig von den offiziellen Regelungen Rückerstattungen erlauben, wenn:

    • das Asset nicht seiner Werbung/Beschreibung entspricht
    • das Asset nicht mit der aktuellen Unity-Version kompatibel ist (und das nicht im AssetStore dargestellt wurde)
    • das Asset Rechte Dritter verletzt

    Der Kunde kann mit seinem Rückerstattungswunsch auch den Unity-Support direkt kontaktieren, der in den genannten Fällen dann die Rückerstattung durchführen kann. Wird das Asset aus dem AssetStore genommen, können Käufer zudem innerhalb von 4 Wochen vom Kauf zurück treten.

    Verschärfung der Haftung für Anbieter

    Hinsichtlich der Haftung verschärft Unity wie angekündigt seine Regeln für uns Publisher. Es wird deutlich gemacht, dass wir Anbieter dafür verantwortlich sind, sicherzustellen, dass die Assets kein geistiges Eigentum Dritter verletzen. Dazu gehören die erstellten Assets sowie Tools oder Assets von Drittanbietern, die durch andere Lizenzen im Asset enthalten sind. Bereits veröffentlichte Assets, bei denen unsicher ist, ob eine Rechtsverletzung besteht, sollen bis zum 14. September 2018 aus dem Store genommen bzw. als veraltet markiert werden.

    __

    Alle Angaben in dieser freien Übersetzung und Zusammenfassung sind ohne Gewähr.

  • Propeller oder Schiffschraube in Unity realisieren

    ​Das könnte Dich interessieren:​