Apple Engine

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

Apple の製品ラインナップを考えなおす2017年

もう今年も僅かなので今後のラインナップをなんとなく考えてみる。

 

iPhone

iPhone X

正直に狙いは Plus サイズが本番。
画面のインチで言うと 4.7 インチの 7 や 8 から、5.8 インチの iPhone X 画面の倍増率が 1.234 なので、 Plus サイズだと 5.5 インチが 6.787 でほぼ 7 インチとなる可能性がある。

画面の大きさから考えると 7.9 インチの iPad mini に匹敵するぐらい。
この大きさになるとスタイラスがつくかもしれないと言う噂はあながち間違っていないのかもしれない。

と書きつつ、iPhone X は画面四隅の角丸やレンズセンサー部分の出っ張りで画面が削れているし、 セーフエリア外の UI は推奨していないので、スペック通りの画面サイズが使用できるわけではないが。

 

iPhone SE

一部国で圧倒的な人気があるためラインナップ的には外せないだろう。iPhone 5c はスペックで失敗したと思われるので 許容できる端末を出せば売れる結果。

新しい端末が出るかは不明だが、もうそろそろでても良さそう。

とりあえず、今期 iPhone 8 より値段の安くなった iPhone 7 シリーズの方が売れているので、廉価版の需要は結構のあるだろう。

 

Mac

Mac mini

新機種が出ていないが、正直このラインナップが必要か不明で、 手軽に Mac として使うなら MacBook で良し、iPad でも良いのではないかと言うところ。

iOS、watchOS や tvOS でアプリを作成するために Mac mini 買うとした時、 残念ながら廉価の Intel チップより Apple A11 の方がスペックが高くなるので厳しい感じではある。

個人的には次の Mac Pro の最下位のライナップがこれと言う形になるのではないかと思っている。 また、全体のコストパフォーマンス的に言うと iMac でも良い気がする。

 

iMac、iMac Pro

高解像度のディスプレイとカメラがついているし、CPU がモバイル向けではなかったりで、 実は iMac が Mac のなかで一番コストパフォーマンスが高い。
用途にもよるが Mac でしか作業できなことがな少なければ、iMac と iPad の組み合わせもありかなと。

iMac Pro に関しては Xeon での費用対効果は少ないので、 Vega による GPU の効果を期待したい。
iMac Pro 結構ディスられているけど、ディスプレイ一体型のハイエンド機は業務用として需要があると思われる。

セキュアエレメントの関係上、セキュリティの問題で Bluetooth のキーボードに Touch ID は実装できないと思われるので、iMac では Face ID が実装されて欲しい。

 

Mac Pro

次期 Mac Pro の予定があるらしいが、多分、次の WWDC まで発表はないのでないかと。

拡張性を重視するらしいので、今回も一旦販売されるとリニューアルまでに時間がかかるかと。

 

ラップトップ

Air はディスコンで、MacBook と MacBook Pro の流れ。

個人的には、近い将来 AMD チップに移行する時が来るのではないかと思っている。

それと Touch Bar の ESC キーは物理ボタンにして欲しい。

 

iPad

チップ自体ラップトップ並みになっており、 iCloud Drive 絡んだファイル操作やドラッグ&ドロップなど OS 的にラップトップに近い形になっている。

正直、macOS を食いつぶすぐらいの機能がない限り、ラインナップ的にかなり微妙な立ち位置だと思われ、 iPad 版の Final Cut や Logic などのクリエーションツール、iTune Connect にデプロイはできなくてもいのでほぼほぼの機能が使用できる iPad 版 Xcode を出すべきだと考えている。

ひとまず、Apple が本気を見せなければサードパーティーがついてくる訳が無い。

iPad mini

多分、次期端末が出ないのでは無いかと言うところ。

代替は大分高くなるが Plus サイズの狭額縁 iPhone だろう。

 

Apple Watch

