Apple Engine

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

ARM 版 Mac について考える

噂によると Intel の CPU とは異なり iPhone, iPad のように ARM ベースの Apple A チップの CPU を使用するものをいくつか開発しているらしい。

 

CPU

iPhone の CPU は高効率と高性能に分かれており、高い処理が必要ない場合は高効率のものを使いバッテリーの消費を低くし、高性能はバッテリー消費は激しいが重い処理をこなすことができ状況によって切り替えている。

動作を確認していないのだが、発熱を抑えるため、高効率 or 高性能 を使用する際通常半分しか動かさないという話があったり、 最大限の能力を使用するために近頃のチップは高効率と高性能を全て使うこともできるとのこと。

 

話は戻り、ARM 版 Mac 噂によるとそのひとつは次期チップ A14 ベースとの事で 12 コアで、高効率コアは現行の iPad 同様に 4 コア、高性能コアは 8 コアらしい。

高性能が 8 コアと考えると大体倍ぐらいだろう。

 

シングルスレッドは Apple A 13 で現行で出ている Mac の Intel チップより速いのでマルチスレッドで考えてみる。

Geekbench によると、
A12 と A12X との差が 4608 / 2656 = 1.734

 

公式的には A12 と A13 は 20 % up らしいので、 単純に考えると Geekbench の A13 のマルチコアベンチマークの 3412 * 1.2 = 4094。

さらに 4 コアの A12X の伸び率の倍と考えると、4094 * ( 1.734 * 2 ) = 14198 となる。

本当にこのスペックになるかわからないが、その場合は全ての iMac Pro を超え Mac Pro Intel Xeon W-3235 @ 3.3 GHz の 12 cores のマルチコアのスコアを超えてしまう。

 

とはいかなくても、第9世代の Intel Core i9 レベルには到達しうる存在となるだろう。

初めは MacBook など下のグレードから始めるという噂なので、このスペックではなくても余裕だと考えられる。

 

GPU

噂によると外部の GPU はつけないとの話だが不明。

次、もしくはその次の MacBook Pro で Intel 第11世代の TigerLake が載る場合、GPU が iris 系ではなく Xe という新しいアーキテクチャとなり、Intel 曰く既存の倍となるらしいのでかなり速くなるだろう。

それに近しいもので対抗するだろうと思われる。

以前まで、Apple A チップは Imagination Technologies のライセンスの元で GPU の設計を使用しており、Apple 自社製のものに変えた際に契約を辞めたが、再度契約を開始している。

今後、何かに Apple A チップの GPU 絡みで Imagination Technologies の特許を採用する可能性もありそう。

 

ARM 版チップにする利点

省電力化とバッテリー稼働時間の増加

Apple の目的はそこだと思っていて、A14 が 5nm のプロセスルールでつくられれば、単純に20〜40%ぐらいは省電力ができ、Intel チップより稼働時間が伸びると思われる。

Surface Pro 7 の最大稼働時間が約 10 時間、ARM チップを使用した Surface Pro X が最大稼働時間 13 時間だったので、そのぐらいは伸びると思われる。

 

ロジックボードの省スペース化による利点

MacBook Pro の分解写真を見てもらうとわかるのだが、半分は本体基板であるロジックボードが占めている。

iPad のロジックボードはかなり小さいし、A14X と思われるチップが載っても大した大きさにならないだろうし、T2 のようなマイクロコントローラーなども必要がない。

バッテリーの量も増やせるだろうと思うし、本体が薄くできそうだし、SIM が使え、iPad と同じような基板設計ができそうなので良いことしかない。

 

低発熱

MacBook Pro の本体部分の中身で大きのはバッテリーで、その次はファンである。

ARM チップを使用することで、発熱を抑えられ、ファンの大きさも今ほど必要ないかもしれない。

 

欠点

多分、Intel チップのエミュレーションは行わないと予想されるので、アプリは ARM 版にビルドし直す必要があると思われる。

