SlideShare a Scribd company logo
1 of 40
SceneKit
2013.6.1
Cocoa勉強会 関西
大森智史
@oogon / satoshi.oomori
2013年 6月 1日 土曜日
• スライドは公開しますがサンプルは一部非公
開です。(コードは公開しますがコンテンツ
ファイルは除外)
• 後ほどFacebookページにて
2013年 6月 1日 土曜日
あんた、誰?
• と、いうわけで自己紹介。
2013年 6月 1日 土曜日
• 大森智史といいます。
• Objective-Cで遊んでます。
• Cocoa勉強会関西は第0回からいます。
2013年 6月 1日 土曜日
• iOS本、電子書籍版はまだまだ、3048円でご提供中です。
• https://play.google.com/store/books/details?id=2TgvD5PYKvAC
2013年 6月 1日 土曜日
SceneKit
2013年 6月 1日 土曜日
SceneKit
シーンキット
2013年 6月 1日 土曜日
SceneKit詳しい方?
2013年 6月 1日 土曜日
SceneKit詳しい方?
シーン
2013年 6月 1日 土曜日
SceneKit
• iOSではなく、OS Xのフレームワーク
• 3Dの表示が、わりと簡単にできます。
• 将来はiOSにも?
2013年 6月 1日 土曜日
• 今日は
2013年 6月 1日 土曜日
• Macです。
2013年 6月 1日 土曜日
•Macです。
2013年 6月 1日 土曜日
• .daeファイルを読んで3Dオブジェクトとして
使うことができます。
2013年 6月 1日 土曜日
• .daeファイル?(digital asset exchange)
• 元々は3Dソフトの交換用ファイル(XML)だ
ったので、多くの3Dソフトからエクスポー
トできる
2013年 6月 1日 土曜日
• .daeファイルの作成。
• 3Dモデリングソフトで作ります。
2013年 6月 1日 土曜日
• 3Dモデリングソフト
• Blender練習中です。
2013年 6月 1日 土曜日
• .daeファイル( COLLADAともいう)
• オブジェクトの他、アニメーションも含む事
ができる
2013年 6月 1日 土曜日
• できる事
• .daeファイルでモデル配置、アニメーション
• 床
• 文字
• ビューの外から操作できる。
2013年 6月 1日 土曜日
• 何よりも
2013年 6月 1日 土曜日
•Objective-C
2013年 6月 1日 土曜日
• それに
2013年 6月 1日 土曜日
•無料
2013年 6月 1日 土曜日
Appleのサンプルを元にいろいろやってみる。
DEMO
2013年 6月 1日 土曜日
それでは
詳細説明
2013年 6月 1日 土曜日
• COLLADA(.dae)ファイルを作らなくても
テキストの表示ができます。
テキスト
2013年 6月 1日 土曜日
//テキスト
text = [SCNText textWithString:@"text" extrusionDepth:20.0f];
textNode = [SCNNode nodeWithGeometry:text];
textNode.position = SCNVector3Make(-1, 5, -1);
textNode.transform = CATransform3DScale(textNode.transform, 3.0f, 3.0f,
3.0f);
//textNode.transform = CATransform3DRotate(textNode.transform, 2.0f,
0.0f, 0.0f, 1.0f);
textNode.transform =CATransform3DTranslate (textNode.transform, -20.0f,
-20.0f, 0.0f);
textNode.transform =CATransform3DRotate(textNode.transform, 3.14*0.0,
1.0, 0.0, 0.0);
[_sceneView.scene.rootNode addChildNode:textNode];
2013年 6月 1日 土曜日
• オブジェクトの位置などを操作できます。
操作
2013年 6月 1日 土曜日
• こんな感じ
- (IBAction)sliderAction:(id)sender {
//テキストの移動
textNode.transform = CATransform3DMakeScale( 3.0f, 3.0f, 3.0f);
textNode.transform =CATransform3DTranslate (textNode.transform, -20.0f,
-20.0f, 0.0f);
textNode.transform =CATransform3DRotate(textNode.transform,
(theSlider.floatValue/180)*3.14, 1.0, 0.0, 0.0);
}
2013年 6月 1日 土曜日
• もちろん日本語も通ります。
日本語
2013年 6月 1日 土曜日
• COLLADA(.dae)ファイルに含まれるアニ
メーションを再生できます。
• (アニメーション作成は練習中...)
アニメーション
2013年 6月 1日 土曜日
• マウスクリックしたときにオブジェクト
を選択
ヒットテスト
2013年 6月 1日 土曜日
SCNViewクラスの hitTest:options: メソッドを使用します。
mouseDown:メソッド内で
NSArray *hits = [self hitTest:mouseLocation
options:nil];
SCNHitTestResultクラスが帰ってきます。
SCNHitTestResult *hit = hits[0];
2013年 6月 1日 土曜日
SCNHitTestResultクラスが返ってきます。
これでどのオブジェクトかがわかるわけです。
@property(nonatomic, readonly) SCNNode* node;
@property(nonatomic, readonly) NSInteger geometryIndex;
@property(nonatomic, readonly) NSInteger faceIndex;
@property(nonatomic, readonly) SCNVector3 localCoordinates;
@property(nonatomic, readonly) SCNVector3 worldCoordinates;
@property(nonatomic, readonly) SCNVector3 localNormal;
@property(nonatomic, readonly) SCNVector3 worldNormal;
@property(nonatomic, readonly) CATransform3D modelTransform;
2013年 6月 1日 土曜日
サンプルでは照明をアニメーションさせていま
す。
2013年 6月 1日 土曜日
• 3Dオブジェクトを配置
• 簡単に操作できる
• ドキュメントがあまりない
まとめ
2013年 6月 1日 土曜日
• GLKitと組み合わせることもできるらしい。
• パーティクルとかも追加できるらしい。
• いろいろできるらしい。
2013年 6月 1日 土曜日
• ちなみにMacのみです。
• でもいずれ、iOSも出てくるはず。
2013年 6月 1日 土曜日
• さあWWDCでiOSに出てくるでしょうか、楽
しみです。
2013年 6月 1日 土曜日
• ありがとうございました。
2013年 6月 1日 土曜日

