【登壇報告】第2回 日本デジタル医学会年次学術大会に登壇しました

2026年7月17日(金)から19日(日)に北海道大学にて開催された「第2回 日本デジタル医学会年次学術大会(第19回 旧ITヘルスケア学会年次学術大会)」にギガ・システムとして登壇しました。

本大会は、医療DX、医療AI、デジタルヘルス、SaMD(プログラム医療機器)、PHR(個人健康記録)、遠隔医療、医療データ活用などをテーマに、デジタル技術を活用した医療・ヘルスケアの研究開発や社会実装について議論する学術大会です。

会場には医療従事者、研究者、企業、行政など多様な分野の関係者が集まり、デジタル医学の現在地と今後の可能性について、幅広い意見交換が行われました。

当社にとっても、医療・ヘルスケア領域におけるシステム開発およびAI活用支援に取り組む立場から、医療現場の課題や、AI・デジタル技術に期待される役割を改めて考える機会となりました。

登壇:「人に寄り添う」医療AIをつくるのは技術ではない。

本講演では、医療AI・DX開発において「技術の高度さ」だけでなく、「現場の本質的なニーズを正しく捉えること」が不可欠であるとの考えをお伝えしました。
特に、以下の2点を重点的に発表いたしました。
・医療者と開発者の継続的な対話を通じた課題整理と、検証可能な形でシステムを現場に届けるプロセスの重要性
・完成度よりも「不完全なプロトタイプ」を早期に提示し、医療者の潜在的な困りごとを引き出す反復開発手法

生成AIを活用した素早い仮説形成と医療者との共創検証は、今後の医療DX推進において標準的な開発プロセスになると考えます。

※登壇者:石田 久晴(取締役 兼 AI事業インキュベーションセンター長)

会場での知見と今後の方向性

本大会では、業務負荷・人材不足・データ連携などの現場課題と並行して、AIやデジタル技術への期待が非常に高いことを再確認できました。当社は、業務システム・Webアプリケーション開発で培った技術力と、生成AI・エージェント領域の知見を活かし、医療・ヘルスケア分野におけるDX推進と現場課題の解決に引き続き貢献してまいります。

関連リンク
第2回 日本デジタル医学会年次学術大会(公式ページ)

Posted in エンジニアブログ, お知らせ, 医療への道 |

【登壇報告】第6回バイオデザイン学術集会に登壇・出展しました

当社の開発センター センター長 松山 将太が、この度 第6回 日本バイオデザイン学会 定期学術集会 に登壇するとともに、当社の医療機器・ヘルスケア関連の開発実績を展示いたしました。

本学術集会は、2026年6月11日(木)に東京大学安田講堂にて開催された、日本バイオデザインの取り組みを振り返り、医療機器イノベーションの未来を議論する場です。Biodesignが日本に根付いてから11年が経過した節目として、ニーズ発見(Identify)から発明・実装(Invent / Implement)、スタートアップの現在地(Innovator’s Update)まで、一貫したプログラムが構成されました。当社は、スタートアップの医療機器プロトタイプ開発をソフトウェア面から伴走する立場から、登壇および展示を通じて関係者の皆様と交流する機会とさせていただきました。

東京大学安田講堂(会場外観)
東京大学安田講堂(会場内)

登壇:医療機器プロトタイプ開発におけるソフトウェア伴走

第3部において、松山より「スタートアップの医療機器プロトタイプ開発におけるソフトウェア伴走」と題した講演を行いました。

講演では、初期段階のプロトタイプが本来の「検証のための道具」ではなく、いきなりミニ完成品として市場に出てしまうケースがある現状に触れ、ゲーム開発と同様に段階的な仮説検証を重ねる重要性を説明しました。プロトタイプの要件は「何を判断したいのか」を明確にすることが出発点であり、ソフトウェアは早く試し、見直しやすい特性を活かしてニーズを可視化し、次の意思決定につなげる伴走の在り方について、日本バイオデザインのアルムナイにおける開発実践事例を交えてお話ししました。

登壇の様子

パネルディスカッションでは、日本版CDMO構築へのモチベーションや、プロトタイプがハード構築における重要な分岐点になり得ることなどについても意見交換が行われ、医療機器エコシステム全体の接続強化に向けた議論が続きました。

パネルディスカッションの様子

展示:開発実績のご紹介

学術集会会場にて、当社が手がけた以下2つの開発事例を展示し、来場者の皆様に体験・ご説明させていただきました。

展示ブースの様子

マインドフルネス × Apple Vision Pro — VR書道アプリ

