2012-07-31 17 views
10

için özel özelleştirilebilir özellikler custom animatable properties in Core Animation oluşturmak mümkün olduğunu biliyorum, ancak OS X 10.8'in SceneKit çerçevesindeki nedir? SCNAnimatable, CALayer'un özellikleri animatable yapmak için yaptığı aynı API'ları ortaya çıkarmıyor gibi görünüyor.SceneKit

Uygulamamda, Starfield adlı bir SCNNode alt sınıf var, eski bir OpenGL uygulamasından SCNNodeRendererDelegate kullanarak bağlantı kurdum. Starfields bir GLfloat mülkiyet warpFactor denilen maruz:

@interface Starfield : SCNNode<SCNNodeRendererDelegate> { 
    // other stuff that's not really important for this question 
    GLfloat warpFactor; 
} 

@property(nonatomic) GLfloat warpFactor; 
@end 

Ama şöyle, buna bir animasyon eklemek çalıştığınızda:

[SCNKit ERROR] warpFactor is not an animatable path (from <unnamed SCNNode 0x1016473c0, no children>) 
:

CABasicAnimation *warp = [CABasicAnimation animationWithKeyPath:@"warpFactor"]; 
warp.toValue = @1.0; 
warp.duration = 5.0; 
[starfield addAnimation:warp forKey:@"warp"]; 

ben konsolunda aşağıdaki olsun

SceneKit'in yepyeni olduğunu biliyorum, ancak bu işin nasıl yapıldığını bilen biri var mı?

+1

yoluyla diğer animasyonlarla özel mülkiyet animasyonu senkronize etmenizi sağlar. –

cevap

0

SceneKit özel canlandırılabilir ana yol desteklemez

+0

Bu kesinlikle mantıklı görünüyor, ama sadece pes etmeden önce, yapmak istediğim şeyin aslında imkansız olduğunu teyit etmek isterim. Beni onaylayan dokümanlar veya başka bir şeye işaret edebilir misiniz? –

+0

SceneKit için dokümanlar oldukça seyrek. Baktım ve hiçbir şey bulamadım. Hata mesajı alacağınız en iyi şey olabilir. – jblocksom

+0

Evet, başka birinin başka bir cevapla atlayabileceğini umuyordum, ama en azından Apple'ın daha iyi belgeleme yapmasına imkan tanıyan en iyisi bu gibi görünüyor. Kabul. –

3

bir çözüm/kesmek:

  • Geometri az bir düğümün yaratılması ve opaklık, örneğin, bu düğümde
  • kullanımı bazı canlandırılabilir özelliğini canlandırabilir oluşturma işleminin uygun aşamasına kancalamak ve özel mülkünüzü geometri olmayan düğümün animasyonlu özelliğinin değeriyle el ile güncelleştirmek için bir SCNSceneRendererDelegate (düğümün presentationNode öğesinden animasyonlu özelliği okuduğunuzdan emin olun)

Bu çözüm çirkin, ama ben bu SceneKit hakkında burada istedi ilk soru birisi olduğunu gerçekten şaşırdım SCNTransaction veya CAAnimationGroup

+0

İlginç bir fikir, teşekkürler! –

+0

Sadece bunu yapan bir "enterpolasyon düğümü" oluşturdum: CIFilter özellikleri gibi şeyleri canlandırdım ve her kareyi ihtiyaç duyduğum her şeye göre değerlendirdim. Oldukça iyi çalıştı. – LucasTizma