Apple Watch はいらないと言われ続けているが、 なんだかんだ言って現状スマートウォッチでシェアが高い。

今後の展開を考えると、業績や他社のデバイスをさらに引き離すため、 来年も新しい Apple Watch がリリースされるだろう。

eSIM を実用化したため、 Apple Watch の技術を元に AR メガネなど、 他のデバイスでのウエアラブルデバイスの展開も期待できる。

 

Apple TV

格安で手に入る Apple A チップを載せた端末で、 個人的には必要な条件が揃えば面白いデバイスになると思われる。

現状、Core ML の学習データの作成は Python で行われているが、 もし Swift でできるなら複数の Apple TV を使用し計算ができるかもしれない。

個人的には iOS における Mac mini 的な存在になって欲しい。

 

HomePod

デジタル機器はモバイルと非モバイルで構成されると思われる。

モバイルでは iOS と AirPods やワイアレスヘッドフォンで制覇したので今度は室内。
HomePod 単体での動作を想定しているが、真価は他のデバイスとの連携だろう。

Apple はデバイスを売る会社なので。

 

iPod 系

多分、もう役割を終えたので近い将来ラインナップから姿を消すと思われる。

 

AirPods

無線充電のケースが予定されているが、今後 Bluetooth 5.0 に対応したものが出て音質が改善されると思われる。

とりあえす、自分が言えることが日本でフィールドテストして欲しい。

音が密閉されないイヤフォンは周りの音が大きすぎるとほぼ使用できない。都内だと人の密度が高く、人の多いカフェなどは互いが声のボリュームを上げたりでかなり厳しく、駅のホームなど割と環境の音が大きい場所が多かったりで厳しい。 周りの音が大きいためボリュームを上げる必要性があり耳に優しく無い。

beats は問題がありすぎるので、カナル型の AirPods が必要だと思っている。

 

まとめ

個人的には、シェアやその他いろいろを考えると、Apple はハイエンドかつより高価なラインナップ路線を進むと思われる。

また、Microsoft は Windows 関連より Xbox の方が儲けが多いし、Google の儲けのほとんどは広告で、AI First のスローガンの下に AI に力を入れている。

今後、他社はクライアント側のソフトやハードへあまり力を入れないような気はしているので Apple には頑張ってほしいところ。

次期 SceneKit の機能をなんとなく予想

Metal 2 on A11 - Overview」を見る感じだと、A11 Bionic チップでは フラグメントの処理の際、メモリーとの間にさらに高速にアクセスできる保存領域があるらしく、 2D 処理が全般的に速くなるらしい。

そこから何となく予想してみた。

 

次期 SceneKit つくだろうと思う機能

  • 全画面でのアンチエイリアスが綺麗になる
  • サブサーフェイス・スキャタリング
  • ヴォリュームライト/フォグ
  • ガラスのような屈折の表現

 

個人的に欲しい機能

  • 面単位、特定の大きさ単位でのジオメトリの分離
  • パーティクルエミッターからのジオメトリー放出
  • ソフトボディのシミュレーション
  • 流体シミュレーション
  • 群衆シミュレーション
  • マテリアルで設定できるスクリーンスペースリフレクション or リフレクションプローブ
  • 動画をテクスチャとして適応する (現状でも可能だが SpriteKit を使用するので若干面倒)
  • シーンエディタ下アクションのタイムラインでのカスタムアクション作成
  • もしくは Unity のタイムラインと同等のもの
  • シーンエディタでの頂点編集やモーフターゲット作成
  • シーンエディタでのボーンアニメーション設定
  • 人体などの汎用的なボーン / ボーンのリターゲット
  • ジオメトリでのマスク(or ブーリアン処理)
  • iPhone X のセーフエリアを考慮した SpriteKit の HUD 用オーバーレイ

 

色々、書き連ねたが、要するに Maya や 3ds max などの 3DCG DCC ツールにあるような機能が欲しい。