また、Final Cut Pro X や Motion などのサードパーティ製のプラグインが ARM 版で動くよう作ってくれるかは不明だし、OpenGL など使用しているツールやゲームをシェアの少ない ARM 版 Mac に提供してくれるとは思わない。

 

まとめ

今後の流れからソフトウェアが対応されるかは謎ではあるが、ハードウェア的にはほぼ利点しかない。

ARM 版 Mac とはあるが、もしかするとノートPCのようにディスプレイとキーボードがついたクラムシェルな iPad かもしれないし、Intel チップと Apple A チップが両方載った端末かもしれない。

AR 体験とは何か

AR とは何かとはよく説明されるけど、その体験とは何かと説明されることは少ない気がした気がするので考えてみる。

VR は仮想空間に入り込むものだが、AR は現実に仮想的なオブジェクトを合成する。
要するに AR はリアルタイムで現実に 2DCG や 3DCG を合成するところである。

体験を行う AR のアプリケーションは大きく分けると2つで、作業を行うまたは補佐するツール型のものと、ゲームやコンテンツを体験する没入型ものがある。

また、AR は現実のものと仮想的なものを合成するため、VR と異なり以下の制約がある。

  • 現実から逃れる事ができない
  • 時間を超越する事ができない
  • 距離の制約から逃れられない
  • 空間の制約から逃れられない

 

制約があるのだが仮想的なオブジェクトに関してはその制約を取り除くとこができ、
過去の建造物を表示したり、展示物などで恐竜を表示したりコンテンツに合わせて制約を一部取り除く事ができる。
主に没入型のアプリで使用しているように思われる。

 

では、AR 体験とは何か。

定義するには難しいのだが、現実空間の距離や空間をもとに情報を整理する事だろう。
場所の情報を再構築する事であり、場所へ情報の付加をする。
空間の情報を見るための新しい目や視覚こそが AR 体験の入り口となる。

 

AR ゲームのでユーザー体験の難しさがある。

ビデオゲームはそこそこ長い歴史があるが、ゲームでのユーザー体験で不変のものがいくつかあり、そのひとつはコントローラーである。

Kinect などジェスチャーなど、いろいろなコントローラーに代わるものが出たが、結果的にゲームパッドに落ち着いている。

AR は現在空間を使用したり、現状デバイスの問題で、ジェスチャーや体をコントローラーとして使用する事が多く、長時間体験を続ける事が難しいと予想される。

また、没入するため大きな空間で動画など閲覧するのであれば、それは現実空間に物理的に大きなスクリーンがあったほうが良いし、スクリーンが仮想的なものとなるのであれば、いっそのこと全体を仮想空間にする VR の方が良いかもしれない。

 

映像演出としての AR 体験ではどうだろうか。

個人的に PV や実験として AR を使用して現実にエフェクトかける事をしているものがあるが、あれは映像として意味があり、普段使用するものとして現実をぬりかえるものは、多くの場合で邪魔でしかない。

 

結局のところ、AR とは現実空間に新しい認識を与える事で、人が認識できない新しい感覚機能を拡張する事なのだろうと思う。

例えば、LiDAR などを使用した空間認識が進化すれば、目の不自由な方にとって新しい感覚器になるかもしれない。

それを伝えるのは文字か映像、アバターかいくつか方法はあると思うが、AR 体験は VR の体験同様に、我々の生活を豊かにするものだと信じている。

SceneKit のこれから

RealityKit が AR 向けとして出ているが、SceneKit はこれかも続くだろうと淡い期待をしている。

RealityKit が AR 向けと書いているように、現状は SceneKit を置き換えるにはかなり機能が少ない。
そもそも SceneKit は汎用的な 3DCG を表示するためにつくられており、RealityKit は tvOS や watchOS で使用することはできない。

 

