My intention is to 'learn while doing' to create an airplane approaching from a distance, that is on a roller-coaster-like path. It will begin in the distance (small & unrecognizable) and end/stop begin able to read a message/greeting on a window or center of the engine spinner for instance.
At this time, I think the frameworks for doing this are:
UIKit
Core Animation
Open GL ES
Core Graphics
What is the highest level that this is possible? Would a higher level be possible if the plane's path came straight? Is there another framework that could be used? (I've read about cocos2d, but prefer to first learn apple's.)
There's a new "Animating Images" capability in UIImage. A discussion starts at 16:33 in the WWDC 2011 video:
What's New in Cocoa Touch?
This would be similar to providing your application with an 'animated gif', by including only the series of images. No need to create the actual gif.
That allows you to create dynamic images. Then, to animating those (or static images) even further (such as moving them around the screen, sizing them, or changing their alpha translucency), check out the Core Animation WWDC videos and guide:
WWDC 2010
Core Animation in Practice, Video Part 1
Core Animation in Practice, Video Part 2
WWDC 2011
Core Animation Essentials Video
As well as the Core Animation Guide
Ray Wenderlich has some good beginning tutorials for iOS including some basic animation ones.
Check these out:
http://www.raywenderlich.com/tutorials
It'd be a good place to start...
Are you after 2D or 3D animation? If you want 2D, Core Animation is the obvious choice. Core Animation is very powerful, but the Apple documentation is vague at best. The Marcus Zarra Core Animation book is good, but doesn't cover much iOS specific animation code. Both it and the Bill Dudney Core Animation books are in need of updates. Both are worth owning, but both need to be updated and their iOS sections need to be greatly expanded.
If you want 3D animation, with perspective, then OpenGL is about your only choice. OpenGL is a bear to learn however.
Related
How to best reproduce the closing activity ring animation from watchOS 4 on iOS? Im particularly interested in the rotating sparkling effect.
Here a still frame of the animation I'm talking about:
and here is a video of it.
Is it possible to implement something like this with Core Animation?
Here at the university of science in zürich in the usability lab, we use:
sketch or illustrator or designer.gravit.io for designing the svg sketches.
than we import it in after effects or in Haiku.ai for animating
and export it as .json for airbnbs animations library Bodymovin or also known as Lottie. Therefor are libraries for web, android and ios available.
The advantage of this solution over #bryanjclark "exported it as a series of images" is that the animation is sharp in every resolution (svg), it is only one .json file and you have the full control over its speed and frames.
Otherwise if you really want to do it with code only, give a look at this Article, done with OpenGL ES2.0.
Or with the AnimationCore example in this SO Answer.
I’m nearly-certain that is a pre-rendered animation, not something generated on-device. (If it is generated on-device, it’s not something you’d have API access).
I’d bet that:
a designer worked it up in a tool like AfterEffects,
exported it as a series of images,
then the developers implemented it using something like WKImageAnimatable
You can see other developers using WKImageAnimatable to build gorgeous animations in their WatchKit apps - for example, Cultured Code’s app Things (watch the video there!) has some really terrific little animation flourishes that (almost-definitely) use WKImageAnimatable under-the-hood!
I just looked through the Apple Developer Library and could not find a Scene Kit programming guide. There seem to be programming guides for most other kits. Google finds one hit, but it's an old and apparently no-longer-linked-to doc.
Anybody know where else I might find such a thing?
Anybody have recommendations for a third party alternative?
Thanks!
Dave Ronnqvist wrote a very thorough book on Scene Kit:
This is Dave:
https://stackoverflow.com/users/608157/david-rönnqvist
This is the book's homepage:
http://scenekitbook.com
In many ways this book is better than an Apple Programming Guide... though it would need to be, it costs money.
I get a strong feeling from the documentation, WWDC videos and the English in the headers that are available that it's being developed by French people, in a bit of isolation from the rest of Apple.
This is probably a good thing, except for documentation. But that's also probably an indication that Scene Kit isn't actually yet finished. Careful consideration of its features tend to give the impression that it's a work in progress.
Oddly, I'd have said the same thing about Sprite Kit this time last year, but it's now a much more thoroughly complete framework for 2D games than it was through its first couple of iterations.
I bring this up because there's two serious overlaps between Scene Kit and the rest of Apple's frameworks, and 2 and half other points to consider with regards the progress, potential and promise of Scene Kit and Apple graphics and animation frameworks:
Sprite Kit's game loop and the introduction guide that details it is almost a 1:1 match to Scene Kit's game loop:
https://developer.apple.com/library/ios/documentation/GraphicsAnimation/Conceptual/SpriteKit_PG/Introduction/Introduction.html
Core Animation's animation processes are what's used for much of animating objects and values in Scene Kit, so the guides to Core Animation animation are ideal for all that.
Scene Kit is making a few radical increases in performance, functionality and features in iOS 9, which is still very much in beta.
3.a) iOS 9 also brings a lot of changes to rendering technologies and capabilities within Scene Kit and complimentary frameworks like Core Image, Core Graphics, Core Animation and Sprite Kit. All still in beta.
iOS 9/Mac OS X 10.11 also sees the addition of an entirely new and complimentary framework for 3D, Model I/O. This is also in beta
Given points 3, 3.a) and 4, I don't think we'll see a programming guide until they're more finished and polished and can actually guide a programmer through the entire pipeline of Scene Kit. Things like ambient occlusion baking, a significant feature of Scene Kit, aren't yet working in Xcode 7, so they clearly have a lot of work on their hands.
Overall, I think the future for Scene Kit is bright, because it's part and parcel of a very deep effort to make all drawing and animation APIs and frameworks compatible and collaborative. The future of this for 3D modelling, content creation, data visualisation, even UI features, is very promising. So to your comment, I don't think there's any fear that it will be deprecated, just a question of when it all comes together.
Whoops. Sorry, I misread your question.
I don't know that there is a "Scene Kit programming guide" but there is a short introduction.
As with many things, Ray Wenderlich has a good introduction. http://www.raywenderlich.com/83748/beginning-scene-kit-tutorial
Here is a link to the Scene Kit information.
https://developer.apple.com/scenekit/
I don't think it's being deprecated, in the new Xcode 7 there is still the scene kit editor and scene kit modeler.
The SceneKit talks at WWDC in 2013 and 2014 were written in SceneKit. They published the source code, meaning that every slide in the talk is its own sample code. See SceneKit Slides for WWDC 2014 and Scene Kit's presentation for WWDC2013.
The 2015 presentation has not, as of October 2015, been released.
Is it possible to make a short film using WebGL? I see tons of examples on animating an object or trigger based animation but nothing like film. I am new to this field.
WebGL is just a graphics library. You'll need an animation engine (or game engine that has animation built in) and you'll need an authoring program to make the animation.
You might try babylon.js
Theoretically you could make an animation in Blender or 3DSMax or Maya, export to FBX and import through the converters included in the engine. I suspect it's not setup to handle whole 3D scenes as is though.
Three.js might do it as well but I suspect it also doesn't handle full scenes directly out of the 3D program.
I suggest you start small. Make a simple animated scene using a few primitives and see if you can export it into one of those libraries.
Inka3D, which is a Maya to WebGL exporter, has been used to create so-called demos which are close to short films. These are called "Azathioprine", "Radiotherapy" and "70s". You can simply use maya as usual only with some limitations and make your short film. See www.inka3d.com for links to the demos.
I've already published a 2D game on the App Store, but I've noticed that when I add too many objects, the fps drop down, and it's a quite simple game, so I believe it shouldn't happen.
So I think that I'm not rendering the graphics properly.
What should I use, OpenGL ES, Quartz 2D, ...?
I've been reading Apple's documents about OpenGL ES for iOS, but they hardly ever mention 2D, so I'm not sure if it can be used for this.
I'm now using Quartz 2D, (I guess it's UIView, UIImages, UIImageViews), but in fact, I'm not using the drawRect method of the views, ever. I create the images or graphics within the init function of the view, and a save them into a variable if I need to modify their properties later.
Any suggestion, recommendation, pdf would be highly appreciated! :)
PS: Here's a link to the game, if you want to have a better idea about it: http://itunes.apple.com/es/app/kipos/id494638587?mt=8
I recommend you use Cocos2D. Its features will make game development a lot easier for you. If you think you're up for a challenge, try OpenGL ES. I'll warn you though: it has a very steep learning curve.
The core question is "what are my options for decent particle effects in an iOS app?"
I wrote an iPad app where I wanted to use a large amount of UIKit objects in the UI and just keep to a native iPad codebase feel. However I wanted nice particle effects, so instead of going with cocos2d and distancing myself from using native objects directly, I wrote my own particle effects engine utilizing quartz. It works, but the performance is very underwhelming.
Do I have to go with an openGL ES solution to get any good performance at all (openGL and uikit view don't play nicely together); Are there any libraries out there that will let me simply add a UIView that contains the particle effects systems layered in my app as I see fit to place it (pretty much what I've tried to do with pretty bad performance)?
(Forgive me if my usage/knowledge of GL is rusty; I've been out of sight for a few months and do not have a strong handle on it.)
I believe they've added particle effects to Core Animation as of iOS 5. Try this video or look up CAEmitterLayer.