技術書典3に出典しておりました

ブースにお越しいただい方、ご購入いたただいた方、ありがとうございます。

この Blog で書いている SceneKit についての PDF を出していまして、前半は Blog の内容、後半部分は iOS 11 で追加されたが書かれており、うっかり 340 ページ超えてしまいました。

iOS 11 の SceneKit の新機能はドキュメントでも「No overview available」が多く、 該当する機能のヘッダーファイルにコメントで説明が書かれているのですが、 SceneKit はコメント自体がないものがあって結構レアだったと思われます。

 

内訳

正確な数は伏せますが若干黒字です。
出典料、ユザワヤさんで買った机に敷く布、ダウンロードカード用の名刺印刷、 本紹介用の印刷物、その他雑費で大体1万ぐらい。
名刺の印刷は速く入稿するとかなり安くなりますし、 見本は iPad Pro にしていたので、PDF のみにすると大体このぐらいになります。

当初は印刷物にしようとしていたのですが、 1冊当たりの価格が薄い本の価格にしては異常に高くなるため諦めました。
ちなみに、現状のページで30部刷ると 13インチ MacBook Pro i5 メモリ8G 256GBストレージが買えるぐらい。

 

良いところ

知っていることでも、再度文字に起こしたり、まとめたりすることで理解が深まり、誤りに気付くこともありで、自分自身の勉強になりました。

 

思うところ

ざっくり見た感じですと Android / iOS 関連はあまりなく、 賑わっていそうなところは、Unity、Python や ML、Web 関連と数学関連でして、 書店で販売されるものにリンクしている感はありました。
需要として考えると真っ当な話ですが、やはりこういうものは儲けとかではなく出したいから出すべきかなと。

また、3度目(4度目?)の開催なのかわかりませんが、 運営の方が手馴れていてぐっじょぶでした。
開催が11時から、場所がUDX(家から近い)というのも良いです。

あえて言うと毎回天候に恵まれないところですかね。

 

反省点

Blog からもってきているので文章を常体から敬体に直すのが面倒なのと、
つくり終えた時に気づいたのですが、 3冊ぐらいに分けてもっと丁寧に解説した方がよかったと思いました。

あと、今回初めてでしたので1人で行ったのですが、ワンオペだと他のブースがあまり見られないのが難点です。

 

まとめ

こんなマイナージャンルの本を手にとってもらえる環境をつくっていただいた運営の方や来場者の方には深く感謝をしております。

ありがとうございました。

iPhone X の Safari で表示する Web ページの HTML / CSS 設定

どうやら、そのままだとサイトが表示領域の全体に面表示されないっぽい。

参照元
ayogo.com

 

対処方法

meta タグ Viewport に「viewport-fit=cover」を入れる。

<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

 

このままだと問題があり、本体を横に傾けてランドスケープにすると コンテンツが両サイドまでいってしまい、四隅のアールやカメラ部分でコンテンツ内容が隠れてしまう。

アプリのように Safe Area があり、CSS で padding を設定すると余白をつけてくれる。

padding: 
constant(safe-area-inset-top) 
constant(safe-area-inset-right) 
constant(safe-area-inset-bottom)
constant(safe-area-inset-left);

 

ちなみに、constant(safe-area-inset-top) は margin など一部プロパティでも使用可能。

 

注意点

safe-area-inset を設定したタグに「width: 100%」 や 「height: 100%」を設定すると表示がうまくいかない可能性がある。

iOS 11 GM の ARKit で変更されたこと

フェイストラッキングで顔の形状を取り、顔や独自で作成した顔のジオメトリを AR の仮想空間設置し、表情を付加する機能が追加。
Message アプリでデモしていた AniMoji ようなものが、AR 空間で使用できる。

また、Beta 中に廃止となっていたものが完全に機能からなくなった。

 

廃止

