Apple Engine

Apple, iPhone, iOS, その周辺のことについて

Swift3

iOS で SceneKit を試す(Swift 3) その32 - コードからカスタムジオメトリをつくってみる

コードからジオメトリをつくろうと思う。 ほぼ、自前でジオメトリを描画することはないと思われるので今回はさわりだけ。 テンプレートにあった宇宙船やビルトインのジオメトリ。 これらはオブジェクトファイルの読み込み、Scene Editor からのドラッグ&ドロ…

iOS で SceneKit を試す(Swift 3) その31 - ビルトインジオメトリ SCNShape(パスからの図形)

SCNText はフォントからジオメトリを作成するが、こちらは UIBezierPath で作成するジオメトリ。 設定値は SCNText 同様にイニシャライズや個別でパスと押出し設定を行う。 面取り(chamfer) も SCNText と同様の設定を行うことができる。 Scene Editor で UI…

iOS で SceneKit を試す(Swift 3) その30 - ビルトインジオメトリ SCNText(テキスト)

フォントから作成する 3D テキストのジオメトリ。 NSString もしくは NSAttributedString で使用したいテキストを設定する。 ベースラインではなく、ディセンダ(下の空き)を含めるため、 原点においても文字は左下は原点にこないので注意。 また、文字の奥…

iOS で SceneKit を試す(Swift 3) その29 - ビルトインジオメトリ SCNTube(チューブ型)

チューブ型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Tube を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Tube の項目で設定値が変更できる Dimensions Inner rad…

iOS で SceneKit を試す(Swift 3) その28 - ビルトインジオメトリ SCNTorus(ドーナツ型)

ドーナツ型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Torus を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Torus の項目で設定値が変更できる Dimensions Ring Ra…

iOS で SceneKit を試す(Swift 3) その27 - ビルトインジオメトリ SCNSphere(球)

球のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Sphere か GeoSphere を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Sphere の項目で設定値が変更できる Sphere と G…

iOS で SceneKit を試す(Swift 3) その26 - ビルトインジオメトリ SCNPyramid(三角錐)

三角錐のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Pyramid を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Pyramid の項目で設定値が変更できる Size 幅、高さ、奥…

iOS で SceneKit を試す(Swift 3) その25 - ビルトインジオメトリ SCNPlane(平面)

奥行き 0 の縦状態がデフォルトの平面のジオメトリで、角を丸くすることができる。 このビルトインジオメトリは、デフォルトでマテリアルがポリゴンが両面描画される。 裏面が必要ない場合は Material Inspector(Command + Option + 5)> Setting > Double …

iOS で SceneKit を試す(Swift 3) その24 - ビルトインジオメトリ SCNCylinder(円柱)

円柱のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Cylinder を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Cylinder の項目で設定値が変更できる Dimensions Radius …

iOS で SceneKit を試す(Swift 3) その23 - ビルトインジオメトリ SCNCone(円錐)

円錐のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Cone を Scene Editor にドラッグ&ドロップして、Attribute Inspector を開く(Command + Option + 4) 1番上の Cone の項目で設定値が変更できる Dimensions Top radius 上底…

iOS で SceneKit を試す(Swift 3) その22 - ビルトインジオメトリ SCNCapsule(カプセル型)

円柱の上下に半球をつけたカプセル型のジオメトリ。 Scene Editor でのパラメーター オブジェクトライブラリの Capsule を Scene Editor にドラッグ&ドロップして、Attribute Inspector を開く(Command + Option + 4) 1番上の Capsule の項目で設定値が変…

iOS で SceneKit を試す(Swift 3) その21 - ビルトインジオメトリ SCNBox(立方体)

立方体のジオメトリ。角を丸くすることができる。 Scene Editor でのパラメーター オブジェクトライブラリの Box を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Box の項目で設定値が変更できる …

iOS で SceneKit を試す(Swift 3) その20 - ビルトインジオメトリ SCNFloor(無限の大きさを持つ平面)

Y軸 0、XZ 軸が無限の大きさを持つ平面。 初期値では原点に配置される。 Scene Editor でのパラメーター オブジェクトライブラリの Floor を Scene Editor にドラッグ&ドロップして、Attributes Inspector を開く(Command + Option + 4) 1番上の Floor の…

iOS で SceneKit を試す(Swift 3) その19 - ジオメトリについて

SceneKit で言うジオメトリは平面や立体の物体を指し、 プログラムで形を作り、法線やテクスチャ情報、マテリアルなどその他の情報を付加して物体を表示している。 SceneKit でのジオメトリの使用方法 使用方法は以下のもの。 ビルトインのジオメトリを使用…

iOS で SceneKit を試す(Swift 3) その18 - Scene Editor の Constraints を試す

3DCG ではオブジェクトの動きなどに制約を与えるコンストレイントというものがある。 SceneKit では SCNConstraint というスーパークラスがあり、サブクラスで機能が割り当てられている。 一応、SCNTransformConstraint というクラスが用意されており、カス…

iOS で SceneKit を試す(Swift 3) その17 - SCNNode の worldTransform

前回 Scene Editor で World 座標での設定箇所にふれた。 今回はコード上から行ってみる。 その前に 4x4 の行列 SCNMatrix4 での移動方法 SCNMatrix4 は 4x4 になっているため、設定できる値は16個ある。 以下のようにし、移動させる場合は m41, m42, m43 の…