More Related Content

More from Satoshi Oomori

Cocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードCocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードSatoshi Oomori
 
Cocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるCocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるSatoshi Oomori
 
Word net cocoa勉強会201306
Word net cocoa勉強会201306Word net cocoa勉強会201306
Word net cocoa勉強会201306Satoshi Oomori
 
Cocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルCocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルSatoshi Oomori
 
Cocoa勉強会関西2012年5月
Cocoa勉強会関西2012年5月Cocoa勉強会関西2012年5月
Cocoa勉強会関西2012年5月Satoshi Oomori
 
Cocoa勉強会201203公開
Cocoa勉強会201203公開Cocoa勉強会201203公開
Cocoa勉強会201203公開Satoshi Oomori
 
Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Satoshi Oomori
 

More from Satoshi Oomori (9)

Cocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコードCocoa勉強会20140621 macとiosで共通のコード
Cocoa勉強会20140621 macとiosで共通のコード
 
Cocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみるCocoa勉強会20140419ゲームをつくってみる
Cocoa勉強会20140419ゲームをつくってみる
 
Word net cocoa勉強会201306
Word net cocoa勉強会201306Word net cocoa勉強会201306
Word net cocoa勉強会201306
 
Cocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイルCocoa勉強会ビギナーズramディスクとコマンドファイル
Cocoa勉強会ビギナーズramディスクとコマンドファイル
 
Cocoa勉強会201302
Cocoa勉強会201302Cocoa勉強会201302
Cocoa勉強会201302
 
Cocoa勉強会201208
Cocoa勉強会201208Cocoa勉強会201208
Cocoa勉強会201208
 
Cocoa勉強会関西2012年5月
Cocoa勉強会関西2012年5月Cocoa勉強会関西2012年5月
Cocoa勉強会関西2012年5月
 
Cocoa勉強会201203公開
Cocoa勉強会201203公開Cocoa勉強会201203公開
Cocoa勉強会201203公開
 
Cocoa勉強会2011年11月
Cocoa勉強会2011年11月Cocoa勉強会2011年11月
Cocoa勉強会2011年11月
 

Scene kit cocoa勉強会201306