ARWorldTrackingSessionConfiguration と ARSessionConfiguration が廃止

ARKit の初期にあったフル機能を使用する設定と、移動でジオメトリが固定できず追従してしまうが全端末で動く設定の ARWorldTrackingSessionConfiguration と ARSessionConfiguration が完全に廃止され 命令を受け付けなくなった。

要するに呼び出すと落ちる。

ちなみに公式のドキュメントからも該当ページがなくなっている。

 

ARWorldTrackingConfiguration と AROrientationTrackingConfiguration を使うべし。

 

変更前 / 変更後 機能説明 対応端末
ARWorldTrackingSessionConfiguration / ARWorldTrackingConfiguration フル機能を使用可能 A9 以上の端末
ARSessionConfiguration / AROrientationTrackingConfiguration 端末移動でジオメトリが追従してしまう 全端末

 

追加

全て顔認識系のもの。

  • ARTrackable
  • ARFaceTrackingConfiguration
  • ARFaceAnchor
  • ARDirectionalLightEstimate
  • ARFrame > capturedDepthData
  • ARFrame > capturedDepthDataTimestamp

 

ARTrackable

フェイストラッキングが可能かどうか調べるプロトコル

 

ARFaceTrackingConfiguration

ARWorldTrackingConfiguration などと同様に、フェイストラッキングの設定をする。

 

ARFaceAnchor

顔を表す ARFaceAnchor オブジェクトが、今までと同様にアンカーリストを追加され、顔の位置と向き、顔のジオメトリーのトポロジーや表情が構成される。

表情に関しては Blend Shapes によるモーフィングで行う。

 

ARDirectionalLightEstimate

ARFaceTrackingConfiguration で isLightEstimationEnabled を true にしている場合、現実空間から光の情報を取得し仮想空間にライトの情報に適応する。
デフォルトでオン。

 

ARFrame > capturedDepthData

フレーム毎に深度カメラからキャプチャされた深度情報が AVDepthData で返される。

 

ARFrame > capturedDepthDataTimestamp

フレーム毎に深度カメラから生成される深度情報がキャプチャされた時間 (タイムスタンプ) が返される。

フレーム毎に生成されるカラー画像と深度画像のフレームレートが異なるため、カラー画像と深度画像のタイムスタンプが必ず一致するわけではない。

 

取得できる表情の Blend Shapes

英語だけどなんとなくわかるかと思われる。

リンク先の公式ドキュメントでは個別で画像とともに紹介されている。

 

左目

  • eyeBlinkLeft
  • eyeLookDownLeft
  • eyeLookInLeft
  • eyeLookOutLeft
  • eyeLookUpLeft
  • eyeSquintLeft
  • eyeWideLeft

 

右目

  • eyeBlinkRight
  • eyeLookDownRight
  • eyeLookInRight
  • eyeLookOutRight
  • eyeLookUpRight
  • eyeSquintRight
  • eyeWideRight

 

顎(Jaw)

  • jawForward
  • jawLeft
  • jawRight
  • jawOpen

 

口(Mouth)

  • mouthClose
  • mouthFunnel
  • mouthPucker
  • mouthLeft
  • mouthRight
  • mouthSmileLeft
  • mouthSmileRight
  • mouthFrownLeft
  • mouthFrownRight
  • mouthDimpleLeft
  • mouthDimpleRight
  • mouthStretchLeft
  • mouthStretchRight
  • mouthRollLower
  • mouthRollUpper
  • mouthShrugLower
  • mouthShrugUpper
  • mouthPressLeft
  • mouthPressRight
  • mouthLowerDownLeft
  • mouthLowerDownRight
  • mouthUpperUpLeft
  • mouthUpperUpRight

 

眉毛(Eyebrows)

  • browDownLeft
  • browDownRight
  • browInnerUp
  • browOuterUpLeft
  • browOuterUpRight

 

