Apple Engine

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

iPhone と Reality Composer で始める簡単 AR その9 - オブジェクトの追加(矢印)編

今回は画面上部「+」ボタンから追加可能な矢印のオブジェクトについて。
使用できるものは3タイプあるがプロパティのパラメーターが違うだけで、同じオブジェクトである。

前回同様、位置、回転、拡大縮小、素材と素材の色については割愛。

 

種類

大きく分けて平面の矢印に厚みをつけたものと円錐と円柱で立体的な2種類ある。

さらに形状の変更が6種類あり、先端と終端でそれぞれ4種類形状変更ができる。

 

矢印の形状の設定

図形

  • ストレート
  • Uターン
  • 90°で曲がる
  • 一重の円形
  • 二重の円形
  • 三重の円形

 

プロフィール

  • 円形
  • 矩形

 

以下、図形とプロフィールの各パターンを設定したもの。

 

顔の形(先端)、テールの形(終端)

  • 矩形
  • とがっている
  • 丸い
  • なし

 

以下は終端を矩形、とがっている、丸いにしたもの。

 

その他パラメータのデフォルト値

長さとインデントはは棒状の部分の長さと太さ、幅は全体の横幅。
ヘッドの長さと奥行き円状になっているものでは設定できない。

 

  • 長さ 8cm
  • インデント 25%
  • 幅 25%

 

  • ヘッドの長さ 25%
  • 奥行き 1cm

 

「変更」ボタンで編集できるプロパティ

円状では幅、長さ、
矩形では幅、長さと奥行きが変更できる青色のハンドラーが表示され編集することができる。

 

まとめ

このオブジェクトを使用すると AR 空間上に何かに指し示すことができる。
前回のテキストの 3D と合わせると表現が増えそう。

と書きつつ、
次回はテキストと矢印を併せ持った意味を持つコールアウト(吹き出し)について。

iPhone と Reality Composer で始める簡単 AR その8 - オブジェクトの追加(テキスト)編

今回は画面上部「+」ボタン、macOS ではテキストボタンから追加可能なテキストのオブジェクトについて。

テキストは端末にインストールされているフォントを使い厚みを持たせた 3D のオブジェクトをシーンに追加する。
ちなみに iOS 13 から追加されたカスタムフォントを使用することはできないので注意。

以下の説明では以前も書いているため、位置、回転、拡大縮小、物理シミュレーション、素材、素材の色に関しては割愛。

 

プロパティ

フォントフェイスやフォントの大きさ、色や厚み(太さ)などを設定して 3D の文字をつくる。

テキストのみと角丸の矩形とその背景色を設定できる。

 

また、「変更」ボタンで設定できる青いハンドルはこの背景の幅と縦方向の文字の位置である。
横幅を広げれば背景が広がり、限界まで狭めると文字が縦書きのようになる。

 

用意されているフォントのほとんどはゴシック体だが、スクリプトのフォントフェイスもわりとよい気はする。

 

また、Bodoni Ornaments の飾り文字のフォントは単体でもオブジェクトとして使えそうではある。

 

プロパティのデフォルト値

背景の素材や色の設定は「背景を追加」をスイッチをオンにすると表示される。

 

外観

  • 太さ 22%
  • フォントサイズ 10cm

 

  • テキストの素材 ペイント(光沢)
  • テキストカラー 白

 

  • 背景の素材 ペイント(光沢)
  • 背景色 黒

 

テキスト

  • 文字 Aa
  • フォント Helvetica
  • スタイル レギュラー
  • 文字位置(垂直)中央寄せ
  • 文字位置(水平)中央寄せ
  • 折り返し オン

 

まとめ

テキストを使うと文字表現ができたり、簡単に複雑な形状がつくることができる。

ちなみに SceneKit と異なり、ジオメトリのメッシュがかなり細かいため処理が重いのか、パラメーターをいじると現状 iOS ではクラッシュしたりする問題を抱えている。

次回は矢印のオブジェクトについて。

iPhone と Reality Composer で始める簡単 AR その7 - オブジェクトの追加(シェイプ)編

今回は画面上部「+」ボタンから追加可能なオブジェクト基本図形である10種類のシェイプについて。