では、何故 RealityKit には tvOS や watchOS で使用できないのかというと、RealityKit というか ARView は描画コストがかなりかかるため。
わかりやすい例を出すなら ARView はレイトレースベースの影を出す事ができる。
(現状 Storyboard からしか設定ができず、コードで設定する方法がわからない)

また、RealityKit と SceneKit では物理シミュレーションがあるが RealityKit は機能は少なくまた精度が低かったりする。

 

SceneKit が無くならないだろうと思う点は、取り仕切っている Thomas Goossens という方が AniMoji や MeMoji、古くはカバーフローや macOS でのプレビュー等のライブラリ ImageKit など開発しており、Photobooth、Maps アプリ、TimeMachine の UI、QuartzComposer などのプロジェクトに関与しているらしい。

あと、WWDC 2014 の SceneKit のセッションでスライドを SceneKit のアプリとしてつくるという恐ろしいプレゼンをした人である。

 

とりあえず、Metal のシェーダーでレイトレができたり、サンプルではボリュームライトを扱っていたりするので、WWDC 2020 ではそのような発表や機能追加があると良いなと期待している。

新しい iPhone SE (第2世代) は買うべきか

価格を間違えていたので訂正

今週末から販売されるわけだが、新しい iPhone SE は買うべきか考えてみる。

旧 SE からの乗り換えの場合かなり機能がジャンプアップするのだが、
基本的には iPhone 6 〜 8 からの乗り換えだと思われるので、iPhone 8 筐体やカメラに対して A13 Bionic やセルラーや WiFi, Bluetooth などが強化されている事となる。

近しいものとして、iPhone 11 と比較すると大きな違いは、TouchID、カメラ性能、耐水性能、ディスプレイの大きさ、端末の大きさや重さ、バッテリーの持ちである。

iPhone SE
ストレージ 価格
64 GB 44,800
128 GB 49,800
256 GB 60,800
iPhone 11
ストレージ 価格
64 GB 74,800
128 GB 79,800
256 GB 90,800

 

iPhone SE を調べてみた

11 とディスプレイの輝度が同じなので案外 ディスプレイの見た目は iPhone 11 と変わりはないかもしれない。

ただ、カメラのスペックがフロント、バック共のにフラグシップとは劣るため、写真や動画を重視するなら iPhone 11 の方が良いかと。

背面カメラはナイトモードが使用できず、ビデオ撮影で拡張ダイナミックレンジが 30 fps の撮影で、オーディオズームを使用することもできない。

フロントカメラの画素が 7MP なだけではなく、スマートHDR、4K での録画やスローモーション、ビデオ撮影で拡張ダイナミックレンジが使用できず、
あまり使用されていないが TrueDepth カメラではないため、アニ文字、ミー文字が使用できない。

動画再生は Dolby Vison には対応しているが、Dolby Atoms には対応していないため立体音響に関しても iPhone 11 の方がよくなっている。
また、超広帯域チップ (UWB) がない。

 

Apple A チップ

Apple 13 Bionic が搭載されており、街の噂では iPhone 11 シリーズよりメモリが 1G 少ないらしい。

多分、スペック的には iPhone 11 シリーズとそこまで変わらず、
シングルスレッドでは iPad Pro の A12X、A12Z Bionic より速く、
マルチスレッドでは iPhone 11 シリーズ と同等となり、
基本的には iOS / iPadOS 端末では A12X、A12Z Bionic の iPad Pro しか大幅にスペックが上がるものがないということになる。
(Metal では A10X も)

GPU に関しては開発者なら知っていることだがチップの世代で新機能が増えている。
もし、ゲーム中心で考えるのであれば、古い世代の Apple A チップをのせた iPhone / iPad はあまりお勧めできない。

また、Apple 13 Bionic は Android のフラグシップモデルの Snapdragon 865、Kirin 990 と比べてシングルスレッドでは圧倒的に速く、マルチスレッドでは少しは速い。
要するに、10万円以上する Android 端末よりスペックが高いため、 やはりスマートフォンでゲームをやるのであれば iPhone SE を選ぶべきだろう。

 