梶山 愛先生(ICARELAB, Inc. / 東北大学大学院医工学研究科 非常勤講師)との共同開発による、空間コンピューティング上で書道を体験するVRアプリです。Apple Vision Proの没入感と書道の集中体験を組み合わせ、筆跡の特徴を解析してフィードバックを返す仕組みを実装しています。医療機器開発にとどまらない、ヘルスケア・ウェルネス領域におけるソフトウェア開発の知見も併せてご紹介しました。

遠隔診療システム — 心音アプリ(慢性心不全向け)

A-wave株式会社様との共同開発による、在宅慢性心不全患者向けの遠隔診療システム関連アプリです。腕時計型ウェアラブルデバイスと連携し、心不全に関連する症状の検出を支援するソフトウェアとして、AMED「医療機器等における先進的研究開発・開発体制強靭化事業」の一環で開発を担当しています。医療機器としてのQMS対応やサイバーセキュリティ対策を含む、SaMD開発における当社の取り組みを展示しました。


今回の学術集会への参加を通じて、医療現場のニーズ発見からプロトタイピング、スタートアップの事業化までをつなぐエコシステムの動きを改めて実感する機会となりました。
当社は引き続き、日本バイオデザインをはじめとする医療機器・ヘルスケア分野のプロジェクトにおいて、ソフトウェア開発を通じた伴走支援に取り組んでまいります。

関連リンク


Posted in エンジニアブログ, お知らせ, 医療への道 |

【出張報告】シリコンバレー視察研修

2026年2月、9泊10日でシリコンバレーへ視察研修に行ってまいりました。
大阪大学の先生にも同行いただき、関係者・施設のご案内のもと
バイオデザイン/メドテック関連のプログラムに参加しました。

バイオデザイン/メドテック関連


東大バイオデザイン × JBC(Mountain View)

Japan Bio Community(JBC)と東京大学バイオデザインの共催イベントに参加しました。
知財・保険償還、AMED の支援など、米国展開に直結する論点に短時間で触れることができました。
交流会では、臨床から SaMD 開発へ進みたいという声も聞け、
現場と開発の接点をより具体的に捉えるきっかけとなりました。

イベント情報:Japan Bio Community

Japan Society バイオデザイン発表・交流会(Palo Alto・JIC)

経済産業省の Japan Innovation Campus(JIC)での開催です。
Stanford Biodesign と日本側プログラムがつながる場で、
大学・企業・関係機関の方々と情報交換しました。
医療分野に依っては患者数や費用対効果の壁が大きく、
開発が進みにくい現実もあるとの話は、
提案や要件の前提として覚えておきたいと感じました。


イベントページ:Innovation from US-Japan MedTech Collaboration(Japan Society of Northern California)

スタンフォード大学講義(福祉支援技術の展望)

大阪大学の先生のご案内で、スタンフォード大学の講義を聴講しました。
ディスカッション中心の学びのスタイルや、挑戦を後押しする文化に直接触れる貴重な機会となりました。
講義の最後に、発表者に対する評価シートを書かせていただきましたが、
評価項目が
1. 上位10%の出来
2. 上位30%の出来
3. 以下の改善点あり(自由記入)
となっており、フィードバックの在り方についても考えさせられました。


現地で触れた先端技術


Waymo(ウェイモ、自動運転タクシー)

アプリ予約から乗車まで体験し、何の問題もなく街に溶け込んでいる様に
最初は「これがアメリカの技術力か」と圧倒されました。
これは、車両の製造技術のみが優れているのではなく、
無人車両を公道で走らせるための「制度」と「責任構造」が整っていることにこそ、
本当の凄みがあると云えます。


AI観光案内板(San Jose)

サンノゼにあるサンペドロ・スクエア・マーケットで、
大型ディスプレイを使った観光案内の設置を見かけました。
地図やスポット情報に加え、対話形式で質問に答えるUIがあり、多言語表示にも切り替え可能でした。
「正確な情報提示」だけでなく、待ち時間や誘導文、触りやすいボタン配置など、
公共の場に置く前提での読みやすさ・迷わなさが意識されたUIでした。
これは生成AIの有無に関わらず、持つべき視点であると改めて感じました。

まとめ


今回のシリコンバレー視察研修では、バイオデザイン/メドテックを中心に、
制度・市場・医療現場の制約も含めた文脈を具体的に捉える機会となりました。
講義・交流会に加え、現地での技術体験も得られ、
提案・開発時の参照軸を拡げられたと考えています。