以下、作成できる基本図形であるシェイプ。
名称は iOS / iPadOS で見ることはできないが、macOS ではコンテンツライブラリで Option を押すと見ることができる。

  • 箱型
  • カプセル
  • 円錐
  • シリンダー(円柱)
  • プリズム
  • らせん
  • 球体
  • スパイラル
  • 星形
  • トーラス(ドーナツ)

 

シェイプのパラメータ詳細

以降、シェイプの説明を書いていく。
位置、回転、拡大縮小、素材、素材の色、物理シミュレーションに関しては以前書いているので割愛。

 

箱型

幅、高さ、奥行きで大きさが変更することができ、ベベルの半径は角の丸みをつけることができる。
直方体やカードのようなものも作成可能。

 

「変更」ボタンで表示されるハンドル

幅、高さ、奥行きを変更するための青いハンドルが表示され動かすと各設定を変更できる。

 

デフォルト値
  • 幅 10cm
  • 高さ 10cm
  • 奥行き 10cm
  • ベベルの半径 0.5cm

 

カプセル

丸みは上下の半球、カプセルの円の直径、高さは全体の高さを設定できる。
丸みを0%にすると円柱になり、直径を大きくすると球体になる。

 

「変更」ボタンで表示されるハンドル

高さと直径の設定変更ができる。

 

デフォルト値
  • 丸み 100%
  • 直径 10cm
  • 高さ 20cm

 

円錐

直径、高さ、角の丸みをベベルの半径で円錐を設定できる。 ベベルを大きくすると上下が完全に半球になり洋梨のような形になる。

 

「変更」ボタンで表示されるハンドル

直径と高さの設定変更ができる。

 

デフォルト値
  • 直径 10cm
  • 高さ 10cm
  • ベベルの半径 0.35cm

 

シリンダー

直径、高さで円柱を設定する。 他のもの同様に角の丸みをベベルの半径を設定できる。
こちらはベベルの半径を変更しても丸みが途中で止まりカプセル状にはならない。

 

「変更」ボタンで表示されるハンドル

直径と高さの設定変更ができる。

 

デフォルト値
  • 直径 10cm
  • 高さ 10cm
  • ベベルの半径 0.5cm

 

プリズム

直径、高さで大きさを決め、側面の数で多角形の辺の数、ベベルの半径で角の丸みで多角柱を設定する。
ベベルの半径は上下だけでなく側面の角も丸くなる。

 

「変更」ボタンで表示されるハンドル

直径と高さの設定変更ができる。

 

デフォルト値
  • 直径 10cm
  • 高さ 10cm
  • 側面 5
  • ベベルの半径 0.5cm

 

らせん

バネのような形状の設定を行う。
丸みは先っぽとお尻部分を半球にし、直径と高さらせん全体の直径、高さ、回転数は捻れている数、厚さはらせんの太さで値を小さくすると細くなる。

 

「変更」ボタンで表示されるハンドル

直径と高さを設定変更ができる。

 

デフォルト値
  • 丸み 100%
  • 直径 10cm
  • 高さ 10cm
  • 回転数 2
  • 厚さ 1.5cm

 

球形

直径が変更でき球体の設定を行う。
値はひとつで大きかが変わる。

 

「変更」ボタンで表示されるハンドル

値は高さひとつで大きさを変えることができる

 

デフォルト値
  • 直径 10cm

 

スパイラル

らせんの平面版で蚊取り線香のようなうず巻きを設定することができる。
設定値はらせんの高さがないものとなり、丸み、直径、回転数、厚さとなる。

 

「変更」ボタンで表示されるハンドル

直径と厚さの設定変更ができる。

 

デフォルト値
  • 丸み 100%
  • 直径 12.5cm
  • 回転数 2
  • 厚さ 3cm

 

星形

直径は全体の大きさ、厚さは中央部部の厚さとなり高さと同様、インセットは凹んでいる部分、ポイントは突起部分の数を設定することができる。

 

「変更」ボタンで表示されるハンドル

星の大きさ、凹んでいる部分と中央部は高さの設定変更ができる。

 

デフォルト値
  • 直径 15cm
  • 厚さ 30cm
  • インセット 0.6
  • ポイント 5

 

トーラス

