――続いてバーチャルデスクトップ環境を実現する「Spaces」について聞かせてください。現在、MacにはいくつかのサードパーティがSpaces同様のバーチャルデスクトップ環境を提供しています。Spacesはそうしたサードパーティー製品と共存可能なのでしょうか。
カサノバ ユーザーには「Spacesを使わない」という選択肢も与えられています。Spacesの環境設定のどこかに、これを無効化する設定があったはずなので、サードパーティ製品を使いたい人は、そうすればいいでしょう。
ただし、大半のユーザーは、我々がこの機能を無償でOSに内蔵してくれたことを喜ぶと思います。我々は自らつくったハードウェアのことを知り尽くしているので、Spacesは動作も機敏です。もちろん、サードパーティの製品が、我々の提供していない優れた機能を提供していれば共存だって可能でしょう。……それは時間が経ってみないと分かりませんね。
我々はこの機能をOS標準とすることに非常に大きな意義を感じました。Spacesはデスクトップ領域の狭いノートPCにとって便利なのはもちろんですが、例えば30インチのApple Cinema Displayを使っているユーザーであっても、変わらず便利な機能です。
画面一杯にビデオ編集ウィンドウやらメールのウィンドウやらを広げて使っていても、Spacesでデスクトップ環境を切り替えるだけで、ウィンドウが1つも開いていないすっきりした画面に切り替えることができる。これはなかなか気持ちいいです。
――それでは「Core Animation」について質問です。WWDCの基調講演で、iTunesのCMを再現するデモとアルバムジャケットで表紙をつくるというデモを行ったために、これを3Dの技術だと捉える人もいたようですが、そうではないんですよね。詳しい開発者の友人は、これは「むしろ、ユーザインタフェースをつくるための技術だ」といっていますが、そうなのでしょうか?
カサノバ そうですね。3Dの技術ではありません。この技術は「Core Audio」「Core Video」「Core Image」など、そのほかのCoreエンジン同様、Macintoshのハードウェアが備える本来の能力を、一般の開発者達が簡単に引き出せるように用意されたAPIです。
ハードウェアの性能をフルに生かして、まったく遅れのないプロ用の音楽ソフトを開発する、というのはなかなか大変なことです。でもCore Audioを使えば、それが簡単にできます。同様のことはGPUについても言えます。最近のMacはCPUもそうですが、搭載されたGPUもとてつもなくすごい能力を持っています。ただし、これをきちんと生かせている開発者はあまりいません。なぜならそれを生かすOpenGLのプログラミングというのはなかなか大変だからです。
そこでCore Imageがこう言っているのです。「我々に何をやらせたいのですか」「それを実行するのに必要なパラメータ(座標などの一時的データ)を教えてください」「そうすればGPUごとの細かな仕様の違いなどの部分は我々の側ですべて対応しますよ」と。
Core Animationも同じことです。ただ、Core Animationが取り扱えるデータセットはアニメーションや合成が可能なレイヤー(層)に限られています。つまり、確かに基調講演のデモは3Dに見えていますが、本当の3Dではなく、いうなれば2.5次元といったところで、本当の3D処理をしているわけではありません。
こうした処理がどこで生きてくるかは、かっこいい3D的なユーザインタフェースなどがいい例でしょう。ボタンやリアルな操作対象のオブジェクトが、きれいにブレンド表示されたり、画面を上へ下へと流れるようにスムーズに移動したり、といった凝ったアニメーションができるのです。
カサノバ 開発者達からとりわけ好評なのは、このCore Animationの各層に、例えばCore Imageの映像やQuickTimeのムービーといったOepnGLの映像、グラフィックス、テキストといったものを挿入できる点です。WWDCでもこのCore Animationに関するセッションは全員が立ち見するほどの大人気でした。
おそらく開発者達も、Core Animationを活用するなどして、自分のアプリケーションを他社のものより際立たせたいと思っているのでしょう。優秀な開発者達は、自らのソフトウェアをブラシュアップし、機能を洗練化する一方で、ユーザー体験はさらに高めたいと考えています。Core Animationは、まさにそんな目的にぴったりのAPIだと思っています。
――ちょっとはっきりさせたいのですが、Core AnimationはGPUを活用しているのでしょうか。それともCPUを活用しているのでしょうか。
カサノバ ほとんどはGPUですが、CPUの場合もたまにあります。
――Core Imageの一部ではなく、Core Animationという独立したAPIとして提供したのはなぜでしょう?
カサノバ それぞれの果たす役割をシンプルにとどめておきたかったからです。Core Imageの画像をCore Animationで動かしたり、Core Videoのビデオ映像の中で使用するといったオーバーラップする部分はありますが、そうしたことをするうえでもこのシンプルなモデルを保つのが最良だと考えました。
Copyright © ITmedia, Inc. All Rights Reserved.