iOS で SceneKit を試す(Swift 3) その16 - Scene Editor の Node Inspector

今回はノードに関する属性を設定できる Node Inspector 部分をもうちょっと詳しく見てみる。 Node Inspector の中身は何? Node Inspector は名前の通り SCNNode で設定できる値になっているが、 オブジェクトの中心軸を決める pivot など、設定できない値が…

iOS で SceneKit を試す(Swift 3) その15 - Scene Editor の Action Editor を使ってみる

今回は、アニメーションで使用していた SCNAction を Scene Editor の Action Editor で編集を行う。 ちなみに SpriteKit と異なり SceneKit の Action Editor からではアニメーション用のファイルをつくることができず、 コードから使いまわすことができな…

iOS で SceneKit を試す(Swift 3) その14 - Scene Editor の Scene Inspector と Scene 設定

今回は、以前に作成した Scene Editor のサンプルを元に球をたくさんを置いたもので試す。 Scene Editor のサンプル では ViewController.swift で SCNView の背景色を設定しているが必要ないので以下のものを消す。 scnView.backgroundColor = UIColor.blac…

iOS で SceneKit を試す(Swift 3) その13 - Scene Editor での Utilities エリア

ひとまず、以前作成した scn ファイルを元に Utilities エリア を軽く確認してみる。 Utilities エリアには Source Editor や Interface Builder と同様に 上部にインスペクタと下部にライブラリと分けられている。 インスペクタ Utilities には7つのタブが…

iOS で SceneKit を試す(Swift 3) その12 - Scene Editor の UI

ざっくり Scene Editor の UI や操作周りご紹介。 Xcode 9 で若干設定項目が増えるけど。 SceneKit の Scene Editor で扱えるものは dae、obj、abc(alembic)などのオブジェクトファイルと パーティクル専用の scnp とシーンファイルである scn。 scn での…

iOS で SceneKit を試す(Swift 3) その11 - Scene Editor を使ってみる

今まではコードから SCNScene のクラスを使用してシーンを作成していたが、SceneKit にはもう1つ作成方法があり今回はそちらのご紹介。 Xcode に Scene Editor というツールがあり、Unity のエディタのようなもの。 オブジェクトを視覚的置いたり、アニメー…

iOS で SceneKit を試す(Swift 3) その10 - ノードをコピーして端末負荷を下げる

前回のサンプルでは重大なミスをしており、 タップする度にルートノードに新規の球体のノードが追加されている。 そのためドローコールがタップ毎に増えており、 簡素なジオメトリとはいえ、あまり端末に優しくない。 修正してみる SCNNode には clone() と…

iOS で SceneKit を試す(Swift 3) その9 - 物理アニメーションを試す

Unity などと同様に、SceneKit も物理アニメーションが行われるオブジェクトを設定し、物理アニメーションの影響を受けるが画面内に固定されたものを設定するだけ。 落下物を設定 GameScene.swift の func setUpScene() の中に 以下のコードを書くと球 Y 軸 …

iOS で SceneKit を試す(Swift 3) その8 - SCNAction でアニメーション設定

Core Animation を使用するより SCNAction を使った方が便利なのでこちらを使用。 SpriteKit の SKAction の3次元版なので使用方法はほぼ同じ。 SCNAction での SCNVector3 と SCNVector4 SCNVector3 は x, y, z の3つの値を持ち値の方向に移動または回転さ…

iOS で SceneKit を試す(Swift 3) その7 - 標準的なアニメーション

SceneKit のアニメーション SceneKit のアニメーションには大きく分けて以下の 2 種類があり、 今回の紹介するものは後者のもの。 物理アニメーションやパーティクルなど SceneKit が自動で動きを計算するもの アプリ開発者が任意で動きを設定するもの アニ…

iOS で SceneKit を試す(Swift 3) その6 - オブジェクトの移動、回転

SceneKit でジオメトリなどのオブジェクトを変更する場合には、 SCNNode に変更を与えることでそこにぶら下がっているオブジェクトを含め変更される。 移動させてみる 前回作成したテンプレートの func setUpScene() の下に以下の命令を書くと、 角が丸まっ…

iOS で SceneKit を試す(Swift 3) その5 - シーンエディタを使用しない空のテンプレートをつくる

今後、コードサンプルで使用するためのものを作成する。 シーングラフのルートノードに追加するもの。 オムニライト (配置した位置から全ての方向を照らす光源) アンビエントライト (位置に関係なく画面全体を照らす環境光。ジオメトリに陰は落ちない) カメ…

iOS で SceneKit を試す(Swift 3) その4 - SceneKit の構造

SceneKit の要 Scene Graph SceneKit はシーングラフというツリー状の構造で画面構成をつくり3DCGを表示してい る。 シーングラフの起点は SCNScene が起点となり、ルートノードがぶら下がる。 ルートノードから複数のチルドノードを設定する事ができて、各…

iOS で SceneKit を試す(Swift 3) その3 - 3DCG の軽い説明

3DCG は現実空間と同じように3次元なので、 映画を撮るのと同じように、表示する対象物、それを撮るカメラ、 対象物をカメラから見えるようにするライトがあって初めて映像が完成する。 まとめると 3DCG を表現するには最低でもこの3つが必要 カメラ ライト …