同行・ご案内くださいました先生方、関係者の皆様に厚く御礼申し上げます。

Posted in エンジニアブログ, お知らせ, 医療への道 |

【技術情報】LinuxでWindowsアプリを使う新しい選択肢?WinBoatを試してみた

今回、社員KさんがLinuxでWindowsアプリを使う新しい選択肢?WinBoatを試してみた

Linux上でWindowsアプリを動かす方法といえば、
WineWinApps が定番でしたが、最近 WinBoat という新しいツールが登場しました。

一部では「ゲームチェンジャー」とも言われていますが、
正直なところ、最初に見た印象は「WinAppsを今風にしたもの?」という感じ。
気になったので、サブPCに入れて軽く触ってみました。


WinBoatって何?

WinBoatは、

  • Windowsを VM(KVM)上で起動
  • アプリは RemoteApp(FreeRDP)経由 でLinux側に表示
  • セットアップは GUI中心

という構成のツールです。

仕組み自体はWinAppsと近いですが、
アプリストアっぽいUI が用意されていて、とにかく導入が楽なのが特徴。

「LinuxでWindowsアプリを使ってる感」を
できるだけ感じさせない方向を狙っているのが伝わってきます。


今回の検証環境

ホスト(Ubuntu 24.04.3)

  • CPU:Ryzen 7 5800U
  • メモリ:16GB
  • SSD:512GB

ゲスト(Windows 11 Pro)

  • CPU:4コア
  • メモリ:8GB

使ってみた感想

思ったより重い。でも悪くない

  • メモリが少ないと全体的にもっさりします
  • ゲームやVisual Studioは正直きつい
  • Office系なら普通に使える

ただ、VMwareのように
「Windows画面がドンと出てくる」感じではないので、
Linuxの作業を邪魔しないのはかなり好印象でした。


Windowsライセンスは要注意

  • Windows 11 Pro以上が必須
  • HomeだとRemoteAppが使えません

ここは完全に割り切りポイントですね。


UIはまだ発展途上

気になった点もいくつかあります。

  • アプリ起動時にWindowsデスクトップが一瞬見える
  • 複数アプリを起動してもパネルが1つにまとまる

RDP+RemoteAppの都合なので仕方ない部分ですが、
「アプリごとにウィンドウ管理したい人」には合わないかも。


ベータ版らしい粗さもあり

  • 起動しないexeがある
  • 現時点では、GPUアクセラレーション未対応
  • Cinnamonが落ちることがある
  • 日本語入力で変換候補が出ないことがある

完成度はまだこれから、という印象です。


向いている人 / 向いていない人

向いている人

  • Linuxがメインで、たまにWindowsアプリを使いたい
  • VMのWindowsデスクトップが邪魔
  • UIの多少のクセは気にしない

向いていない人

  • Visual Studioなど重いアプリを常用
  • Windows Proライセンスの購入を躊躇う場合
  • アプリごとにウィンドウ管理したい

まとめ

WinBoatは「革命的!」という感じではありませんが、
LinuxとWindowsを自然に共存させる方向性 はかなり良いと思いました。

個人的には、
Protonのように「完全互換を目指さず、実用性を重視する」考え方が成功の鍵だと思っていて、
WinBoatもまた、

WindowsをLinuxに持ってくる
というより
Windowsを“意識させない”

方向に進んでいるツールだと感じました。

Waylandが主流になりつつある今、

  • Wineは特化用途へ
  • RDP+RemoteApp型は共存路線へ

という流れは、案外自然なのかもしれません。

LinuxでWindowsアプリを使う世界、
気づけば結構進化していました。

Posted in エンジニアブログ, お知らせ |

【社内研修】「システム開発の基本」&「AIに何を任せるべきか」


今回の研修は、「システム開発の基本」と「AIに何を任せるべきか」の2本立てで実施しました。

講師のこれまでの経験を踏まえ、
「大切にしてほしい考え方」や「一般論として覚えておいてほしい視点」をピックアップした内容となっています。

昨今のAI技術の進化により、”手を動かす”という作業の多くは、徐々にAIに代替されつつあり、今後はAIを利用して価値を生み出す側に回ることが求められていきます。

また、たとえAIに直接関わらない案件や現場であったとしても、システム開発全般に関する知識や、より上流側の思考・視点に触れて吸収していくことで、エンジニアとしての価値を高め、他者との差別化を図っていくことが重要です。

今回の研修が、その第一歩となれば・・・と言う思いを持って開催されました。

