Slide 1

Slide 1 text

アバター画像で唯一無二のデザインを作りたい! REALITYカードファクトリーにおける Unity製アプリとWeb技術を使ったデザイン生成 REALITY株式会社 ソフトウェアエンジニア 戛山 英高

Slide 2

Slide 2 text

戛山 英高 / Fogrex REALITY株式会社 Platform事業本部 2025年にグリーホールディングス株式会社に新卒 入社。主にUnityを使った開発を行っています。 ソフトウェアエンジニア 2

Slide 3

Slide 3 text

目次・アジェンダ ● REALITYカードファクトリー ● カードデザインの生成 ● REALITYの機能をWebから利用 ● カードの描画 3

Slide 4

Slide 4 text

REALITYカードファクトリー 4

Slide 5

Slide 5 text

⾃分好みのアバターで ライブ配信 REALITY(リアリティ)は、 誰でもスマホ1台でアバターの姿になり、 顔出しナシでライブ配信、ゲームやチャットなど コミュニケーションを楽しむことができるアプリです。

Slide 6

Slide 6 text

REALITY CON 2025 IN TOKYO "REALITY史上最大級"のオフラインイベントが 池袋サンシャインシティにて開催! 6 会場の様子(公式Xより引用)

Slide 7

Slide 7 text

REALITY カードファクトリー REALITY CON 2025の1ブース REALITYのアバターを使ったオリジナルカードがその場で作れる! 7 ブースのイメージ動画 (公式Xより引用)

Slide 8

Slide 8 text

カードデザインの生成 8

Slide 9

Slide 9 text

カードデザインをユーザーごとに生成 9 生成されるカード

Slide 10

Slide 10 text

カードデザインをユーザーごとに生成 10 生成されるカード カードのベースデザイン カラーリング 活動ログ

Slide 11

Slide 11 text

カードデザインをユーザーごとに生成 11 生成されるカード アバター画像 カードのベースデザイン カラーリング 活動ログ

Slide 12

Slide 12 text

REALITYのアバター表示事情 前提: REALITYのアバター表示はUnityで作られている 12

Slide 13

Slide 13 text

REALITYのアバター表示事情 前提: REALITYのアバター表示はUnityで作られている - REALITYのアバターデータ - 身体/着用アイテムパラメータのJSON - 一般的な3Dモデルフォーマットではない → Unity上でレンダリングする必要がある 13

Slide 14

Slide 14 text

実際のカードファクトリー技術構成 14 Web技術をベースに、WebGLビルドしたREALITYをライブラリ的に使う REALITYサーバー カードファクトリー サーバー カスタムREALITYアプリ カードファクトリー カードデータ 取得 アバターデータ 取得

Slide 15

Slide 15 text

REALITYの機能をWebから利用 15

Slide 16

Slide 16 text

REALITYのUaaL (Unity as a Library) 利用 16 - Swift(iOS)/Kotlin(Android) からUnity機能を呼び出す - アプリ「REALITY」を創る技術 ~Unity編~|REALITY株式会社 iOSの画面構成図

Slide 17

Slide 17 text

REALITYのUaaL (Unity as a Library) 利用 17 - Swift(iOS)/Kotlin(Android) からUnity機能を呼び出す - アプリ「REALITY」を創る技術 ~Unity編~|REALITY株式会社 - REALITY WebGLビルドのライブラリ的利用 - Unityのライセンス費用に向き合う Now In REALITY Tech #153|REALITY株式会社 → REALITYはWebGLビルドを利用しやすい環境がある

Slide 18

Slide 18 text

なぜWeb技術をベースに作るのか? REALITY CON ブース関連の開発は、本業と並行した短期開発 - 効率的に開発を進めたい - 柔軟な仕様・デザイン変更が発生する 18 ユーザーの操作画面デザイン(一部)

Slide 19

Slide 19 text

なぜWeb技術をベースに作るのか? REALITY CON ブース関連の開発は、本業と並行した短期開発 - 効率的に開発を進めたい - 柔軟な仕様・デザイン変更が発生する Web技術を活用すると... - AIによるコーディングアシストの恩恵を受けやすい - ホットリロードがベースのWeb開発環境はイテレーションが回しやすい → UI描画はWebフロント、アバター描画はREALITYのWebGLビルドの分業 19

Slide 20

Slide 20 text

カードファクトリー技術構成(おさらい) 20 REALITYサーバー カードファクトリー サーバー カスタムREALITYアプリ カードファクトリー カードデータ 提供 アバターデータ 取得

Slide 21

Slide 21 text

カードの描画 21

Slide 22

Slide 22 text

カードを構成する要素(おさらい) 22 生成されるカード アバター画像 カードのベースデザイン カラーリング 活動ログ

Slide 23

Slide 23 text

フロントエンド カード描画 カード描画の技術構成(詳細) 23 REALITY 本番サーバー サーバー REALITY WebGLビルド UI SDK アバター情報 ユーザー プロフィール カラーテーマ 抽出 カード情報 アバター画像

Slide 24

Slide 24 text

WebGLビルドを用いたアバター画像描画 - REALITYで用意されているSDKを介してフロント↔REALITYで通信 - Unityの画面はユーザーから隠し、純粋にライブラリとして利用 24 REALITY WebGLビルド SDK Webフロント カード描画処理 撮影要求 アバター画像 (Base64形式) 撮影要求 アバター画像 (Base64形式) JavaScript Interface

Slide 25

Slide 25 text

FigmaデザインをAIでコードに落とし込む - カードデザインをFigmaからPixi.jsコードに変換 - デザイン修正の高速化 → AIによるコーディングアシストをフル活用 25 // HP テキスト (194:2053) - x=44, y=0, width=56, height=50 const hpTextStyle = new PIXI.TextStyle ({ fontFamily : '"Noto Sans JP", Arial, sans-serif' , fontSize : 40, fontWeight : '900' , // Black fill: parseInt (cardInfo .theme .TEXT.replace ('#', '0x')), align : 'left' }); const hpText = new PIXI.Text({ text: 'HP', style : hpTextStyle , resolution : TEXT_RESOLUTION }); hpText .x = 44; hpText .y = 0; // 垂直中央揃え hpText .y = (height - hpText .height ) / 2; + 5分で修正して動作確認

Slide 26

Slide 26 text

無事REALITY CONでブースの運営を行いました 26 カードの実物 ブースのイメージ動画 (公式Xより引用)

Slide 27

Slide 27 text

Web技術とWebGLビルドの活用で デザインの生成を効率的に実装した話 27

Slide 28

Slide 28 text

No content