Dienstag, 22. Dezember 2020

Physical Animations | Live Training | Unreal Engine

Die "Physical Animation Component" ist ein neues Feature in Unreal Editor 4 mit vielen Anwendungsmöglichkeiten. Ian Shadden begleitet beim Aufsetzen eines Drittperson-Vorlage-Charakters mit der Physical Animation Komponente begleiten, damit zukünftig auch eigene physik-basierte Charaktere entworfen werden können.

 
Mach Dich auf sich flüssig bewegende Skeletal-Meshes gefasst, die hie und da in etwas hineinstolpern. Danach erschaffst Du Deine Eigenen, die Du dann wieder im Zeug herumwerfen kannst!

Freitag, 18. Dezember 2020

Construct 2 Manual

Falls Du das offizielle Handbuch für Construct 2 vermisst, gibt es hier eine Download-Möglichkeit. Es ist nicht ganz so einfach von der Hauptseite aus zu finden. Letztes Jahr hatte ich das Gefühl, als hätte Scirra es von der Seite verbannt, um Construct 3 mehr zu pushen. 

Hier gäbe es alternativ ein Onlinemanual.


Nachtrag vom 06.02.2021:

Aktuelle Links zu Construct 2 Handbücher auf Englisch.

https://www.construct.net/en/construct-2/manuals/construct-2

https://www.scirra.com/manual/download

 
Alternativ gibt es von Amnesia Games ein ausführliches Handbuch.

Construct 2 Manual

 

Freitag, 4. Dezember 2020

Olympia erhält Meldung auf Transmitter

Olympia posiert mit SciFi Keule und Transmitter. Fehlt noch ein passender Hintergrund und dann könnte das ein gutes Bild für eine Komposition abgeben.

War urpsrünglich ein Experiment und als Logo gedacht. Anfänglich wurde das bild mit zwei verschiedenen "Distant Lights", um eine kontraststarke Hintergrundbeleuchtung zu erschaffen, welche als farbige Kontur für die Figur dienen sollte.

Freitag, 6. November 2020

DAZ Genesis 3 zu Genesis 8 Kleidung konvertieren

Eine kurze Schritt für Schritt Anleitung, um im DAZ Studio Kleidungsstücke von Genesis 3 zu Genesis 8 umzuwandeln und als eigenständiges Prop/Wearable zu speichern.

Lade die Genesis 8 Grundfigur in die Szene.

Deselektiere Genesis 8 mit einem Klick irgendwo in die leere Szene.

Lade die Kleidung aus der Bibilothek. Es ist wichtig, dass G8 nicht selektiert ist, da wir kein AutoFit benutzen wollen.

Klick auf den Eintrag der Kleidung im Scene Tab.

Ebenfalls im Scene Tab, finde den kleinen Knopf mit den vier waagerechten Linien rechts oben am Tab. Klicke ihn an und wähle Edit –> Scene Identification.

Klick auf die drei Punkte „…“ rechts von „Preferred Base“.

Eine riesige Liste erscheint. Finde Genesis 8 und Female darunter. Klick Accept. Dann nochmal Accept.

Vor dem Transferschritt, posiere die Kleidung, damit sie zur Zielfigur passt (Arme runter für G8 und umgekehrt für G3) und wähle den Joint Editor. Sieht wie ein Knochen mit einem Stift quer darüber aus. Rechtsklicke nun im 3D Fenster und wähle Edit and Bake Joint Rotations.

Im Scene Tab, linksklicke auf Genesis 8. Halte Shift oder Strg/Ctrl und linksklicke auf dein Kleidungsstück, sodass beide ausgewählt sind. Wichtig ist, dass Genesis 8 als ERSTES selektiert wurde. Die Reihenfolge spielt hier eine Rolle.

Nun klicke erneut den kleinen Knopf rechts oben vom Scene Tab.

Wähle Edit –> Rigging –> Transfer Rigging (Figure Space).