ドーナツ形の形状で直径は全体の大きさ、厚さ付はリング部分の太さが変わる。
そのため、厚さの値を大きくすると中央の穴は狭くなり、形状全体が太くなる。

 

「変更」ボタンで表示されるハンドル

高さと太さの設定変更ができる。

 

デフォルト値
  • 直径 12.5cm
  • 厚さ 3.5cm

 

まとめ

基本図形として用意されているシェイプの説明を書いてみた。
Reality Composer ではテクスチャの設定はできないが、色の設定ができるため、ざっくりとした形状のものはシェイプだけでもつくることはできる。

次回はテキストのオブジェクトについて。

iPhone と Reality Composer で始める簡単 AR その6 - オブジェクトの追加の基本と共通機能編

今回はオブジェクトの追加と共通機能について。
追加可能のオブジェクトと共通機能というか編集できるプロパティをそれをいじっていく形。

 

Reality Composer でのオブジェクトの大まかな違い

Reality Composer の UI 上部の「+」ボタン(やテキストボタン)を押すとオブジェクト列挙されたコンテンツライブラリが開きそこから選択していくわけだが、大まかに分けて以下のオブジェクトの種類がある。

  • ユーザーが用意した USDZ ファイル
  • Apple が用意した USDZ ファイル
  • ビルトインのシェイプ

 

追加できるオブジェクトの種類

  • ファイル読み込みからの USDZ
  • 様々なプリミティブ形状が追加できるシェイプ
  • 文字を指定したフォントで生成する3Dテキスト
  • 矢印
  • 吹き出しのコールアウト
  • 文字看板のサイン
  • CSV から作成する3Dの表
  • Apple が用意している各種 USDZ ファイル

 

編集できるプロパティでは位置、回転、拡大縮小、物理シミュレーション以外は独自のパラメーターを変更できる。
ユーザーが用意したものはオブジェクトの設定が変えられず、Apple が用意しているものは「外観 > スタイル」が変更でき、
ビルトインのものの外観はスタイルではなく、素材と素材の色や様々な色の設定できる違いがある。

Apple が用意しているオブジェクトの スタイルはリアルな「現実」CGっぽい「スタイル」テクスチャを外しビルトインと同様に素材と素材の色が指定できる「アイコン」がある。 「現実」は形状が異なっていたり、「スタイル」とはことなるテクスチャが追加されていたりする。

 

素材と素材のカラー

 

素材

素材は以下のもの。
デフォルトではプラスチックが選択されている。 テラコッテは若干わかりづらいので説明を書くと、粘土地の素焼きの意味でイタリアの屋根瓦や埴輪とかの感じ。

  • ペイント(光沢)
  • ペイント(マット)
  • プラスチック
  • カーペイント
  • アルミニウム
  • 真鍮
  • 青銅
  • ゴールド
  • スチール
  • ゴム
  • テラコッタ

 

素材のカラー

色の付いた角丸の四角をタップすると 12 * 12 のセルで割り振られたカラーパレットが表示される。
最初の列は色相のないモノクロが白から黒で12分割。
その下から行は赤からピンクへの色相、列は彩度になっている。

macOS 版でこちらをクリックしても OS 標準のカラーウインドウの UI は表示されない。

 

まとめ

今回は基本的なオブジェクトの配置について書いた。
Apple が設定しているオブジェクトは、素材と素材のカラーの変更できることがわかったと思う。

次回は各オブジェクトの詳細と素材と素材のカラー以外の固有の設定値について。

iPhone と Reality Composer で始める簡単 AR その5 - プロパティとその設定編

f:id:x67x6fx74x6f:20200211220718p:plain

オブジェクトの追加について書こうとしていたが、オブジェクトの説明の際にプロパティに触れるのでこちらを先に説明してみる。

Reality Composer のプロパティ編集は主に2つで、シーンとオブジェクトのパラメータを操作する際に表示される UI となる。

 

シーンでのプロパティ

シーンのプロパティではシーンの名称変更と「アンカー」と「シーンの物理」がある。

 

アンカー

f:id:x67x6fx74x6f:20200211213115p:plain

新規作成と同様に水平方向、垂直方向、顔、イメージ、オブジェクトが用意されており、新規作成後にアンカーの設定を変えることができる。

