| 開発者 | アップル社 |
|---|---|
| 初回リリース | 2012年7月25日 |
| オペレーティング·システム | iOS、iPadOS、macOS、tvOS、watchOS、visionOS |
| タイプ | ソフトウェアフレームワーク |
| ライセンス | 独自 |
| Webサイト | https://developer.apple.com/scenekit/ |
SceneKit (シーンキットとも呼ばれる)は、Apple Inc.プラットフォーム用の3D グラフィックス アプリケーション プログラミング インターフェイス(API) で、 Objective-Cで記述されています。OpenGLやMetalなどの低レベル API の上に使いやすいレイヤーを提供するように設計された高レベルフレームワークです。[1] SceneKitは、オブジェクト ベースのシーン グラフ、物理エンジン、パーティクル システム、Core Animationやその他のフレームワークへのリンクを保持しており、簡単に表示をアニメーション化できます。SceneKit ビューは他のビューと混在させることができ、たとえば、SpriteKit 2D 表示を SceneKit 内のオブジェクトの表面にマッピングしたり、Core Graphicsの UIBezierPath を使用して SceneKit オブジェクトのジオメトリを定義したりすることができます。SceneKit は、 COLLADA形式を使用した 3D シーンのインポートとエクスポートもサポートしています。SceneKit は、2012 年にmacOS向けに、 2014 年にiOS向けに最初にリリースされました。
基本概念
SceneKit は、ルート オブジェクト (クラス SCNScene のインスタンス) に基づいてシーン グラフを維持します。SCNScene オブジェクトは、ほとんどの 2D ライブラリにあるビュー オブジェクトとほぼ同等で、ウィンドウや他のビュー オブジェクトなどの表示コンテナーに埋め込まれるように設計されています。SCNScene の主なコンテンツは、SCNNode オブジェクトを指す rootNode へのリンクのみです。
SCNNode は、SceneKit 階層の主要なコンテンツです。各ノードには、名前、オプションのカメラ、ライト、ジオメトリ オブジェクトへのポインタ、および子ノードの配列とその親へのポインタがあります。一般的なシーンには、便利な名前のノード (多くの場合「ルート」) を指す単一のシーン オブジェクトが含まれます。このノードの主な目的は、子ノードのコレクションを保持することです。子ノードは、シーン内のカメラ、ライト、またはさまざまなジオメトリ オブジェクトを表すために使用できます。
シンプルなシーンは、SCNBox などのコンストラクター クラスの 1 つ、SCNCamera 1 つ、SCNLights 1 つ以上を使用して SCNGeometry オブジェクトを 1 つ作成し、これらすべてのオブジェクトを個別のノードに割り当てることで作成できます。次に、汎用ノードを 1 つ追加して作成し、SCNScene オブジェクトのルートノードに割り当て、すべてのオブジェクトをそのルートノードの子として追加します。ただし、ライトの数は 8 に制限されます。
SCNScenes には、シンプルなビューアや同様のタスクの実装を大幅に容易にする組み込みのユーザー インターフェイスコントロールと入出力ライブラリも多数含まれています。たとえば、シーンの autoenablesDefaultLighting と allowCameraControl を true に設定し、COLLADA ファイルから読み取ったオブジェクト ツリーを追加すると、数行のコードで任意の複雑さの表示可能なコンテンツが生成されます。Xcode との統合により、コードをまったく記述せずに、 シーン自体をInterface Builderのウィンドウに配置できます。
ファイル名拡張子 .scn を使用する Scenekit アーカイブ ファイル形式があります。
参考文献
- ^ 「SceneKit | Apple 開発者向けドキュメント」。
- 「Scene Kit 入門」Apple Inc. 2012 年。
- Cepeda、Ricardo Rendon (2014 年 10 月 8 日)。「シーン キット チュートリアル: はじめに」。Ray Wenderlich。
