SceneKit の検索結果:
フォントから作成する 3D テキストのジオメトリ。 NSString もしくは NSAttributedString で使用したいテキストを設定する。 ベースラインではなく、ディセンダ(下の空き)を含めるため、 原点においても文字は左下は原点にこないので注意。 また、文字の奥行きが 0 の場合はポリゴンが両面描画される。 Scene Editor でのパラメーター オブジェクトライブラリの 3D Text を Scene Editor にドラッグ&ドロップして、Attribu…
チューブ型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Tube を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Tube の項目で設定値が変更できる Dimensions Inner radius チューブ内側の円の半径。 初期値は 0.5。 Outer radius と同じするとチューブの厚さがなくなる。 Outer ra…
ドーナツ型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Torus を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Torus の項目で設定値が変更できる Dimensions Ring Radius オブジェクト全体の半径。 初期値は 1。 球と同様に半径であるため倍の大きさになる。 Pipe Radius ドーナツのパイプ…
球のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Sphere か GeoSphere を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Sphere の項目で設定値が変更できる Sphere と GeoSphere の違いは、 ジオメトリの名前と、geodesic にチェックがついているか否か。 Dimensions Radiu…
三角錐のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Pyramid を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Pyramid の項目で設定値が変更できる Size 幅、高さ、奥行きが設定できる。 初期値は 1。 Segment Count 幅、高さ、奥行きの分割数。 初期値は 1。 幅、高さ、奥行きの分割数 4。 コード…
奥行き 0 の縦状態がデフォルトの平面のジオメトリで、角を丸くすることができる。 このビルトインジオメトリは、デフォルトでマテリアルがポリゴンが両面描画される。 裏面が必要ない場合は Material Inspector(Command + Option + 5)> Setting > Double sided のチェックを外す。 また、表面を Y 軸プラス方向に向けたい場合は X軸を -90 傾ける Scene Editor でのパラメーター オブジェクトライブラリの Pl…
円柱のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Cylinder を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Cylinder の項目で設定値が変更できる Dimensions Radius 底の半径。 初期値は 0.5。 Height 円柱の高さ。 初期値は 1。 Segment Count Radial 外周部分のポ…
円錐のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Cone を Scene Editor にドラッグ&ドロップして、Attribute Inspector を開く(Command + Option + 4) 1番上の Cone の項目で設定値が変更できる Dimensions Top radius 上底の半径。 初期値は 0。 Bottom radius と同じ値にすると円柱になる Bottom radius 下底の半径 初期値は 0.…
円柱の上下に半球をつけたカプセル型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Capsule を Scene Editor にドラッグ&ドロップして、Attribute Inspector を開く(Command + Option + 4) 1番上の Capsule の項目で設定値が変更できる Dimensions Cap radius カプセルの半径。 初期値は 0.25。 Cap radius カプセルの高さ(半球部分も含む) 初…
立方体のジオメトリ。角を丸くすることができる。 Scene Editor でのパラメーター オブジェクトライブラリの Box を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Box の項目で設定値が変更できる Size width、height、length で設定する。 初期値は1。 名称 意味 width 幅 height 高さ length 奥行き Chamf…
Y軸 0、XZ 軸が無限の大きさを持つ平面。 初期値では原点に配置される。 Scene Editor でのパラメーター オブジェクトライブラリの Floor を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Floor の項目で設定値が変更できる Reflectivity 0 〜 1 の範囲の値で反射率を表す。 1 が完全に反射し 0 が反射なしとなり、デフォルトは …
SceneKit で言うジオメトリは平面や立体の物体を指し、 プログラムで形を作り、法線やテクスチャ情報、マテリアルなどその他の情報を付加して物体を表示している。 SceneKit でのジオメトリの使用方法 使用方法は以下のもの。 ビルトインのジオメトリを使用する Model I/O 経由で 3D オブジェクトファイルを読み込みジオメトリとして使用する scn ファイルにあるジオメトリを使用する SpriteKit を表示する 自前でジオメトリを作る ビルトインのジオメトリ …
…と異なる可能性あり SceneKit や Unity、Unreal Engine でほぼ制作されると思われるが、 一応、SpriteKit の 2DCG を使用した ARKit アプリを作成することができる。 WWDC 2017 Going Beyond 2D with SpriteKit セッションでのデモ画像。 絵文字をアンカーとして現実空間に貼り付けている。 平面の認識を必要としないのであれば、 リソースの制作時間が圧倒的に少ない 2DCG で ARKit をやるという…
…というものがある。 SceneKit では SCNConstraint というスーパークラスがあり、サブクラスで機能が割り当てられている。 一応、SCNTransformConstraint というクラスが用意されており、カスタムのコンストレイントを作成することもできる。 SceneKit で使用できるコンストレイントは以下のもの。 名称 機能 Look At コンストレイント 指定したノードの方向へ必ず回転するように維持する Billboard コンストレイント 現在のカメ…
前回 Scene Editor で World 座標での設定箇所にふれた。 今回はコード上から行ってみる。 その前に 4x4 の行列 SCNMatrix4 での移動方法 SCNMatrix4 は 4x4 になっているため、設定できる値は16個ある。 以下のようにし、移動させる場合は m41, m42, m43 の値変更を修正。 var m = SCNMatrix4( m11: 1.0, m12: 0.0, m13: 0.0, m14: 0.0, m21: 0.0, m22: …
今回はノードに関する属性を設定できる Node Inspector 部分をもうちょっと詳しく見てみる。 Node Inspector の中身は何? Node Inspector は名前の通り SCNNode で設定できる値になっているが、 オブジェクトの中心軸を決める pivot など、設定できない値がいくつかある。 設定項目 ノードの名前 位置、回転、拡大縮小、編集時の座標(world/local) 透過、表示・非表示、影の設定 ノードの属性(ジオメトリ、カメラ、ライト、ボ…
…eKit と異なり SceneKit の Action Editor からではアニメーション用のファイルをつくることができず、 コードから使いまわすことができない。 そのため、シーン上で一定のアニメーションがループされるものなど利用する状況が限られる。 全体の UI アニメーションさせたいオブジェクトを選択し、セカンダリエディタを開くと Action Editor のタイムラインが表示され 以下のような UI が表示される。 オブジェクトにアクションを適応してみる。 オブジェ…
…ておく。 ちなみに、SceneKit の場合 Metal でないと使用できないため Physically Based 使用する場合は 実機か macOS でビルドする。 Scene Inspector 設定できる項目は以下ものものになっている Scene Light Probe Fog Physics Settings Timing Scene Scene の項目は Background と Light Environment となっている Background 色、または背…
ひとまず、以前作成した scn ファイルを元に Utilities エリア を軽く確認してみる。 Utilities エリアには Source Editor や Interface Builder と同様に 上部にインスペクタと下部にライブラリと分けられている。 インスペクタ Utilities には7つのタブがあり以下のもの File Inspector Quick Help Node Inspector Attributes Inspector Material Insp…
…項目が増えるけど。 SceneKit の Scene Editor で扱えるものは dae、obj、abc(alembic)などのオブジェクトファイルと パーティクル専用の scnp とシーンファイルである scn。 scn での表示を元にしているため、scn ファイルのでの UI から。 ひとまず Xcode の画面説明 Xcode で scn ファイルを開くと 左から Navigator、Scene Editor、Utilities エリアという表示になる。 Xcode …
…方に最も有用になるのではと考えている。 その先 多分、Apple が AR メガネを出すのなら、バッテリー持ち等などを考えると、 watchOS のようなものを使用し Apple Watch や Google Glass のような情報を表示するものになるだろう。 ただ、Apple Watch で 2D・3DCG ライブラリの SpriteKit や SceneKit が使用できるようになったことを考えると、 いずれは電脳メガネのようなものを出すのではないだろうかと思っている。
…t 以前に 3D (SceneKit) の動作に制限がかかっているように見受けられる。 配信されているものは、そこそこ厳しめでも動くが、かなり重い。 今後 記事で書かれているように Android と比べて動作する端末も多いし、 Google の VR Daydream のように国による縛りもない。 正直、HMD を被らなくても良く手軽に試せるのが、一番の普及させるための要因だと思っている。 また、iOS で現状動いている機能で、iSight Duo からの深度情報がうまく組…
…ンを作成していたが、SceneKit にはもう1つ作成方法があり今回はそちらのご紹介。 Xcode に Scene Editor というツールがあり、Unity のエディタのようなもの。 オブジェクトを視覚的置いたり、アニメーションを確認したりできる。 Xcode の Game テンプレートでこちらを使用している プロジェクトの作成 ということで、今回も Single View Application のテンプレートからつくる。 名前は何でも良いが、とりあえず SceneEd…
…it import SceneKit class ViewController: UIViewController { var ballNode:SCNNode! override func viewDidLoad() { super.viewDidLoad() // シーン設定 let scene = GameScene() // SCNView 設定 let scnView = self.view as! SCNView scnView.backgroundColor =…
…ty などと同様に、SceneKit も物理アニメーションが行われるオブジェクトを設定し、物理アニメーションの影響を受けるが画面内に固定されたものを設定するだけ。 落下物を設定 GameScene.swift の func setUpScene() の中に 以下のコードを書くと球 Y 軸 2 に球が置かれて下に落ちる。 ノードの physicsBody に SCNPhysicsBody の type を dynamic へ設定すると アニメーション設定を行わなくても球が落ちて…
…Action とは SceneKit 用のアニメーションライブラリのようなもの。 SCNAction で設定し、SCNNode でそのアニメーション設定を実行する。 以下、SCNAction 設定可能な振る舞い。 移動 回転 拡大 フェードイン / フェードアウト 表示 / 非表示 一時停止 逆再生 ノードの削除 アニメーションのグループ化 アニメーションを順番に再生する アニメーションのリピート カスタムアニメーションの設定 効果音など音の再生 SCNNode に SCNA…
SceneKit のアニメーション SceneKit のアニメーションには大きく分けて以下の 2 種類があり、 今回の紹介するものは後者のもの。 物理アニメーションやパーティクルなど SceneKit が自動で動きを計算するもの アプリ開発者が任意で動きを設定するもの アニメーションの方法の種類 SceneKit でアニメーションさせる主な方法は以下の3つ。 Core Animation SCNAction SCNTransaction Core Animation と SC…
SceneKit でジオメトリなどのオブジェクトを変更する場合には、 SCNNode に変更を与えることでそこにぶら下がっているオブジェクトを含め変更される。 移動させてみる 前回作成したテンプレートの func setUpScene() の下に以下の命令を書くと、 角が丸まった立方体が X 軸のプラス方向 (画面で右方向) に移動されて表示する。 let box:SCNGeometry = SCNBox(width: 3, height: 3, length: 3, cha…
… を import SceneKit に変更して以下の空のクラスを作る。 import SceneKit class GameScene: SCNScene { } ViewController.swift を修正する まず、import UIKit の下に import SceneKit を書く。 import UIKit import SceneKit override func viewDidLoad() の中身に以下のものを追加。 シーンを先ほど設定したものにしている…
SceneKit の要 Scene Graph SceneKit はシーングラフというツリー状の構造で画面構成をつくり3DCGを表示してい る。 シーングラフの起点は SCNScene が起点となり、ルートノードがぶら下がる。 ルートノードから複数のチルドノードを設定する事ができて、各ノードにカメラやライトやオブジェクトを設定できる。 上の図では、チルドノードにカメラとライトとジオメトリしか書かれていないが、 パーティクルなど他の要素ある。 また、チルドノードにチルドノードを…