Development」カテゴリーアーカイブ

メディア・アートと現代音楽の融合

(最終的な作品はMacのSafariなどでWEBページで確認できる)

Anthropicの生成AI、Claude 3.5 Sonnet + Artifactsに以下のプロンプトを投げた。

メディア・アート作品「Sonic Bloom: デジタル共生庭園」(https://akamatsu.org/ai/SonicBloom/)と現代音楽作品「量子の囁き – Quantum Whispers」(https://akamatsu.org/ai/QuantumWhispers/)を融合して、WEBブラウザで実行できるマルチメディア作品を作ってください。コンセプチュアルな作品背景を含めた説明文とイカしたタイトルも合わせてお願いします。そして、プログラム・コードを生成してプレビューできるようにしてください。

その結果は以下の通り。

はい、WEBブラウザで実行できるインタラクティブなマルチメディア作品を作成いたします。「Sonic Bloom」と「量子の囁き」の要素を融合させた新しい作品のコンセプトを考えてみましょう。

タイトル: 「量子の庭 – Quantum Garden」

コンセプト: 「量子の庭 – Quantum Garden」は、デジタルと自然、量子力学と生態系の融合を探求する没入型のインタラクティブ作品です。この作品では、観察者の存在が量子の世界と自然界の両方に影響を与えるという概念を視覚化し、聴覚化します。

ユーザーはマウスやタッチ操作を通じて、画面上に表示される抽象的な「量子の花」と相互作用します。これらの花は、量子の重ね合わせ状態を表現しており、観察されるまでは確定した形や色を持ちません。ユーザーが花に近づくと、量子の波動関数の崩壊のように、花は特定の状態に収束し、同時に独特の音を奏でます。

この音は「量子の囁き」から着想を得た、量子ノイズを基にした音響で、花の状態や位置によって変化します。複数の花が近接すると、量子もつれのように音が干渉し合い、複雑な和音を生成します。

背景には常に微かな環境音が流れ、量子の揺らぎと自然界のアンビエントサウンドが融合した音響空間を作り出します。時間の経過とともに、花は成長したり、新しい花が芽吹いたりと、生態系のダイナミクスを模倣します。

この作品は、量子力学の不確定性原理と観測の影響、生態系の相互依存性、そしてデジタル技術と自然界の共生関係を探求します。ユーザーは、この量子の庭の共創者となり、その存在自体が作品の一部となることで、人間と自然、ミクロとマクロの世界の繋がりを体験することができます。

それでは、このコンセプトに基づいたWEBブラウザで動作するプログラムを作成しましょう。

このHTMLファイルには、p5.jsを使用した視覚要素とTone.jsを使用した音響要素が含まれています。主な機能は以下の通りです:

  1. 「量子の花」が画面上にランダムに生成されます。
  2. 各花は、観測されるまで色と大きさが常に変化し続けます(量子の重ね合わせ状態を表現)。
  3. マウスカーソルが花に近づくと、花は特定の状態に「崩壊」し、同時に音を発します。
  4. 音は花のサイズに応じて変化し、近さに応じて音量が変わります。
  5. 背景には常にピンクノイズが流れており、量子の揺らぎを表現しています。
  6. 時間とともに新しい花が自動的に生成され、動的な環境を作り出します。

この作品をブラウザで実行すると、ユーザーは画面上を動き回ることで「量子の庭」と相互作用し、視覚的・聴覚的な体験をすることができます。マウスの動きによって花の状態が変化し、それに応じて音が生成されることで、量子力学の観測による影響と、デジタルと自然の融合を体験できます。

プレビューするには、このHTMLコードをローカルファイルとして保存し、ウェブブラウザで開いてください。ただし、セキュリティ設定によってはローカルファイルでの音声再生が制限される場合があるため、ローカルサーバーを使用して実行することをお勧めします。

この作品をさらに発展させるアイデアがあれば、お聞かせください。例えば、花の形状をより複雑にしたり、ユーザーの操作に応じて背景が変化するようにしたりすることもできます。

生成されたコードは実行できるものの、少し操作するとエラーになるので修正を求めた。

以下のエラーが発生しました。対応してください。
p5.js says: map() was expecting Number for the fourth parameter, received string instead. (on line 86 in index.html
Error: Invalid argument(s) to setValueAtTime: “NaNC4”, 9.863990929705215

その結果は以下の通り。

申し訳ありません。エラーが発生してしまいました。問題を修正いたします。エラーの原因は、数値型を期待する箇所で文字列型が使用されていることです。特に map() 関数と音符の生成部分を修正する必要があります。

修正したコードを提供いたします。

主な修正点は以下の通りです:

  1. interact メソッド内の音の生成部分を変更しました。以前は文字列で音符を指定していましたが、数値型の周波数を使用するように変更しました。
  2. map() 関数を使用して、花のサイズ(20から50)を周波数(261.63 Hz から 523.25 Hz、つまりC4からC5)にマッピングしています。これにより、花のサイズに応じて音の高さが変化します。
  3. synth.triggerAttackRelease() に渡す値を数値型の周波数に変更しました。

これらの修正により、先ほど報告されたエラーが解消されるはずです。花のサイズに応じて音の高さが変化し、マウスとの距離に応じて音量が変化します。

この修正版のコードをHTMLファイルとして保存し、ウェブブラウザで開いてください。エラーが解消され、インタラクティブな「量子の庭」が正しく機能するはずです。

さらなる改善や機能の追加がございましたら、お知らせください。例えば、より複雑な音響効果の追加や、視覚的な要素の強化などが考えられます。

生成されたコードはローカルでは問題なく実行できるようであった。しかし、WEBサーバにアップロードするとエラーが発生する。そこで再度修正を求めた。

以下のエラーが発生しました。対応してください。
Error: Start time must be strictly greater than previous start time

その結果は以下の通り。

申し訳ありません。新たなエラーが発生してしまいました。このエラーは、Tone.jsの音声生成において、連続した音のトリガーのタイミングに関する問題を示しています。これを解決するために、音の生成方法を少し変更する必要があります。

以下に、この問題を解決するための修正版コードを提供します。

主な修正点は以下の通りです:

  1. 個別のシンセサイザーの代わりに、Tone.PolySynthを使用して単一のポリフォニックシンセサイザーを作成しました。これにより、複数の音を同時に鳴らすことができます。
  2. QuantumFlowerクラスにlastPlayedTimeプロパティを追加し、音の生成に時間間隔を設けました。これにより、音が連続して生成されることを防ぎ、「Start time must be strictly greater than previous start time」エラーを回避します。
  3. interactメソッド内で、現在の時間と最後に音を鳴らした時間を比較し、一定の間隔(この場合は100ミリ秒)が経過した場合にのみ新しい音を生成するようにしました。
  4. synth.triggerAttackReleaseの呼び出し方を少し変更し、音の長さを’16n’(16分音符)に短くし、ボリュームを0.5に設定しました。

これらの修正により、先ほど報告されたエラーが解消され、スムーズな音の生成が可能になるはずです。同時に、インタラクションの反応性も向上しています。

この修正版のコードをHTMLファイルとして保存し、ウェブブラウザで開いてください。エラーが解消され、インタラクティブな「量子の庭」が正しく機能するはずです。

さらなる改善や機能の追加がございましたら、お知らせください。例えば、より複雑な音響効果の追加や、視覚的な要素の強化、あるいは花の動きや相互作用のパターンの変更などが考えられます。

これでエラーが発生せずに実行できるようになった。しかし、ClaudeのPreviewやWEBサーバでは音が鳴らないので改善と求めた。

生成されたコードをindex.htmlとして保存し、WEBブラウザで開くと音が鳴ります。しかし、WEBサーバにアップロードすると音が鳴りません。ClaudeのPreviewでも音が鳴りません。改善してください。

その結果は以下の通り。

ご指摘ありがとうございます。Webサーバーにアップロードした場合やClaudeのPreviewで音が鳴らない問題は、おそらくブラウザの自動再生ポリシーが原因です。多くのブラウザは、ユーザーインタラクションなしに音声を自動再生することを制限しています。

この問題を解決するために、ユーザーのインタラクションを待ってから音声を初期化する方法を実装しましょう。以下に、この問題に対処した改善版のコードを提供します。

主な修正点は以下の通りです:

  1. ページ中央に「庭園を開く」ボタンを追加しました。このボタンがユーザーインタラクションのトリガーとなります。
  2. startAudio 関数を追加しました。この関数は、ボタンがクリックされたときに呼び出され、Tone.jsのオーディオコンテキストを開始し、音声関連のコンポーネントを初期化します。
  3. setup 関数内で、スタートボタンのイベントリスナーを設定しています。
  4. started フラグを導入し、音声が初期化された後にのみ、花のアニメーションと相互作用を開始するようにしました。
  5. QuantumFlower クラスの interact メソッド内で、シンセサイザーが初期化されているかチェックを行い、初期化されていない場合は音を鳴らさないようにしました。

これらの修正により、ユーザーが「庭園を開く」ボタンをクリックするまで音声が初期化されないようになりました。これにより、ブラウザの自動再生ポリシーに対応し、Webサーバーにアップロードした場合やClaudeのPreviewでも正しく動作するはずです。

この修正版のコードをHTMLファイルとして保存し、Webサーバーにアップロードしてテストしてください。ページを開いた後、「庭園を開く」ボタンをクリックすることで、インタラクティブな「量子の庭」が音声付きで機能するはずです。

さらなる改善や機能の追加がございましたら、お知らせください。例えば、ビジュアル面の強化や、より複雑な音響効果の追加などが考えられます。

このようにして生成された作品ではピンク・ノイズが流れ、黒い画面に色とりどりの円が大きくなったり、小さくなったりしている。マウス・ポインタが円に重なると音が鳴るようになっている。なお、iPhoneなどではマウス・ポインタが存在しないので、MacのSafariなどでWEBページで確認して欲しい。

以上は、今朝起き掛けに思いついて取り組んだ。最初のプロンプトの作成に4分、テキストとコードの生成に1分かかったのはこれまでと同じ。しかし、その後のエラーの発見と修正に1時間ほどかかっている。そして本記事の作成は30分ほどであった。

現代音楽の生成

Anthropicの生成AI、Claude 3.5 Sonnet + Artifactsに以下のプロンプトを投げた。

現代音楽の特徴を10個挙げてください。その特徴を満たすようにWEBブラウザで実行できる現代音楽を作ってください。コンセプチュアルな作品背景を含めた説明文とイカしたタイトルも合わせてお願いします。そして、プログラム・コードを生成してプレビューできるようにしてください。

その結果は以下の通り。

現代音楽の10つの特徴を挙げ、それに基づいてWebブラウザで実行できる現代音楽作品を作成します。

現代音楽の10つの特徴:

  1. 実験的な音響
  2. 非伝統的な楽器や音源の使用
  3. 偶然性や不確定性の導入
  4. 極端な単純化または複雑化
  5. 反復とミニマリズム
  6. 電子音楽技術の活用
  7. 静寂の重視
  8. 非西洋的な音階や調性の使用
  9. パフォーマンス性の重視
  10. 聴衆の参加や相互作用

これらの特徴を踏まえて、以下のような作品を考案しました:

タイトル:「量子の囁き – Quantum Whispers」

コンセプト: 「量子の囁き」は、量子力学の不確定性原理と現代音楽の実験性を融合させた作品です。ユーザーの操作によって生成される音は、量子の状態のように観測されるまで不確定であり、同時に複数の可能性を内包しています。この作品は、聴衆を単なる観客から能動的な参加者へと変え、音楽創造のプロセスに直接関与させます。静寂と音の境界、単純さと複雑さの間を行き来する本作品は、現代社会における不確実性と人間の選択の重要性を表現しています。

この「量子の囁き – Quantum Whispers」は、現代音楽の特徴を多く取り入れた実験的な作品です。以下に、どのように10の特徴を満たしているかを説明します:

  1. 実験的な音響:ランダムに生成される音とユーザーの操作による音が混ざり合い、予測不可能な音響体験を創出します。
  2. 非伝統的な音源:Webブラウザ自体が楽器となり、マウスクリックやランダムな動きが音を生成します。
  3. 偶然性と不確定性:音の生成とその順序が毎回異なり、偶然性に基づいています。
  4. 極端な単純化と複雑化:単純なクリック音が、時間とともに複雑な音響風景を作り出します。
  5. 反復とミニマリズム:ランダムに選ばれた音が繰り返されることで、ミニマルな音楽構造を形成します。
  6. 電子音楽技術:Web Audio APIを使用し、完全にデジタルで生成された音楽です。
  7. 静寂の重視:音と音の間に不規則な間隔があり、静寂も作品の一部となっています。
  8. 非西洋的な音階:通常の音階にとらわれず、自由な音程で音が生成されます。
  9. パフォーマンス性:視覚的要素(キャンバス上の線)と聴覚的要素が結びつき、マルチメディアパフォーマンスとなっています。
  10. 聴衆の参加:ユーザーがキャンバスをクリックすることで、直接音楽制作に参加できます。

このプログラムを実行すると、白いキャンバスと「開始」「停止」ボタンが表示されます。「開始」をクリックすると、ランダムな線が描かれ、それに合わせて音が鳴ります。また、ユーザーが直接キャンバスをクリックすることで、自分で音を生成することもできます。

この作品は、現代音楽の実験性と量子力学の不確定性を融合させ、聴衆を単なる観客から能動的な参加者へと変える試みです。ぜひ体験してみてください。

生成された作品では開始ボタンをタップすると白いキャンバスに黒い線分を描きながらシンプルな単音のメロディが奏でられる。キャンバスをタップしても音が奏でられる。縦方向が音量、横方向が音高で、Cのメジャー・スケールになっている。動作は独立したWEBページでも確認できる。

以上は、ただ一度のプロンプトで生成されている。今朝起き掛けに思いついて取り組んだ。プロンプトの作成に4分、テキストとコードの生成に1分、合計5分間で完了した。もっともその後の実行確認や本記事の作成に30分ほどかかっている。前作より短くて済んだ。

メディア・アートの生成

Anthropicの生成AI、Claude 3.5 Sonnet + Artifactsに以下のプロンプトを投げた。

p5.jsで作るメディア・アート作品の要件定義書を作ってください。インタラクティブでダイナミック、かつオーディオ・ビジュアルでソーシャルな作品とします。コンセプチュアルな作品背景を含めた説明文とイカしたタイトルも合わせてお願いします。そして、その要件定義書に従ってWEBブラウザで実行できるようにプログラム・コードを含むindex.htmlを作成してください。

その結果は以下の通り。

「Sonic Bloom: デジタル共生庭園」要件定義書

1. コンセプト

「Sonic Bloom: デジタル共生庭園」は、人間とテクノロジー、自然と人工の調和を探求するインタラクティブなメディア・アート作品です。この作品は、デジタル空間内に生態系のメタファーを創造し、観客の参加によって成長し、変化していく仮想の庭園を表現します。

音と映像が融合したこの体験は、私たちの行動が環境に与える影響を視覚化し、集団的な創造性と責任の重要性を強調します。「Sonic Bloom」は、技術を通じて自然との新たな関係性を模索し、デジタル時代における共生の可能性を示唆します。

2. 技術要件

2.1 開発環境

  • 言語: JavaScript
  • ライブラリ: p5.js、p5.sound.js
  • 開発ツール: Visual Studio Code、ローカルサーバー(Live Server等)

2.2 ビジュアル要素

  • キャンバスサイズ: フルスクリーン(ウィンドウサイズに応じて調整)
  • 色彩: 自然をイメージした有機的な色彩パレット(緑、青、茶、etc.)
  • 形状: フラクタル、パーティクル、流体シミュレーションを組み合わせた抽象的な植物の表現

2.3 オーディオ要素

  • Webオーディオ APIを使用した動的なサウンド生成
  • 環境音(風、水、鳥の鳴き声等)のサンプリングと加工
  • インタラクションに応じた音程、音量、エフェクトの変調

2.4 インタラクション

  • マウス/タッチ操作: 画面上の要素と直接インタラクト
  • マイク入力: 音声による作品への影響
  • カメラ入力: 動きや色の検出による環境への反応

2.5 ソーシャル要素

  • WebSocketを使用したリアルタイムの多人数参加機能
  • 個々のアクションが全体に影響を与えるシステム
  • 参加者間のビジュアル・オーディオ要素の共有と相互作用

3. 実装詳細

3.1 ビジュアル生成

  • パーティクルシステムを使用した植物の成長シミュレーション
  • ノイズ関数を利用した有機的な動きの表現
  • 色彩の動的変化によるムードや状態の表現

3.2 サウンドデザイン

  • 周波数分析と合成による独自の音響生成
  • 空間音響技術を用いた3D音響効果の実装
  • ビジュアル要素と連動した音響パラメータの制御

3.3 データ構造

  • 植物オブジェクトの階層構造(根、茎、葉、花等)
  • 参加者データの管理(位置、行動履歴、影響力等)
  • 環境パラメータ(光、水、養分等)のシミュレーション

3.4 最適化

  • フレームレート管理による安定したパフォーマンス
  • オブジェクトプーリングによるメモリ使用の効率化
  • Web Workersを使用した複雑な計算の非同期処理

4. ユーザーエクスペリエンス

  • 直感的なインターフェース: 説明なしで操作可能なデザイン
  • フィードバック: ユーザーのアクションに対する即時的かつ明確な反応
  • 没入感: 視覚と聴覚の調和による強い没入体験の創出
  • 発見性: 長期的な関与を促す隠れた要素や進化するコンテンツ

5. 展示要件

  • 大型スクリーンまたはプロジェクター(4K解像度推奨)
  • 高品質スピーカーシステム(5.1chサラウンド以上)
  • タッチスクリーンまたはモーションセンサー for インタラクション
  • 高性能コンピューター(GPU搭載推奨)
  • 安定したインターネット接続(ソーシャル機能用)

6. 今後の展開

  • 機械学習による作品の進化と適応
  • VR/AR版の開発によるさらなる没入体験の提供
  • 環境データの実時間連携による現実世界との接続
  • コミュニティ機能の拡張(作品の共同編集、保存機能等)

この要件定義書は、「Sonic Bloom: デジタル共生庭園」プロジェクトの基本的な方向性と技術的要件を概説しています。実際の開発過程で詳細な仕様や追加機能が決定されることを前提としています。

このindex.htmlファイルは、「Sonic Bloom: デジタル共生庭園」プロジェクトの基本的な実装を含んでいます。以下に主な特徴を説明します:

  1. ビジュアル要素:
    • パーティクルシステムを使用して、動的に変化する抽象的な植物や生命体を表現しています。
    • 色彩はHSB色空間を使用し、自然な色調を生成しています。
  2. オーディオ要素:
    • マイク入力を使用して、環境音を取り込みます。
    • FFT(高速フーリエ変換)を用いて音声を解析し、ビジュアルに反映させています。
  3. インタラクション:
    • マウスの動きに反応して新しいパーティクルを生成します。
    • マイク入力の音量に応じてパーティクルのサイズが変化します。
  4. レスポンシブデザイン:
    • ウィンドウサイズの変更に対応し、常にフルスクリーンで表示されます。

この実装は、要件定義書の基本的な要素を含んでいますが、より複雑な機能(例:ソーシャル要素、高度な音響効果)は含まれていません。これらの機能を追加するには、さらなる開発が必要です。

プロジェクトを発展させるための次のステップとしては以下が考えられます:

  1. より複雑なパーティクル相互作用の実装
  2. 高度な音響処理と3D音響効果の追加
  3. WebSocketを使用した多人数参加機能の実装
  4. より洗練されたビジュアルデザインの適用

このコードをブラウザで実行すると、動的に変化するパーティクルのアニメーションが表示され、マウスの動きとマイク入力に反応します。さらなる機能の追加や改良について、具体的な要望があればお知らせください。

生成された作品では漆黒の画面から水泡のような色とりどりの円が浮かび上がる。マウス・ポインタのホーバーで新しい追加され、音に反応して円の大きさが変わる。インラインや実行環境によって制約があるので、MacのSafariなどでWEBページを確認するのが良いだろう。

以上は、ただ一度のプロンプトで生成されている。今朝起き掛けに思いついて取り組んだ。プロンプトの作成に4分、テキストとコードの生成に1分、合計5分間で完了した。もっともその後の実行確認や本記事の作成に1時間ほどかかっている。

8月1日より各務原で展示

8月1日より各務原市で「ドローンが拓く未来」なる空宙博企画展が開催されます。この展覧会では、現実感芸術(プロジェクト)で制作した作品「養老天命反転AR」で使用したドローンの手法を紹介しています。他にも多くのドローンや利用方法が紹介されていますので、お出かけいただければ幸いです。

2020空宙博企画展「ドローンが拓く未来」
会場:岐阜かかみがはら航空宇宙博物館、1階航空エリアA3ゾーン
会期:2020年8月1日〜9月27日

養老天命反転ARでは、ドローンを飛ばして数百枚の写真を撮影し、フォトグラメトリよって養老天命反転地の3Dモデルを作成、これをARとして仮想物体を表示する際の隠面消去として用いています。養老天命反転地は豊かな植生によって形状が季節とともに変化し、長い年月のうちに建造当時とは異なる様相になっています。そこで作品を体験する時点での地形や植生などの形状を把握するためにドローンを使用しています。

7月23日は品川で雰囲気ミーティング

ウェアラブルやIoTの斜め上を行きたい雰囲気メガネが初めての開発者向けミーティングを行います。雰囲気メガネは当初からSDKやMDKを公開し、誰もが各自のニーズに応じたアプリやアタッチメントを制作できるようになっています。そこで今回のミーティングでは、赤松が雰囲気メガネの背景やコンセプトをお話し、国内きってのBLEウィザードである上原昭宏が開発環境の説明とハンズオンを行います。さらに開発者支援や今後のロードマップについては、雰囲気メガネのカナメたる白鳥啓が説明します。いわゆるハッカソンやアイディアソンではないので、気軽にミーティングにご参加いただければと思います。よろしくお願いします!

funiki-app

雰囲気メガネ・デベロッパーズ・ミーティング
 日時:2016年7月23日(土)13:00〜18:00
    12:30〜受付開始、終了後に懇親会を予定しています
 場所:清泉女子大学 本館2階 大会議室
    東京都品川区東五反田3-16-21
    五反田駅 東口より徒歩約10〜15分
 主催:特定非営利活動法人MOSA
 協力:株式会社 なまえめがね
 講師:赤松正行(情報科学芸術大学院大学 [IAMAS])、上原昭宏(合同会社わふう)
 定員:30名(MOSA会員枠あり)
参加費:MOSA会員3,000円、学生会員2,000円、非会員4,000円(懇親会費用込み)
 注意: 当日アプリ開発に必要な実機を各人分ご用意させていただきます。

Monacaのコンポーネント管理

昨年来「窓辺のカフカちゃんズ」など自律分散協調型の作品をMonacaで開発しています。ただし、WEB系テクノロジーがイマイチ得意じゃないので、ProcessingのJavaScript版であるp5.jsを使ってお気楽コーディングでお茶を濁す魂胆だったりします。

ところが、p5.js自体は問題なく動作するものの、そのサウンド拡張ライブラリであるp5.sound.jsが不安定で、しばしば悩まされます。以前はソースコードに手を入れて無理やり動かしたこともあったほど。そして、最近のトラブルは、index.htmlでコンポーネントを指定すれば正常動作するのに対して、Monacaのコンポーネント管理を使うとp5自体が動作しないという謎現象でした。

このコンポーネント管理では、利用したいコンポーネントを検索して選択すると、現在のプロジェクトにインストールされるので、下図のようなローダーで利用したいjsファイルにチェックを入れます。この時、表示されている順番(パスのアルファベット順)にファイルが読み込まれるそうです。この場合は最初にp5.sound.jsが読み込まれ、次にp5.jsが読み込まれます。

Monaca-config-p5

ところが、p5ではp5.jsが大元と言うか親クラスなので、p5.sound.jsよりも先にp5.jsが読み込まれる必要があります。つまり、Monacaのローダーでは逆の順番で読み込まれるので、p5が正しく動作しなかったわけです。ロード順を指定できると良いのですが、現在のMonacaにはそのような機能がありません。

そこで、この問題を解決するには、Monacaのコンポーネント管理でインストールしたファイルの読み込みは、ローダーで指定せずに(ローダーではチェックを入れずに)index.htmlのscriptタグで指定します。はい、これでOK!

Monaca-index-p5

上記の解決策は試行錯誤して見つけていたのですが、釈然としないためにMonacaの開発元に問い合わせたところ、丁寧にローダの仕組みを解説していただいて理解に至りました。このためにサポート・チケットを1枚消費したのは良い勉強ですね(笑)。

雰囲気メガネのクラウド・ファンディング第2弾

アンビエントな情報デバイスである雰囲気メガネは、昨年夏のクラウド・ファンディングでは目標額の200%以上の支援をいただいてファンディングが成立、幾多の困難を乗り越えて本年1月に実際の製品として支援者の皆さまにお届けすることができました。その後は、SDK(ソフトウェア開発キット)の公開とともにサード・パーティのアプリがリリースされ、日常生活はもちろんのことイベントなどでの活用も見かけるようになってきましたね。

一方、雰囲気メガネ・チームは北米およびヨーロッパでの無線機器の認証を取得し、海外展開への準備を進めてきました。そして前回と同じくMakuakeにてクラウド・ファンディング第2弾を開始、多くの方からの支援を募集しています。英語サイトでは海外からの支援を申し込めますので、欧米にお住いの知人にもお知らせいただけると有難いです。もちろん、国内からも支援していただけますし、今後予定されている一般販売価格より安価に入手できるチャンスですね。是非よろしくお願いします。

makuake_jp

スマートに情報を伝えるメガネ型端末「雰囲気メガネ」海外展開記念プロジェクト 【英語サイト】
募集期間:2015年9月7日11:00〜2015年10月6日18:00
目標金額:3,330,000円
支援内容:24,000円(雰囲気メガネ1本)
     48,000円(雰囲気メガネ2本)
     96,000円(雰囲気メガネ4本)
     192,000円(雰囲気メガネ8本)
     384,000円(雰囲気メガネ16本)

Metaio CreatorによるモバイルAR

先のエントリーで記したように、Appleが買収したモバイルAR(拡張現実)関連会社Metaioは、すでに既存のユーザのサポートのみに移行していて、その製品やサービスを伺い知ることは難しい。ただし、iOSアプリはまだダウンロード可能なので、ARブラウザであるJunaioや、物体認識ツールであるMetaio Toolboxを試すことができる。また、今年の初めにMetaio関連のワークショップを行ったので、その際のレジュメも公開しておくね。この資料やiOSアプリには、Appleが目指すARの一端が含まれているかもしれない(含まれていないかもしれない)からね。

ダウンロード:「なんちゃってAR制作ワークショップ」レジュメ

さて、このワークショップでは、Metaio Creatorなる簡易AR制作ツールを利用した。以下の図のようなオーサリング環境で、認識するターゲットと対応するリソースを指定するだけでOK、プログラム・コードを書く必要はない。これはMacの内蔵カメラで即座にプレビューすることができ、アップロードすればJunaioアプリによってiPhoneで動作する。あっけないほど簡単であり、アイディア次第で多種多様なARを素早く実現できるようになっている。

Metaio Creator Composite

Metaio Creatorが備えるターゲットのトラッキング(認識)方法は、図のように6種類もある。これだけの認識方法をひとつのエンジンで統合しているのは立派。やや水増し感もあるけどね(笑)。

Metaio Creator Trackings

このうち、3次元物体を認識するObject Trackingや建造物を認識するEnvironment Trackingでは、そのデータをiOSアプリのMetaio Toolboxを使って制作する。iPhoneをかざして物体や建物の周囲を回ってスキャニングすれば、3次元位置として特徴点が蓄積されていくことになる。

Metaio-Toolbox-3D-Map

ターゲットが認識された時にトリガーされるリソースも15種類と豊富。静止画や動画、3Dモデルなどを表示したり、WEBサイトの閲覧やツイートの投稿、カレンダーの作成などもできる。必要であればタイムラインによるアニメーションや、簡単なスクリプトの実行も可能。こちらも水増し感がちらほら(苦笑)。

Metaio Creator Resouces

このように見ていくと、Metaio CreatorはARのFlashを目指していたように思える。しかし、Flashがそうであったように、誰でも簡単に作れるものの、最大公約数的な大雑把なコンテンツしか作れないという危惧も強かった。実際にも作例のモナリザは、ARARATのほうが遥かに認識の精度と安定感が良く、イメージの表示もARARTのほうが自然で違和感がなかった。自画自賛のようだけど、これはワークショップの参加者も同意していたよ。

ただし、MetaioにはMetaio SDKなど高度な開発環境も提供されていたので、コード・レベルでチューニングすれば効果的な結果が得られるかもしれない。MetaioはIKEAやAudiなど大手企業のアプリに採用された実績を持つので、それは単なる営業努力だけではないよね。ISMARなど学術会議でのコンテストも勝ち得ている。だから、技術的な基盤は堅牢で性能は高いハズ。AppleがMetaioの何に魅力を見出し、モバイルARをどのように活用するのか、それこそが重要だよね。

ところで、MetaioとはメタI/Oのこと?

アップルはモバイルARの夢を見るか?

「アンドロイドは〜」のほうが収まりは良いけど、ここはアップルです、Apple Inc.です。と言うのも、AppleがAR(拡張現実)界のリーディング・カンパニーのひとつMetaioを買収したから。すでにMetaio社のWEBサイトでは製品の販売や関連する情報は取り下げられている。これまでARには正面切って取り組んでいなかったAppleが、Metaioを得て何をするのか、興味津々です。

Metaio Web Site

ここ数ヶ月を振り返ってみると、Googleは謎に包まれたARスタートアップMagic Leap社に巨額出資を行い、Microsoftは自社開発のARゴーグルHoloLensを発表したよね。Facebookに買収されたHMDの革新者Oculus社も、さらにSurreal Vision社を買収してARに接近中。といったようにIT界の主要プレーヤがARを重要視していることが分かる。そこへAppleも参入するというわけ。

未知数のMagic Leapはさて置くとしても、HoloLensもOculusも頭部に装着するディスプレイが主役。対するMetaioはあくまでもスマートフォンで動作するソフトウェアでしかない。順当に考えれば、Appleが取り込もうとしているのは、その延長線上にあり、いわゆるモバイルAR、つまりセカイカメラARARTがOSレベルでサポートされることになる。数年間の苦節(笑)を経て、モバイルARが桧舞台に躍り出るや否や、これは楽しみですね。

Appleはもっとも革新的なITカンパニーと評されるほど未来志向だけど、その未来は安っぽいSF映画に描かれるようなキラキラのハイテクじゃない。それは日常生活に違和感なく溶け込み、歴史や文化に支えられ、ある意味で古典的(Classic)ですらあるような未来だと思う。それを端的に表すのがCMフィルムで、来年あたりには何気ない日常生活の場面場面でiPhoneをかざす様子が描かれているかもしれない。あるはメガネかもしれない。それはモバイルARの最後の1マイルね。

Apple Watch TV Film

Monacaなる超絶開発環境

WEB系の表現にウトいこともあって気づいていなかったけど、アシアル株式会社のMonacaという開発環境が素晴らしい機能を持っていた。このMonacaはHTML5(とCSS3とJavaScript)で記述して、iOSやAndroidなど複数のプラットフォーム向けのネイティブ・アプリを出力できる。つまり、大昔ならFlashアプリがそうであったように、各プラットフォームの特性を無視した大味なアプリがワン・ソースで作れるわけ。また、クラウド型IDEによってWEBブラウザ(とインターネット)だけで開発ができる。自分のマシンであろうが他人様のマシンであろが、いつでもどこでもログインさえすればセットアップ要らずでWEBベースの緩慢かつ低機能なエディタで作業が続けられる。このあたりがMonacaの大きなメリット(とデメリット)みたい。

Monaca

もっとも、そのようなメリットは個人的には響かない。XcodeでiOS SDKを駆使したSwiftコードを書くほうが遥かに快感だし、マルチ・プラットフォーム対応は砂糖をまぶした悪夢だからね。ところが、Monacaは現在のXcodeでは絶対にできない領域に君臨している。それは開発中のアプリを複数のiPhoneで同時に動作させること。もちろんXcodeでもiPhoneのアプリを動作させられるけど、それは1台に限られるよね。それがMonacaでは何台でも同時に動くわけ(驚愕)。

実際の動作状況は以下のムービーでどうぞ。これはSnowflakesの基本処理をHTML5化してMonacaで動作させている。MacBookではSafariでMonaca IDEを開き、iPhoneではMonacaデバッガーなるアプリを開く。いずれも自分のアカウントでMonacaにログインしておけば、すべてのiPhoneでHTML5で記述したアプリが起動する。途中でコードを修正して保存すれば、それだけで修正したファイルが再同期されてアプリが再起動する。ムービーでは途中で背景色を変えている。ね、恐ろしく簡単で快適でしょ?

このデモでは、Monacaとして動作するアプリをProcessingのJavaScript版であるp5.jsで書いている。JavaScriptは簡単だけど、p5.jsはもっと簡単で、しかもJavaScriptとの親和性も高い。サーバはMacBookで動いていて、これはnode.jssocket.ioで記述。クライアント(iPhone)での通信もsocket.ioを利用している。このようなJavaScript(およびCSS)のライブラリはMonaca IDEで管理できるし、手動で追加・変更しても構わない。

さて、一般には同時に何台も動いても嬉しくないけど、それはデンタクのようなアプリだからだよね。Snowflakesと同様にincubatorOkeanos Buoyなど、複数のデバイスが相互に関連しながら総体としての表象表現を目指している者には、これは喉から手が出るほど欲しい機能に他ならない。これまでも独自の動作環境を作っていたけど、それはパラメータ調整程度に留まっていた。それがMonacaでは言語レベルで構築できるから、感涙なわけです。作業効率は当社比100倍ね。後はこれで作品作れって話だけど、もちろんそれが一番難しい(笑)。