頬(Cheeks)

  • cheekPuff
  • cheekSquintLeft
  • cheekSquintRight

 

鼻(Nose)

  • noseSneerLeft
  • noseSneerRight

 

参照元

ARKit | Apple Developer Documentation

developer.apple.com

Face ID で変わることの予想


Face ID と噂されている顔認証で変わることを考えてみる。

 

ハード側から見てみると、まず画面が広く使え、噂通り、狭額縁になる為かなりの広さが期待される。
ホームボタンがなくなることで、それに起因する故障がなくなるし、手やホームボタンが汚れていた時に認証ができなくなることがなくなる。
これからの季節での利点は手袋をしていても顔認証できることだろう。

顔の部位で行う認識に関しては Lumia 1520 で便利さを感じたのでがんばってほしい。勿論、素早く認証ができるのであればの話だが。

 

ソフト側から見ると顔認証で今まで Touch ID で行なっていた認証が通る。
噂によると顔が画面を向いていると、スリープさせないように設定することができるらしい。

多分、iOS SDK の Vision Framework で使用できる Landmark の顔の形状の認識を使用しているので、顔がどのように向いているかわかると思われる。

スリープなど顔認証以外にも面白いことに使えそうな感じはする。

 

1つだけ気になっているのはマスクしていた時に認証は通るのだろうかというところ。

iOS 11 以降で Apple が目指す世界

今回、iOS SDK で目玉の機能だと思っているのは、CoreML、Vision、ARKit で、この3つの連携がスマートフォンの世界を変えると思っている。

以下、軽く説明。

 

Core ML

機械学習向けフレームワーク。 顔認識などで画像から特定のもの検知したり、Siri などで使われている言葉の分類分けなど、使いやすくしたもの。
具体的には、学習データを TensorFlow などで作成し、mlmodel などの専用ファイルに変換、Xcode のプロジェクト放り込むと mlmodel のファイルがクラスとして扱える。
必要なパラメータを渡すとそれに沿った結果が返ってくるクラスとなり、実装がかなり簡単。

正直、学習データを作成するのが、かなりしんどいので誰でも簡単にとは言わないが、学習データが手元にあれば機械学習がかなり手軽に試すことができる。

 

Vision フレームワーク

顔認識、文字認識、バーコード・QR コード、物体認識など既存で用意されているが、このフレームワークの真髄は Core ML との連携にある。

リアルタイムで撮っているカメラから Vision に渡し CoreML で画像解析という連携ができる。

 

ARKit

これに関しては色々記事が出ているのであまり語ることはないが一応説明。

現実空間に 2D / 3D でつくられた仮想のオブジェクトを合成し、あたかも現実にその物体があるかのように見せる技術。

現状、検知できる障害物は水平の平面のみ。

 

この3つから想像できる今後。

Core ML は機械学習から推測する予知や検知、
Vision は Core ML からのデータの受け渡しや分類をし、
ARKit はその入り口と最終的な情報の可視化を行うようになるだろう。

 

現状で自分が試しに行ったのは、
ARKit で画面タップの際に、撮る現実のカメラ画像から Vision に渡し、
Vision から Core ML の学習データから写真に何が写っているかを検知してテキスト情報に変換。
検知した情報を ARKit 上で文字のオブジェクトとして配置するようなもの。
簡単な実装でこれだけのものができてしまった。

 

多分、今後は Core ML の学習データ作成部分も Apple 謹製のもの出てきそう。
もし、ARM チッブでも使用できるのであれば Apple TV が学習データ作成用のデバイスとなるかもしれない。

ARKit に関しては Microsoft HoloLens のように見えている周囲の障害物の判定を行えるようになるだろう。
その際は、セカイカメラのようにいろいろなものにタグ付けしたり情報を表示することができるかものしれない。
また、何らかの情報をサジェストする機能も実装できるだろう。

 

今後、この技術を使用したアプリやデバイスがどのような進化をするか楽しみである。