実施日:2025年7月25日
対象:若手社員及び希望者
形式:講義/ワークショップ


①システム開発における基礎知識(手法・役割)について

今回は全5回のシリーズのうち、第2回目の開催です。

目的

・IT業界で働く上で欠かせないシステム開発の基礎知識を身につける
・より高品質な業務遂行につなげること、技術者としてのレベルアップ
・エンジニアとしての価値を高め、他者との差別化を図っていく

主な内容

  • ・要件定義から運用・保守までの各工程と成果物を解説
  • ・ウォーターフォール、アジャイル、プロトタイプ開発、DevOps の特徴と適用シーン
  • ・SE・PG・PM・PL・テスター等の役割とチーム内連携ポイント

学びポイント

  • ・自分の担当範囲がプロジェクト全体へ与える影響を把握できる
  • ・適切なコミュニケーション方法やドキュメント設計の基礎が身につく
  • ・手法選択の判断軸(コスト・スケジュール・変更頻度)を学ぶ
研修の様子

②「AIに何を任せるべきか」ワーク/設計・議事録補助など

最新のAI活用事例を交えながら、
業務の効率化や付加価値向上につながるスキルアップを目的に開催されました。

主な内容

  • ・AIの基礎と仕組み(ベクトル変換・行列計算・GPUの役割)
  • ・プロンプト設計について(背景説明・タスク指示・出力形式・制約条件など)
  • ・AI活用パターン(解析・要件整理・設計補助・コード生成・テスト設計・ドキュメント整形)
  • ・実践ワーク:プロンプト改善演習、画面作成デモ、提案プレゼンとして一人ずつ3分LT(ライトニングトーク)を実施

学びポイント

  • ・AIに期待できるアウトプットと限界を現場視点で理解する
  • ・運用ルール(品質チェック/責任所在)を意識した設計ができる
  • ・実験→評価→改善のサイクルを回すためのアイデアが得られる

当日の流れ

AIの概念について(前回のおさらい)(10分)
AI時代のSEについて(20分)
AIを使って画面作成(30分)
提案プレゼン(各参加者3分間LT)
まとめ&質疑応答(5分)
研修の様子

参加者の声 吹き出しアイコン

人型アイコン

基礎的なところはもちろん、視点が変わってSEの責任や職務を知れて良かったです。

エンジニア(入社1年目)

知っている内容が多かったが、知識の漏れもあったので改めて学べて良かった。次回以降は詳しく知らない範囲になりそうなので楽しみ。

エンジニア(入社3年目)

自身の経験からこうすることを気を付けるべき、意識するべきなど説明があったので、とてもタメになりました。発表やプレゼンの仕方なども勉強になりました。

エンジニア(入社6年目)

いかがでしたか?ギガシステムではこれからも定期的に研修や勉強会を開催する予定です。
社員一人ひとりが業務の効率化や価値創造に挑戦できる環境を整えていきます。
今回の研修が、今後の挑戦や成長の糧になることを期待しています。

 


Posted in エンジニアブログ, 学生さんへ |

【開発事例】汎用的な順番待ちシステム(LINE+WEB)

今回、商品開発室でLINEを利用した順番待ちシステムを作りました。

【概要】
1対1で予約を行うような業種に向けた順番待ちシステムです。
※クリニックで利用をイメージした場合
患者がクリニックにLINEから当日予約を取り、順番待ち状況がわかる。
また、クリニックの受付側で、予約状況がわかる。

【主な特徴】
・LINEアプリで順番待ち登録/状況確認/順番待ち中止
・LINEアプリに順番到来をメッセージで通知
・順番待ち状況画面で状況を一覧表示/順番をアサイン
・LINEが利用できない方に、
受付(クリニック)に設置されたタブレット(ダッシュボード画面)にて状況確認
及びLINEアプリなしで登録

【LINEアプリ利用画面】※ユーザー
「順番待ち登録画面」

「順番待ち状況画面」

【受付にあるタブレット(ダッシュボード)画面】※ユーザー

【PCなど利用したブラウザ画面】※運営側管理画面

【システム構成】

構築概要】
 ・Amazon RDSを利用せず構築
・サーバーレスで構築
・Amazon Cognito APIでカスタムログイン画面を実装

Posted in エンジニアブログ, 開発事例 |

【開発事例】カンテレドーガ 動画配信アプリ開発

