Mittwoch, 30. November 2016

Move UV Mapping of a 3D geometry

// Das UV Mapping einer 3D Node skalieren
self.geometry?.firstMaterial?.diffuse.contentsTransform = SCNMatrix4MakeScale(0.1, 0.1, 0)



// Das UV Mapping einer 3D Node verschöben

self.geometry?.firstMaterial?.diffuse.contentsTransform = SCNMatrix4MakeTranslation(0.1, 0.1, 0)

Dienstag, 29. November 2016

Animate UVs / Animate Texture for a SpriteAtlas / Flipbook effekt

let spriteatlasanimation = CAKeyframeAnimation()
        
// We do not directly animate UV´s but a matrix instead that moves the
// UV´s across the texture space
spriteatlasanimation.keyPath = "geometry.firstMaterial.diffuse.contentsTransform"

let pos0 = SCNMatrix4MakeTranslation(0.0, 0.0, 0)
let pos1 = SCNMatrix4MakeTranslation(0.1, 0.1, 0)
let pos2 = SCNMatrix4MakeTranslation(0.2, 0.2, 0)
let pos3 = SCNMatrix4MakeTranslation(0.3, 0.3, 0)
let pos4 = SCNMatrix4MakeTranslation(0.4, 0.4, 0)
let pos5 = SCNMatrix4MakeTranslation(0.5, 0.5, 0)
let pos6 = SCNMatrix4MakeTranslation(0.6, 0.6, 0)
let pos7 = SCNMatrix4MakeTranslation(0.7, 0.7, 0)
let pos8 = SCNMatrix4MakeTranslation(0.8, 0.8, 0)
let pos9 = SCNMatrix4MakeTranslation(0.9, 0.9, 0)

spriteatlasanimation.values   =  [pos0, pos1, pos2, pos3,  pos4,  pos5,  pos6,  pos7,  pos8,  pos9]
spriteatlasanimation.keyTimes =  [0, 0.10.2, 0.3, 0.4, 0.5, 0.6, 0.7, 0.8, 0.9]
spriteatlasanimation.duration0.5
spriteatlasanimation.isAdditive = false
        
// No Interpolation required for Flipbook effect : kCAAnimationDiscrete
spriteatlasanimation.calculationMode = kCAAnimationDiscrete
spriteatlasanimation.repeatCount = .infinity


<SCNNODE>.addAnimation(spriteatlasanimation, forKey: "test3")

SWIFT 3 SCENEKIT IOS SCNGeometry Geometrie von Hand erzeugen.

func Quad() -> SCNGeometry {

    let verticesPosition = [
        SCNVector3Make( -2, -2, 3),
        SCNVector3Make2, -2, 3),
        SCNVector3Make22, 3),
        SCNVector3Make( -22, 3)
    ]
    let textureCord =    [CGPoint(x: 0.0,y: 0.1),
                          CGPoint(x: 0.1,y: 0.1),
                          CGPoint(x: 0.1,y: 0.0),
                          CGPoint(x: 0.0,y: 0.0)]
    
    let indices: [CInt] = [
        0, 2, 3,
        0, 1, 2
    ]
    
    let vertexSource = SCNGeometrySource(vertices: verticesPosition, count: 4)
    let srcTex = SCNGeometrySource(textureCoordinates: textureCord, count: 4)
    let date = NSData(bytes: indices, length: MemoryLayout<CInt>.size * indices.count)
    
    let scngeometry = SCNGeometryElement(data: date as Data, primitiveType: SCNGeometryPrimitiveType.triangles, primitiveCount: 2, bytesPerIndex: MemoryLayout<CInt>.size)
    
    let geometry = SCNGeometry(sources: [vertexSource,srcTex], elements: [scngeometry])

    return geometry


}

Blog Neugeburt und Umwindmung : Swift 3 / Scenekit / IOs Beispiele

Seit einem Jahr bastele ich in Swift auf dem iPhone an einer App. 
Ich will meine Programmierkenntnisse auffrischen, außerdem macht das Spaß. Ich habe mich für Swift entschieden, weil ich gern auf dem iPhone arbeiten wollte und mir Unity und andere Engines zu fett und groß waren. Ich will eher programmieren, weniger drag und droppen. 
Das Apple das verrufene Objective C durch etwas moderneres ersetzen will, klang vor  12 Monaten sehr gut für mich - vlt isses das auch. 
Aber...