垂直方向と顔の認識はそれ以外と Y と Z 軸が変わり Z 軸が上方向になるので注意。

 

シーンの物理

シーン全体での物理シミュレーションの設定を行い、アンカーが水平方向、イメージ、オブジェクトの場合 Y軸 0 が地表となり物理判定が行われる。

 

衝突する(スイッチの UI)

オフにすると Y軸 0 の物理判定がなくなる。
シーン全体の物理シミュレーションがなくなるわけではないので注意。

 

素材

f:id:x67x6fx74x6f:20200211212854p:plain

物理判定で質量、表面の抵抗、接触時どのぐらい跳ねるかを素材で示している。
以外、設定できる素材。

  • コンクリート
  • プラスチック
  • 木材
  • ゴム

 

重力

シーン全体にかかる重力加速度を設定する。
デフォルトは 9.8 m/s2 で地球と同じ。
パラメータを上げれば重力が多くかかり、1.62 などにすると月の重力となる。

マイナス値は設定できないので物体が上昇するような設定はできない。

 

オブジェクトでのプロパティ

オブジェクト選択時はプロパティの UI 変更され、そのオブジェクトの名称や各種パラメータを変更が可能。

Reality Composer で用意されているオブジェクトでは更に別のパラメータが追加されており、そちらはオブジェクトの追加の際に説明を行う。

また、今回の設定値の状態になるパターンはオブジェクトが USDZ ファイルから取り込んだもの、オブジェクトの複数選択状態、グループ化されたオブジェクトの選択がされた状態となる。

 

変換

他のツールのように、オブジェクトの位置、回転、サイズ調整(拡大縮小)を設定する。

 

物理

オブジェクトの物理シミュレーション設定を行う。

 

含める(スイッチ)

オンにすると選択しているオブジェクトの物理シミュレーションの対象となる。

 

モーションタイプ

オブジェクトの物理シミュレーションの種類を設定する。
「固定」と「ダイナミック」があり、固定は衝突の判定はあるが空間に固定され自ら動くことはない。
ダイナミックは重力に影響され動く。

ダイナミックは処理負荷がそれなりにかかるため、衝突する判定が必要があり空間に静止する場合は固定を使う。

 

素材

シーンのものと同じなので割愛。

 

衝突する図形

いわゆるコリジョンの設定でオブジェクトが衝突する判定の形状を設定する。
以下、設定項目。

  • 自動
  • 箱形
  • カプセル
  • 球体

自動はオブジェクトのポリゴンの形状、オブジェクトを囲うように箱形(矩形)、カプセル状、球状に衝突判定の形状が設定される。

処理負荷は自動が1番重く、箱形が1番軽い。

底面や側面が平らなものは箱型、球状に近いものは球体、長細くしたが平らでないものはカプセルに設定すると物理判定の処理が軽くなると予想される。

 

まとめ

Reality Composer では振る舞い以外の各設定はプロパティで行い、現状では設定項目が少ないためおぼえやすいと思われる。

次回はオブジェクトの追加について。

iPhone と Reality Composer で始める簡単 AR その4 - さまざまアンカー編

今回はアンカーについて。

Reality Composer で言うアンカーとは AR が動作の基準となる目印のようなもので、最初に試した水平平面や顔などを認識し基準点を作成しオブジェクトを配置する。

アンカーの設定は新規作成時に5つのアンカーの中から選択するか、シーンでオブジェクトを選択していない状態でプロパティを開くとアンカーの変更を行うことができる。

 

アンカーの種類

設定できるものは以下の5つで「水平方向」と「顔」に関して前やったので割愛。

  • 水平方向
  • 垂直方向
  • イメージ
  • オブジェクト

 

垂直方向

垂直方向を認識するとシーンで設定したオブジェクトが配置される。 ARKit の垂直方向のものと同じだが、水平と組み合わせて使用することは現時点でできない。

Reality Composer の垂直方向は、顔の認識と同様に Z と Y 軸が変わるので注意。
(Z 軸が上になる)

 

イメージ

設定した画像を認識してシーンで設定したオブジェクトが配置される。
イメージは画像を設定しないと AR が動作しないので注意。

