Alles rund um Construct, Webentwicklung und Spieleentwicklung. The aim of the game is to feel real good!
Dienstag, 22. Dezember 2020
Physical Animations | Live Training | Unreal Engine
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
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
Donnerstag, 5. November 2020
Utopian Indoor Pool
Zeit für ein Bad im utopischen Pool.
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.
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.
Dienstag, 29. September 2020
Psionne Maid Outfit
Mittwoch, 27. Mai 2020
Dienstag, 14. April 2020
Psionne Konzeptrender
Montag, 13. April 2020
Saint Opia Konzeptrender mit IRay Shader
Kazandra im Barbarenoutfit
Samstag, 11. April 2020
Der Moderitter
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
Mittwoch, 8. Januar 2020
Nintendo Switch Unterstützung für Construct
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
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
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)';
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: *');
$values = 'saveName=' . mysql_escape_string($_POST['saveName']);
$result = mysqli_query($query);
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:
$result = mysqli_query($query);
echo $result; // die gespeicherten JSON Daten werden für Construct's AJAX Objekt zurückgegeben