...dummerweise hat Swift einige erhebliche Probleme, die es einem Programmier-Dilettanten wie mir drastisch erschweren, in Swift nach den Playground Basics voranzukommen.
  • Swift ändert sich ständig von Version zu Version (also alle 6 Monate). Apple scheint nach der idealen Programmiersprache zu suchen und scheut sich dabei nicht - wesentliche Elemente der Syntax und Funktionen über Bord zu werfen oder komplett umzubauen. Das führt dazu dass die meisten Programmierbeispiele die man im Netz findet, nicht out of the Box funzen, weil sie von einer alten Version stammen. Das kann superfrustrierend sein.
  • Swift hat sich bei der Suche nach der idealen Programmiersprache in einige ziemlich verwinkelt, elaborierte verwinkelte Elfenbeinprobleme vermurkelt - die der Sprache einige eigentümliche Schnörkel verleihen.
  • Swift hat vor allem im 3D Bereich (also Scenekit) noch keine wirkliche Reichweite (verglichen zB mit Unity) - entsprechend rar machen sich Beispiele. Meistens findet man beim Googeln Scenekit Beispiele in C - und muss sie dann irgendwie "übersetzen". 
  • Die immer selben Tutorials im einfachen Einsteiger Bereich gibt es wie Sand am Meer - aber sobald man spezifisches braucht, wird es ganz schnell dünn.
  • Alles das gilt auch für Bücher und Tutorials die man kaufen kann: die Hälfte der Beispiele funzen nicht, gehen nicht ins Detail oder sind in C.
Wenn man sich durchbeißt, macht es doch ganz gut Spaß. Sehr vieles geht wirklich sehr gut und leicht.

Daher schnappe ich mir mal meinen alten Blog - wo ich 2010 gerade mal drei Posts gemacht habe und fülle stattdessen mal paar praktische SWIFT Beispiele ein. Einfach um bestimmte Patterns, Methoden und Syntax auch für mich selber zu speichern. Vlt isses auch für jemand anderen hilfreich.

Montag, 8. November 2010

Ritter Runkel (1964)

1955 erschien in Ostdeutschland, der DDR, das erste Heft der bis heute monatlich erscheinenden Comic Zeitschrift MOSAIK erschaffen von Hannes Hegen. Mit laut Wikipedia nachwievor 100.000 Exemplaren jeden Monat ist es damit das älteste und auflagenstärkste Comic deutscher Produktion, das in 55 Jahren nun viele Hoch und Tiefs erlebt hat.
Eine Besonderheit dieses Heftes ist, das zusammenhängende Geschichten mit riesigen Handlungsbögen oft über viele Jahre erzählt werden und außerdem Wert auf die Vermittlung geschichtlichen und wissenschaftlichen Wissens gelegt wird. Ganze Generationen ostdeutscher Kinder bezogen den Großteil ihrer Allgemeinbildung aus dem Mosaik.
Da dieser Blog für die Perlen reserviert sein soll, möchte ich die nach meiner Meinung herausragendste Geschichte hervorheben: Die Ritter Runkel Serie - die in den Heften 90 bis 151 vom Mai 1964 bis Juni 1969 erschien.
Ritter Runkel ist ein verspäteter Kreuzfahrer. Die Kreuzzüge sind lange vorbei...
Besonderheit ist das die Texte auf literarisch hohem Niveau nicht im Bild als Sprechblasen zu finden sind, sondern unter dem Bild. Eine weitere Besonderheit sind die doppelseitigen Grossbilder, die die heute so beliebten Wimmelbilder vorausnehmen und mitunter hunderte von Figuren in einem Bild zeigen.
Die Serie ist heute in einer sehr guten Neuauflage in zehn Bänden verfügbar und kann als wertvoll, unterhaltsam und lehrreich wärmstens empfohlen werden.

Es gibt ein FanWiki mit allen Details:mosapedia.de

Montag, 25. Oktober 2010

Laputa (1986)

Es gibt wenige Filme die mich so nachhaltig berührt und beeinflußt haben wie dieser: Laputa. Das Schloß im Himmel. (天空之城 Laputa Castle in the Sky (Sheeta no Ketsui) )

Die unzähligen 5 Sterne Reviews auf Amazon sprechen eine eigene Sprache der man eigentlich wenig hinzufügen müsste. Ich möchte es trotzdem versuchen, denn eine lange Geschichte verbindet mich mit dem Film.