画像を読み込んで実物のサイズに自動で割り振られるが任意のサイズに変更することができる。

ARKit の仕様上、認識する画像は実際に認識させるもののサイズに合わせた方が正確性が増すのためできるだけサイズを合わせると良い。

 

イメージアセットの選択から画像を追加できる。

 

オブジェクト

現実の立体物を認識してシーンで設定したオブジェクトが配置される。

 

AR オブジェクトアセットの選択からオブジェクトをスキャンするための UI が用意されている。
(一応、外部で作成したスキャンデータ .arobject ファイルを読み込むこともできる)

 

スキャンを開始すると、周囲と上部をスキャンし、テストの認識が完了すると ARKit のオブジェクト認識でも使用している .arobject ファイルが生成される。

周囲のスキャン

上部のスキャン

 

注意点

  • 認識範囲の調整ができない
  • オブジェクトのスキャンは端末のバッテリーがかなり費用される
  • スキャンするものが小さいと認識しづらくなる。

 

まとめ

5つのアンカーからの AR 体験と認識の設定が簡単に行うことができると言うのがわかったと思う。

次回はプロパティとその設定について

iPhone と Reality Composer で始める簡単 AR その3 - 主なユーザーインターフェイス編

今回は Reality Composer のメイン画面のユーザーインターフェイスについて。
Reality Composer では macOS 版と iOS /iPadOS 版でリリースされており、UI が異なっているが基本的にはどのプラットフォームでも全ての機能にアクセスできるようになっている。

書き出しの UI のみ前回やったので省略する。

 

各プラットホームでの違い

macOS と iPadOS 版はほぼ同じ UI を有し、iOS では上部に undo を除く5つのボタンと少なく他は「…」の詳細ボタンに押し込められている。

詳細

 

iOS/iPadOS 版では AR のプレビューのボタンがあり、AR が使用できない macOS ではプロジェクトを iPhone, iPad に転送して端末側で編集できる機能のボタンがある。

 

UI について

タイトルで iPhone でと書きながら、macOS の UI で説明していく。
説明していなかったが macOS 版 Reality Composer の起動は Xcode の Open Developer Tool から。

 

アンカーの選択

プロジェクト新規作成時に表示される UI。
使用できるアンカーは以下の5つで詳細は今後紹介。

  • 水平方向
  • 垂直方向
  • イメージ
  • オブジェクト

 

macOS ではテンプレートコンテンツを使用するか否かを選択でき、チェックを外すとシーン上にオブジェクトが表示されない。
ちなみにチェックボタンは状態保存されるので次回新規作成時には注意。

 

シーン(シーンピッカー)

シーンとは現在の AR 空間を設定するもので、Unity、Unreal Engine などのゲームエンジンや SceneKit でいうシーンと同義のもの。
このボタンを押すとシーンを選択する UI が表示される。
プロジェクトでは複数のシーンを作成することができ、ビヘイビアのトリガーでシーン再生、アクションで別シーンへ遷移させる設定が可能。

iOS では詳細ボタンからアクセスできる。

 

フレーム

シーンにあるすべてのオブジェクトをシーンの表示(ビューポート)に収まるように合わせたり、選択したものをシーンの表示に収まるように表示するボタン。
「フレームシーン」がすべて、「選択済みのフレーム」が選択したもの。

iOS ではオブジェクトがない部分でダブルタップで「フレームシーン」、オブジェクトをダブルタップで「選択済みのフレーム」と同じ振る舞い。

 

スナップ

f:id:x67x6fx74x6f:20200211042920p:plain

オブジェクトをドラッグして移動する際に他のオブジェクトにスナップするか否かを選択するボタン。
スナップする単位は各オブジェクトのバウンディングボックス(ジオメトリ単位で囲む立方体)

iOS では詳細ボタンからアクセスできる。

 

変更

f:id:x67x6fx74x6f:20200211040507p:plain

オブジェクトのプロパティをビューポートで変更するボタン。
立方体なら幅、高さ、奥行、球なら直径、棒グラフなら棒の長さなど、変更の操作ができるものはビルトインのジオメトリのみで、USDZ ファイルでは使用することができない。

iOS / iPadOS ではオブジェクトの長押し、またはオブジェクトタップ後再度タップでアクセスできる。

 