AR に関して

フロントは True Depth カメラがないので顔認識はできないのだが、 Apple 13 Bionic を載せているため、バックカメラの ピープルオクルージョン、モーションキャプチャは使用できるのでは無いかと思っている。

https://developer.apple.com/jp/augmented-reality/arkit/

 

まとめ

端末の大きさが小さく、重さが軽く、TouchID に魅力を感じるのであれば iPhone SE。
正直、本当のこの端末の使用用途は安いスマートフォンゲーム端末として、または顔認識を使用しない AR 端末としての購入するためだと思っている。

とりあえず、久しぶりに白のカラーリングが戻って来たので買ってみてもよかもしれない。

Reality Composer 1.4 の新機能

新しい iPad Pro で LiDAR センサーによる現実世界の遮蔽物の検知ができる機能(オブジェクトオクルージョン/リアルワールドオクルージョン)が加わったことに伴い、Reality Composer のバージョンが上がりバグ修正と新しい機能が追加された。

新機能は以下の3つ

  • オブジェクトオクルージョン / リアルワールドオクルージョン
  • アクセシビリティの設定
  • USDZ 書き出し

 

オブジェクトオクルージョン / リアルワールドオクルージョン

第2世代の iPad Pro 11 inch と第4世代 iPad Pro 12.9 inch のみ使用できる機能。

詳細の項目とシーンの物理でリアルワールドオクルージョンを設定すると、今まで平面の床が物理判定だったものが、現実世界の遮蔽物に合わせて物理判定が行われるように変わる。

段差のある場所に仮想オブジェクトを置くと高低差を認識して配置されたり、ピープルオクルージョンのように柱や扉などが仮想オブジェクトが置かれた場合隠れるようになっている。

 

アクセシビリティの設定

シーンとオブジェクトに対してアクセシビリティの読み上げで読み上げられる文字とシーンの記述(説明)が追加できる。

シーン、オブジェクト、トリガーに設定可能で、Voice Over 使用時にシーン開始時やシーンの説明とオブジェクトの説明、トリガー使用時に読み上げられる。

現状、アプリや QuickLook で再生することができるが、RealityKit 側では読み書きする API が存在しない。

 

シーンのアクセシビリティ

 

オブジェクトのアクセシビリティ

 

ビヘイビア(トリガー)のアクセシビリティ

 

USDZ 書き出し

Reality Composer 単体から USDZ ファイルの書き出しが可能になった。

実験的機能となっているため、macOS の場合はメニューバー 「Reality Composer」から環境設定、iOS / iPadOS では設定アプリの 「Reality Composer」にある 「USDZ形式の書き出しを有効にする」をオンにしないと「書き出し」の際に選択できない。

 

macOS

 

iOS / iPadOS

 

Pixar の仕様にはなかったはずの機能だが、Apple 独自の仕様によりオブジェクトアンカー以外のアンカーが設定でき、ビヘイビアや音声ファイルを埋め込むこともできる。

USDZ はただの zip ファイルなので中身を展開してみると、画像、音声の入ったフォルダとUSDC ファイルがある。
(今まで通りフォルダ名 0 が画像、1 が音のファイル)

それ以外のファイルがないため USDC に記述されており、USDC なバイナリを Hex で見ると、シーンで使用した効果音の caf ファイルが含まれるパスが書かれてあった。

 

注意点

アクセシビリティ

Voice Over 使用時は効果音など付いた USDZ を QuickLook でプレビューしても再生されないので注意。
また、挙動がおかしくなる時がある。

 

USDZ 書き出し

シーン開始などで USDZ オブジェクトのアニメーションを設定し USDZ に書き出した場合、再度 Reality Composer でそのファイルを読み込み、シーンを再生した際には、ビヘイビアがなくても自動でアニメーションが再生される。

そのため、Reality Composer では個々のオブジェクトを強制的に再生停止ができない。 何らかの振る舞いからアニメーション再生や停止をさせたい用途があるのなら書き出しには注意が必要。