Nun kannst du das Kleidungsstück mittels „Fit to“ an der G8 Figur anpassen. Bemerke, wie wir die Geometrie überhaupt nicht beeinflusst haben. Die FBM-Basen sind identisch, also sollten sie sauber funktionieren. Die JCMs sind nicht komplett identisch im Test von SickleYield, aber nah dran. Wenn das Stück in der Bibliothek erneut speicherst (File –> Save As –> Support Asset –> Figure/Prop Assets), stelle sicher, dass du einen neuen Namen verwendest, ohne das Original zu überschreiben. 

 

Tribut geht an SickleYield mit seinem englischen Original auf: https://www.deviantart.com/sickleyield/journal/Tutorial-Convert-Clothing-G3-to-G8-G8-to-G3-686682065

Elysium Science Fiction Home Office

 

Elysium Science Fiction Home Office

Ein Ausschnitt aus dem Elysium Sciene Fiction Apartement.

Donnerstag, 5. November 2020

Utopian Indoor Pool

 Zeit für ein Bad im utopischen Pool.

 

DAZ Utopia Pool Unfinished Render

Zwei Stunden Renderzeit auf dem Laptop mit einer nVidia GeForce 960M. Zum Glück haben die Texturen in die 2 Gigabytes VRAM gepasst, sonst, wär der Render noch körniger.

Samstag, 3. Oktober 2020

Cheetah with big paws

 Hier eine Cheetah Variante der DAZ Big Cat 2. Irgendetwas scheint mir an seinen Tatzen komisch. Mal abgesehen, dass der Schattenwurf vorne ein wenig schief aussieht. 

Cheetah mit Schatten auf transparentem Hintergrund

Mit einem Hintergrund fällt es dann doch nicht so extrem auf. Obschon es noch immer wie aufgeklatscht wirkt.


Cheetah mit Waldstück als Hintergrund

Am besten versuche ich den nächsten Render im DAZ Studio mit eingeschaltetem spektralem Rendering und der Einstellung auf "faithful" und "cie1964", damit das Umgebungslicht besser auf den Cheetah zurückfällt. 

Donnerstag, 1. Oktober 2020

Sci-Fi Modular Living Room

Wieder mal eine Szene gerendert. Dauert oft seine Weile.

Modular Space Living Room Innenansicht


Dieses Bild eines modularen Sci-Fi Wohnraums wurde mit dem Laptop und einer GeForce 940M gerendert. Hat ein Weilchen gedauert und ist nicht ganz fertig geworden. Wirkt noch sehr körnig...

Dienstag, 29. September 2020

Montag, 13. April 2020

Saint Opia Konzeptrender mit IRay Shader

Ein Render des Saint Opia Projekt. Ein Versuch, die Originalszene mittels IRay Shader aufzupeppen. Könnte noch ein bisschen mehr Schliff vertragen, denke ich.

Kazandra im Barbarenoutfit

Ein weiterer Konzeptcharakter mit einem Outfit, welches gerne zu Spielbeginn gefunden wird.

Samstag, 11. April 2020

Der Moderitter

Hat der Ritter nicht eine wunderbar modische Rüstung? 😉
Ein Konzeptrender und mir fällt sogleich auf, dass das Schwert seinen Umhang zerschnippelt. Die lieben Details... 🙈


Donnerstag, 9. April 2020

Charakter Konzept Sasha Psy Dagger

Etwas für die Augen. Ein Konzeptrender einer der Spielfiguren mit dem Arbeitstitel Sasha Psy Dagger für zukünftige Projekte. Eine Galerie/Katalog, eine Wiki und ein neuer Blog sind in Arbeit





Mittwoch, 8. Januar 2020

Nintendo Switch Unterstützung für Construct

