UnityFigmaBridgeでUnityとFigmaを連携する
0. 何をするの?
UnityFigmaBridgeというアセットを用いると、Figmaでゲーム用のUIのレイアウトを作成し、Unityに同期させることができる
この記事ではFigmaとUnityを連携し、実際にUIのレイアウトを同期させる手順を説明する
※2024/05/19 追記現在、FigmaプロジェクトのURLをUnityFigmaBridgeが正常に読み込めないエラーがあるようです。
以下に回避方法を記述しますが、"とりあえず動作する"だけで正常な動作を保証するものではないので、ご了承ください。
※2024/07/24 追記
アップデートにより修正済みのようです。
以下に追記した回避方法の記述を削除しました。
※追記ここまで
使用した環境
Figma(Web版)
Unity 2022.3.4f1
用意するもの
Figmaのプロジェクト
Unityのプロジェクト
UnityFigmaBridge
※FigmaおよびUnityのアカウント登録、プロジェクトファイルの作成など事前準備は割愛
1. UnityFigmaBridgeのインストール
UnityFigmaBridgeのGitHubリポジトリのURLをコピーする
https://github.com/simonoliver/UnityFigmaBridge.git
Unity画面でパッケージマネージャーの左上 + ボタンを押し、Git URLからパッケージを加える を選択し、URLを貼り付ける
2. URLの設定
Web版のFigmaにアクセスし、プロジェクトファイルを開いたら、上部にあるプロジェクトの URLをコピー する
Unityの画面に戻り、メニューバーから 編集 > プロジェクト設定 を選択し、Project Settingsウィンドウを開く
Project Settingsウィンドウの Unity Figma Bridge を選択し、Createボタンをクリックする
(エラーがたくさん出るが気にしない)
Document Url に上でコピーしたURLを貼り付ける
3. アクセストークンの設定
Figmaの画面を開き、左上のFigmaアイコンをクリックして ファイルに戻る を選択してホーム画面に戻り、左上のプロフィールから 設定 を選択する
下の方にスクロールしていき、個人アクセストークン の 新規トークンを作成 を選択する
トークン名 と 有効期限 を設定し、トークンを生成 を選択する
(トークン名は何に使っているか分かればなんでもOK)
アクセストークンをコピー する
Unityの画面に戻り、メニューバーから Figma Bridge > Set Personal Access Token を選択する
ウィンドウ内のテキストボックスに アクセストークンを貼り付け てOKをクリックする
以上で初期設定は完了
4. FigmaとUnityを同期する
その前に…
FigmaのプロジェクトをUnityに同期させる前に、UnityにTextMeshProを導入しておく必要がある
導入はUnityのメニューバーから ウィンドウ > TextMeshPro > TMP基本リソースのインポート を選択すると、TextMeshProをインポートできる
今回、FigmaとUnityを同期させる見本として、以下のようにテキストや画像を配置した
Unityへ同期するには、メニューバーの Figma Bridge > Sync Document を選択する
同期が完了すると、UnityのAssetsフォルダ内に Figmaフォルダ が作成され、その中にコンポーネントやページなどがプレファブとして保存されている
Screensフォルダにある Slideプレファブ を Canvas の下に配置すると、同期した内容を表示することができる
テキストやカラー・画像も問題なく表示されている
Buttonは他の画像と違い、クリックできるようになっていた
ゲームパッドアイコンは元々svgファイルだったが、同期したときpng画像に変換されていた
これ以降はFigmaでレイアウトや色を変更し、Unityで Sync Document をすることで、すぐに変更内容を反映させることができる
注意点
上記でClickButtonという名前のButtonっぽいオブジェクトを用意しているが、テキストにオートレイアウトを追加して枠線を加えただけのものであり、Figma上ではボタンとして機能していない
Unity上でボタンとして機能させるには、(Figma側の)オブジェクトの名前に “Button” を入れる必要がある
(他にも同期時に自動で追加されるコンポーネントがあるが、詳しい機能は調査中)
当然ながら、”Unity側で” UIを編集 → 再びSync Documentをすると、Unity側で編集した内容が全て消えてなかったことにされるので要注意
必ずFigma側で編集するか、Figmaを使わないのであればDocument Urlを削除しておくこと
png画像やjpg画像を使っていた場合、同期すると画像はそのままコピーされるが、ファイル名がオリジナルと異なる名前で保存される
さらにSync Documentで再び同期すると、同期した画像の圧縮設定が強制的に 圧縮なし に変更されるので注意
svg画像を同期するとpng画像に変換されるが、画像のサイズがFigmaで指定した値と異なるサイズで出力される※2023/09/15 追記
Unity Figma Bridge SettingsにServer Render Image Scaleという設定項目がある
この倍率を1倍に変更すると、Figmaで指定した値のサイズで出力された
アロー、多角形など(執筆時点で)オブジェクトが対応していないものもある
5. 参考
この記事が気に入ったらサポートをしてみませんか?