1993 hatte ich in Annecy zum Trickfilmfestival zum ersten Mal die Gelegenheit diesen genialen Film von Hayao Miyazaki zu sehen. Ich war damals ein junger Animations-Student - und von dem Japanischen Film verstanden wir mangels Sprachkenntnis auch die Französischen Untertitel nicht.  Trotzdem rührte uns der Filme  zu Tränen  (das tut er noch heute) - einfach die Zeit nehmen und nur die Musik anhören.  Zumindestens mir läuft es jedesmal kalt den Rücken runter... Comic Großmeister Möbius stellte im Kinosaal den Meister vor - der sich in -  minutenlangen Standing Ovations - Applaussturm ohne Ende - bescheiden verbeugte. (Wie sehr diese beiden Geniusse sich gegenseitig verehren und beeinflussen zeigt ein spannendes Interview mit beiden auf Youtube) Viele Jahre war es vollkommen unmöglich in Deutschland an die Filme aus dem Ghibli Studio zu kommen. Ein kleiner Trost für die Myazaki Begeisterten waren die Nausicaä Comics die man in guten französischen oder italienischen Comic Shops erstehen konnte, und denen ich in diesem Blog noch einen eigenen Eintrag widmen werde.  Erst 1997 hielt ich eine von Fans englisch untertitelte mehrfach handkopierte Version auf VHS in den Händen, die ihren Weg aus Seattle nach Deutschland gefunden hat - einen japanische Original Kassette - chinesisch untertitelt -  brachten Freunde von einer Reise nach Taiwan mit...

Was mich nachwievor unglaublich begeistert, ist die Tatsache das Myazaki einfache menschliche Gefühle im typischen japanischen Anime Stil präsentiert (bis hierher nichts besonderes!) - dabei aber niemals ins kitschige abrutscht. Die Figuren und Geschichte strahlen einen inneren Ernst und eine tiefe Glaubwürdigkeit aus, wie es auch großen echten lebendigen Schauspieler nur in begnadeten Momenten gelingt.
Wenn der im Berg lebende alte Mann das Licht löscht und das Gestein zu leuchten anfängt...

Montag, 11. Oktober 2010

Die Schneekönigin (1957)


Der erste Eintrag in meinem Blog soll einem Meisterwerk des Klassischen Sowjetischen Zeichentricks gehören.
Die Schneekönigin (Snezhnaya koroleva) von  Lev Atamanov  (*1905 +1981) aus dem Jahr 1957 ist ein zauberhaftes Wintermärchen das nicht nur Generationen von Kindern verzaubert hat sondern auch große Meister der Animation wieder und wieder inspiriert hat. 

Erzählt wird sehr werkgetreu an der Vorlage von Hans Christian Andersen das Märchen von den Freunden Gerda und Kay. Der Junge wird von der Schneekönigin entführt. Gerda macht sich daraufhin auf eine lange gefahrvolle Reise auf der Suche nach ihrem besten Freund. 

Der Film orientiert sich technisch an den Vorbildern der  klassischen Disney Animation und erreicht große Brillianz. Darüberhinaus - und das ist das Besondere - strahlt der Film eine Wärme und Tiefe aus, die man den Disney Filmen vergeblich sucht. An dunklen kalten Winternachmittagen genau das richtige um sich mit den Kindern aufs Sofa zu kuscheln.

Formerly Lost Treasure
Die deutsche DEFA Synchronisation der Schneekönigin war lange ein verlorener Schatz. Man konnte diesen Film in Deutschland nicht mit DEFA Synchro sondern nur furchtbar verstümmelt kaufen. Daher wurden Kopien alter Fernsehaufzeichnungen wie Goldstaub privat  getauscht. Inzwischen hat sich das zum Glück geändert. Die DEFA Synchro ist endlich erhältlich.

Sonstiges
  • Der von mir verehrte japanische Animationsgroßmeister Hayao Miyazaki (ihm werde ich ebenfalls nicht nur einen Eintrag in diesem Blog widmen) - verweist auf die Schneekönigin als einen seiner wichtigsten Inspirationpunkte. (Zitat hier noch einfügen)
  • Hier ist ein Mitschnitt aus dem Russischen Fernsehen  anläßlich des 50jährigen Jubiläums, der erzählt unter welchen Schwierigkeiten der Film gefertigt wurde. Unbedingt sehenswert.