Aktuell unterstützt Construct die Nintento Switch nicht. Es läge an Nintendo Construct in die Liste unterstützter Spiele - Entwicklung - Engines aufzunehmen. Das Team von Construct wäre laut Forenbeitrag begeistert von dem Gedanken.

Falls es Dich genauso begeistert, ist hier auf change.org eine Petition an Nintendo am laufen. Unterstütze sie mit Deiner Stimme!


Sonntag, 5. Januar 2020

Wait Aktion in Construct 2


Construct verfügt über eine Möglichkeit, die in einem Event auf die Wait Direktive folgende Aktionen zu pausieren. Hier findet sich eine Kurzfassung der wichtigsten Punkte zur Wait System Aktion.

Alle selektierten Objekte (zum Beispiel über Pick by comparison) werden dabei gemerkt und die folgenden Aktionen um die gewünschte Zeit verzögert ausgelöst. Dasselbe gilt für Sub-Events. Alle anderen Events werden normal weitergeführt.


Die gesamten Selected Object Lists (SOL - selektierte Objektlisten) werden gespeichert und die Wait Aktion unterbricht das aktuelle Ereignis. Nach Ablauf der eingegebenen Wartezeit wird das SOL erneut geladen und alle Aktionen und Sub-Events nach dem Wait Ereignis ausgeführt.

Jeder weiterer Aufruf von Wait ruft erneut den obigen Prozess aus.
Vorsicht: Nur gilt dabei zu merken, dass die Zeit vo

Zu guter Letzt und der eigentliche Grund, warum diese  Kurzanleitung zusammengetragen wird, ist ein Trick, welcher alle subsequenten Aufrufe nach Wait ans Ende der Ereigniskette. Anders gesagt, die Aktionen werden erst am Schluss der Systemschleife ausgeführt.

Weitere Systemfunktionen gibt es hier im Manual und im Tutorial Wie wird die Wait Aktion benutzt auf der Scirra Seite. Das Tutorial ist aufschlussreicher als das Handbuch, welches bloss auf das Tutorial verweist. ;-)

(... und noch weitere Möglichkeiten gibt es mit Signal und Wait for Signal). Das markiere ich mal mit Erweiterbar. Entweder gehe ich hier oder in einem neuen Blogpost darauf ein.

Projektzustand in der Tabelle einer mySQL Datenbank speichern

Events in Construct
(in Arbeit)
Im Construct 2 Editor sind folgende Events und Aktionen nötig:
  • Bei Klick auf den Savebutton Aktion "System -> Save" aufrufen
  • On Save Complete und On Save Fail abfangen
    • Variable "query" mit Standartwert "saves=" & URLEncode(SaveStateJSON ) setzen 
    • Der On Save Complete Event ruft mittels Ajax die Datei "ajax_save.php" auf und übergibt query als Wert
    • Der On Save Fail Event sorgt dafür, dass Du was mitbekommst, falls was schief gehen sollte. Hier sorgst du entweder mittels Console.Log() oder einem Textobjekt für Rückmeldung.
  • Damit später wieder drauf zugegriffen werden kann, gibt's ein Klick Event für einen Load Button und dieser ruft wieder AJAX auf, um "ajax_load.php" ins System zu kriegen.
  • On Ajax Complete mit Tag "load" abfangen
  • System Aktion Load from JSON ausführen mit Ajax.LastData ausführen
  • Wiederum auf On Load Complete und On Load Fail eingehen

Server
Beschaff dir online einen Server oder lade XAMPP herunter, um dir ziehmlich schnell einen eigenen Server einzurichten.
Wenn Du Zugriff auf den myPHPAdmin hast, kannst Du dort die Datenbank "games" und die Tabelle "savegames" gleich direkt erstellen. Ansonsten kannst Du auch den Code vom Punkt "Initialisiere Tabellen" benützen.


Verbindung zum mySQL Server

Für den ersten Teil erstellst Du eine Datei mit Namen "database.php". In dieser wird die Verbindung zum mySQL Server hergestellt.