USDZ のソースにアニメーション設定が書かれてしまっており止めることができない。
アプリとしてつくる場合は RealityKit の API で止める必要がある。

 

まとめ

オブジェクトオクルージョンは表現を広げ、USDZ の書き出しはテンプレートや読み込んだ USDZ のオブジェクトにアニメーションをつけたり、音をつけて USDZ として書き出すことができる。

アクセシビリティに関しては、ユーザーがつくるものとしては必要ない気がするが、音声で指示する何らかのインタラクションとして AR の次の機能として付けたいような感じはしている。

iPhone と Reality Composer で始める簡単 AR その27 - AR で VR 編

SceneKit の ARKit でやった様に背景をカメラ画像から静止画にして VR チックなものを作成してみる。

Reality Composer ではカメラ画像を変更することはできないので、球のマテリアルに 360 度写真を貼り付けて表面の法線を反転することで背景画像を作ってみることにする。

 

試してみる

背景オブジェクトの作成

Reality Composer や SceneKit の Scene Editor では法線の反転ができないため、3DCG DCC ツールを使うことになる。

例えば Blender では、球のジオメトリを作成し、スムースシェーディングを行い表示を滑らかにし、法線を反転させ、マテリアルとテクスチャの設定をしていく。

f:id:x67x6fx74x6f:20200325034157p:plain

 

現状、Blender で USDZ に変換できないので、obj や USD などで書き出し Xcode の Scene Editor で Export から USDZ にするか、Reality Converter を使用するのが簡単そう。

f:id:x67x6fx74x6f:20200325034223p:plain

 

今回はオブジェクト作成の詳しい説明はしなかったが、サンプルファイルのテクスチャを変えて USDZ を作成すれば自前の 360 度画像の背景が作成できると思う。

 

Reality Composer に配置して、AR を試す。

新規作成からプロジェクトを作成。
背景のジオメトリを読み込み、位置と大きさを調整するだけ。

f:id:x67x6fx74x6f:20200325031259j:plain

 

とりあえず、サンプルではキャラクタにビヘイビアを設定しており、タップすると前に進む。

 

AR でビヘイビア再生時、球のジオメトリの影が床に落ち暗くなってしまうのが残念ではあるが、そこを妥協すればさくっと端末のカメラを使用しない形で背景を設定することができる。

 

サンプルファイル

下記のリンクに行き、右側の緑のボタン「Clone or download」からリポジトリをクローンするか zip をダウンロード。
VR フォルダが今回のサンプル。

iPhone や iPadOS に Reality Composer がインストールされていれば、ダウンロードした zip を展開し rcproject を開いて中身を見ることができる。

github.com

 

まとめ

ざっくり VR 的なものができた。

一応 RealiyKit の方ではカメラ画像を使用しない機能があるのでちゃんと作成したい場合はそちらを使用すると良いかと。
ただ、カメラを使用しない場合で RealityKit で rcproject ファイルを使用する場合は色々やらないといけないことがあるので注意。

また、平面系ではなくフェイストラッキングのアンカーなど他のアンカーでも試すと面白いかもしれない。

iPhone と Reality Composer で始める簡単 AR その26 - 情報ハブ 編

書き忘れていた情報ハブについて。
これについては特に説明は要らないのだが、まぁ、とりあえずというところ。

Reality Composer のプロジェクトファイルはrcproject ファイルとして保存され、以前説明した通りフォルダの中にファイルが詰め込まれたもの。

そのため、中身が欠損したり、他の macOS、iOS / iPadOS で使用しているビルトインオブジェクトが開いた環境でダウンロードされていないものがあるとコンテンツが表示されなくなってしまう。

それらの不具合を解決する場合「詳細」の中の「情報ハブ」が出て、

 

タップすると復元可能のアイテムや、警告が表示される。

 

情報ハブはファイルに不具合があった場合、自動的にたされる。