スペース

座標系をワールド座標かローカル座標に変更するボタン。

iOS では詳細ボタンからアクセスできる。

 

オブジェクト

シーンに設置するビルトインのオブジェクト、または用意されているものや自前の USDZ ファイルを選択する UI が表示されるボタン。
詳細は今後紹介。

 

テキスト

オブジェクトと同様にシーンに設置する。

iOS / iPadOS ではオブジェクトの UI 内で選択できる。

 

再生

ビヘイビアで設定したアニメーションを再生、または停止するボタン。

 

iOS上で編集 (macOS 版のみ)

macOS のみの機能で、現在のプロジェクトを iOS / iPadOS の Reality Composer に渡し編集することができるボタン。
クリックすると UI が表示され Reality Composer が起動されている iOS / iPadOS 端末が近くにある場合、端末側で編集することができる。
(この機能は AirDrop を使用している可能性があり互いに設定をする必要がある)

 

プロパティ

シーンやオブジェクトの設定を行う UI を表示するボタン。
状態によって表示が異なるため割愛。
詳細は今後紹介。

 

ビヘイビア

アンカー認識後、テンプレートの振る舞いまたは、シーン開始やオブジェクトタップなど動作の引き金になるトリガー。
シーンやオブジェクトの振る舞いを設定するアクション。
ビヘイビアのボタンを押すとこれらを設定 UI が表示される。

ビヘイビアは複数設定することが可能で、 アクションは複数のアクションを同時再生したり、順番に再生したり、ループ再生したりすることができる。
また、RealityKit で動作を開始するトリガー、RealityKit へ通知するアクションが用意されている。

ビヘイビアとプロパティの UI 表示は排他的になっているためビヘイビアが表示されるとプロパティが閉じる。

詳細は今後紹介。

iOS では詳細ボタンからアクセスできる。

 

オブジェクトの複数選択

macOS の場合は Shift または Command を押しながらクリック。
iOS / iPadOS はオブジェクトをタップした状態を保ちながらもうひとつのオブジェクトをタップする。

 

グループ / グループ解除 / 展開

f:id:x67x6fx74x6f:20200211041521p:plain

複数のオブジェクトをグループ化してひとつのものとして操作したり、グループを解除することができる。
また、USDZ では階層化されているものは展開をして階層をなくすことができる。

macOS の場合は右クリックから、
iOS / iPadOS ではオブジェクトの長押し、またはオブジェクトタップ後再度タップでアクセスできる。

 

置換

f:id:x67x6fx74x6f:20200211044745p:plain

選択したオブジェクトをコンテンツライブラリから選択した他のオブジェクトへ置き換える。

macOS の場合は右クリックから、
iOS / iPadOS ではオブジェクトの長押し、またはオブジェクトタップ後再度タップでアクセスできる。

 

AR / AR プレビュー(iOS / iPadOS 版のみ)

iOS / iPadOS 版のみ使用可能でこのボタンを押すと端末で AR のプレビューをしながらプロジェクトの編集を行うことができる。

 

デベロッパ(iOS / iPadOS 版のみ)

iOS / iPadOS 版のみ使用可能で詳細の中にある。
ARセッションの保存と再生がありセッション(カメラとセンサー)情報の保存と再生が可能でアプリケーションのデバッグなどに使用できる。

 

環境設定 (macOS 版のみ)

macOS 版では以下の設定変更ができる。

  • 単位
  • テンプレートコンテンツを使用
  • 読み込み時にUSDZファイルをグループ化
  • オブジェクトの縁にガイドを表示

f:id:x67x6fx74x6f:20200211045737p:plain

 

マニピュレータ

f:id:x67x6fx74x6f:20200211042633p:plain

ビューポートで選択したオブジェクトをコントロールするための UI。
他のツールとは異なり、カメラ方向に合わせて移動方向と回転方向のマニュピレータが表示される。
そのため、カメラを回転や移動しないと表示されない場合があるが、X, Y や roll や yaw のハンドル被って操作しずらいというのが緩和される。

 

まとめ

コンテンツを制作するツールとして考えると機能的にはかなり少ないが、AR コンテンツを作るにはも十分な UI が備わっている。

次回はアンカーについて