// Damit alle Fehler angezeigt werden, ansonsten auskommentieren.
error_reporting(E_ALL);

define ( 'MYSQL_HOST',  'localhost' );
define ( 'MYSQL_CLIENT',  'root' );
define ( 'MYSQL_PASS',  '' );
define ( 'MYSQL_DBASE', 'c2games' );

$db_link = mysqli_connect (MYSQL_HOST, MYSQL_CLIENT, MYSQL_PASS, MYSQL_DBASE);

if ( $db_link )
{
    echo 'Verbindung erfolgreich: ';
    mysqli_set_charset($db_link, 'utf8_bin');

    // print_r( $db_link);
}
else {
    echo ('FEHLER: Keine Verbindung möglich: ' . mysqli_error());
}


Initialisiere die Tabellen
Falls Du sicher gehen willst, dass die Datenbank und Tabellen existieren kannst Du das Skript "database.php" erweitern. Damit wird die Datenstruktur in jedem Fall erstellt, was den Code einfacher zügeln lässt. Das System wird quasi geeicht.

$query = 'CREATE DATABASE c2saves';
$result = mysqli_query($query);
 
$query = 'CREATE TABLE savegames ( saveName VARCHAR(255) NOT NULL PRIMARY KEY, saveData TEXT)';
$result = mysqli_query($query);

In der Tabelle speichern

Der  zweite Teil besteht darin eine Datei "ajax_save.php" anzulegen. Diese füllst Du mit dem folgenden Code und passt ihn nach Deinem Gusto an:

header('Access-Control-Allow-Origin: *');
include 'database.php';
define('TABLE', 'savegames');

$values = 'saveName=' . mysql_escape_string($_POST['saveName']);
$values .= ', saveData=' . mysql_escape_string($_POST['saveData']);
 
$query = 'INSERT INTO TABLE SET { $values } ON DUPLICATE KEY UPDATE TABLE SET { $values }';

$result = mysqli_query($query);
echo $result; // hier kann mit dem Ajax Objekt in Construct die Rückmeldung ausgegeben werden?>

Savegame aus der Datenbank laden
Teil drei der Geschichte; Wir wollen die Daten ja auch wieder aus der DB rausholen können, oder? Hier könnten wir obiges Beispiel anpassen und so umschreiben, dass es mittels weiterer POST Variable, wie besipielsweise "modus" angesteuert wird, ob es nun Daten aufruft oder speichert. Der Einfachheit halber werden wir hier aber dafür die Datei "ajax_load.php" erstellen und Du kannst wiederum den folgenden Code einfügen:

header('Access-Control-Allow-Origin: *');



include 'database.php';

define('TABLE', 'savegames');


$condition = 'saveName="' . mysql_escape_string($_POST['saveName'].'"');
$query = "SELECT saveData FROM TABLE WHERE $condition "

$result = mysqli_query($query);
echo $result; // die gespeicherten JSON Daten werden für Construct's AJAX Objekt zurückgegeben

Zum Schluss
Dieser Eintrag lebt von Erfahrungen und passendem Lesestoff. Dabei kann er sich jederzeit weiterentwickeln. Momentan befindet er sich noch in der Fassungsphase. Dennoch hoffe ich Dir erste Ideen oder gar ein fertiges Produkt in die Hände gelegt zu haben.
Gleichwohl sei gewarnt, denn das Testprogramm und die Skripte zum Test dieses Tutorials sind gerade erst im entstehen. Sieh es so, dass ich mir hier gerade selber eine Anleitung schreibe, um meine Arbeitsmethodik zu verbessern.

Quellen
Das Construct Handbuch
https://www.construct.net/en/tutorials/speichern-momentanen-1872?highlight=25370#comments
https://www.informatikzentrale.de/mysql-tabelle-anlegen.html
https://www.php-kurs.com/mysql-datenbank-anlegen.htm