◾️カンテレドーガ

  • 関西のテレビ局「関西テレビ」が運営する動画配信サービスです。
  • 2019年、Android・iOSアプリの保守としてプロジェクトに参加。
  • 2023年に大幅なリニューアルを実施し、さらなるユーザー体験の向上を図りました。
  • 2024年にはアプリの開発基盤をFlutterに移行することで、Android・iOSの両方に対応したアプリを一つの仕組みで開発・運用できる体制を構築。
  • これにより、開発・保守にかかるコスト削減と、どのプラットフォームでも変わらない快適なユーザー体験の実現を可能としました。

アプリはこちら

 

Posted in エンジニアブログ, 開発事例 |

【開発事例】〜AppleVisionPro〜アプリケーション開発(3)

Apple Vision Proの写真

前回記事で紹介した、空間にメモを配置するアプリの制作で工夫した点の続きを紹介します。
今回は「標準ウインドウや操作音」についてです。

メモウインドウの開閉

フルイマーシブ空間のアプリでも VisionOS 標準のウインドウを表示することができます。これによりメモ画面を SwiftUI で効率よく構築できます。

以下は付箋ピンがタップされた場合に、 `openWindow` でウインドウを開くコードの抜粋です。ここでは開くメモウインドウを1つに限定したかったため、先に `dismissWindow` を呼んでいます。しかし当時は `dismissWindow` 直後に `openWindow` すると前のWindowが開いていた位置に新しい Window を表示する挙動をしていたため、 ここでは 250 ms の遅延を入れています。

struct StickyNoteRealityView: View {
@Environment(AppState.self) private var appState
  @Environment(\.openWindow) private var openWindow
  @Environment(\.dismissWindow) private var dismissWindow
  @Environment(\.dismissImmersiveSpace) private var dismissImmersiveSpace

  :
  :
  var body: some View {
    RealityView { content in
    :
    :
    .gesture(
      SpatialTapGesture(count: 1)
        .targetedToAnyEntity()
        .onEnded { value in

    .gesture(
      SpatialTapGesture(count: 1)
        .targetedToAnyEntity()
        .onEnded { value in
          // 付箋ピンの場合の処理
          if (value.entity.name == ObjectIdentifier.stickyPin) {
            AudioServicesPlaySystemSound(SystemSound.SCREEN_SHARING_STARTED)
            let pinEntity = value.entity as! ModelEntity
            Task {
              dismissWindow(id: UIIdentifier.noteWindow)
              try! await Task.sleep(for: .milliseconds(250))
              let linkId = pinEntity.getLinkId() as! String?
              if linkId != nil {
                openWindow(id: UIIdentifier.noteWindow, value: linkId!)
                showTargetPlane = false
              }
            }
          }
          :

操作音について

視線とハンドジェスチャによる操作は、特に開発中は、ハンドジェスチャによるタップイベントが認識されないためプログラムが動作しないのか、タップイベントは入力されていてその先のプログラムに不具合があるのか切り分けが難しく困ることがあります。
そのような時はタップのようなユーザー操作に対して操作音を付けると判別が容易になります。

デバッグ目的で、完成度に拘らないのであれば下記のように`AudioServicesPlaySystemSound` を使ってシステム音を鳴らすことができます。

    :
    .gesture(
      SpatialTapGesture(count: 1)
        .targetedToAnyEntity()
        .onEnded { value in
          AudioServicesPlaySystemSound(SystemSound.SCREEN_SHARING_STARTED)
        :

参考情報など

3回に渡りお送りしてきましたが、次回は別の記事を投稿予定です。

Posted in AppleVisionPro, エンジニアブログ, 開発事例 |

【開発事例】〜AppleVisionPro〜アプリケーション開発(2)

Apple Vision Proの写真

前回記事で紹介した、空間にメモを配置するアプリの制作で工夫した点を紹介します。
今回は「メモを置く場所(=平面)を検出する」についてです。

メモを置く場所(=平面)を検出する

RealityKit で平面を検出するために AnchorEntity を使用します。実際のコードは下記のようなもので、縦横方向のどちらの平面も検出し、壁、床、天井など物体の種類は関係なく検出する設定です。

let anchor = AnchorEntity(.plane([.any], classification: [.any], minimumBounds: [0.1, 0.1]), trackingMode: .once)

メモを置く場所(=平面)を検出する

メモを置く場所(=平面)を検出する

これで Vision Pro の視界の中央付近の平面が検出できるのですが、これだけだと細かい位置の調整ができません。そこで検出した平面上に視線検出用のオブジェクトを敷き詰めて、そのオブジェクトのタップイベントを検出して、細かい位置を取得します。

平面上に視線検出用オブジェクトを敷きつめる

視線検出用のオブジェクトを配置すると、先ほどの平面はこのようになります。若干明るく光るオブジェクトは視線の当たっている場所を示しています。

平面上に視線検出用オブジェクトを敷きつめる

平面上に視線検出用オブジェクトを敷きつめる

視線検出用オブジェクトのタップイベントで位置を特定

RealityView に gesture を設定し、SpatialTapGesture でタップジェスチャを取得します。

下記の擬似コードのようにしてオブジェクトにタップイベントを追加します。タップの回数は count で設定できます。ダブルタップ、トリプルタップに個別の処理を設定することも可能です。

var body: some View {

RealityView { content in


.gesture(

SpatialTapGesture(count: 1).

.targetedToAnyEntity().
.onEnded { value in.

さて、以上で平面上のより細かい位置を取得して指定できるようになりました。どこに視線が当たっているか判別しやすいように hover エフェクトを追加しています。

※ 当時は hover エフェクトをカスタマイズできず視認性が良いとは言えませんでしたが、VisionOS 2.0 でエフェクトのカスタマイズがサポートされたようです。

次回、VisionOSの標準ウインドウや操作音など工夫した点を紹介します。

Posted in AppleVisionPro, エンジニアブログ, 開発事例 | Tagged , ,

【開発事例】〜AppleVisionPro〜〜アプリケーション開発

Apple Vision Proの写真

はじめに

株式会社ギガ・システムでは新しいプラットホームへの対応も積極的に行なっています。本記事では Vision Pro、VisionOSがもたらす空間コンピューティングにおける技術の調査・蓄積のためVision Pro向けアプリケーションを開発した事例についてご紹介します。

本事例では RealityKit を使って Vision Pro を装着して見た視界の任意の位置にメモを置くアプリケーションを作成しています。

※ 開発は 2023年11月〜2024年2月 の期間のため本記事の情報は当時のものになります。

開発技術

本記事では Vision Pro アプリケーションで視線による位置の指定を用いて、パススルーして見える視界の任意の場所に仮想のオブジェクト(=メモ)を配置する手法を紹介します。

以下の動画は開発したアプリで壁面やディスプレーにメモを配置する様子をキャプチャしたものです。赤い球体はメモを留める付箋ピンを表すオブジェクトです。付箋ピンをタップするとメモが表示される様子をご確認いただけます。

なお、本記事では紹介していませんが、このアプリでは WorldTrackingProvider, WorldAnchor を使ったメモの永続化の検証も行なっていますので別の記事でご紹介したいと思います。

所感

Vision OSでのアプリケーション開発は従来の iPhone, iPad 向けの開発体験とのギャップが少なく、これまでAppleプラットホームでの開発で蓄積した資産を活かせるようになっていてさすがAppleであると感じます。

またイマーシブ空間向けのアプリケーション開発では Unity による開発もオプションとして用意されていますが、Apple社の提供する RealityKit だけを利用した場合でも工夫次第で視線による空間上の位置指定など一見難しそうな機能が予想よりも簡単に実現できることがわかりました。

開発環境

開発環境(当時)は次のものです。

– MacBook Pro Apple M3 24GB
– XCode Version 15.4 (15F31d)

やったこと

Vision Pro, Vision OS では視線とハンドジェスチャによる操作が基本となりますが、通常の Vision OS アプリ開発の枠組みでは、まず空間上に視線を検出する3Dオブジェクトを置いて、その3Dオブジェクトに視線が当たった状態でタップなどのハンドジェスチャで発火するイベントに対応する処理を作り込んでいく流れになります。

しかし、本事例のように「視線の先にメモ(3Dオブジェクト)を置きたい」という場合、視線を検出するための3Dオブジェクトがないためすこし工夫が必要です。

Vision Pro 実機を入手した現在であれば「Scene Reconstruction API とレイキャスト」での実装を試みると思いますが、本事例に取り組んだ2023年11月頃はシミュレータのみでの開発であったためシミュレータでも動作確認ができる「RealityKit の AnchorEntity による平面検出」をベースに実装しています。

メモの置ける位置指定の粒度やユーザビリティを考慮して大まかな処理の流れを下記のようにしました。

1. メモを置く場所(=平面)を検出する
2. 1の平面上に視線検出用オブジェクトを敷きつめる
3. 視線検出用オブジェクトのタップイベントで位置を特定
4. 検出した位置に付箋ピン(およびメモ)を配置する

次回、工夫した点などを紹介します。

Posted in AppleVisionPro, エンジニアブログ, 開発事例 |