変更履歴

GitHubのアイテムを登録できるようになりました!

🐙 GitHub対応

GitHubのリポジトリをアイテムとしてセットアップに登録できるようになりました。

一部のシェーダーや拡張ツールなど、GitHubでのみ公開されているアイテムを共有することができます。
BOOTHアイテムと同様に、URLを貼り付けるだけで登録可能です。

パブリックリポジトリであれば登録可能ですが、VRアバターに無関係なアイテムの登録は規約違反により非公開処置となる場合があります。

📛 アイテム名表示の変更

すべてのアイテムに対し、端的な名称を表示するようになりました。

例: 【セール中!】 オリジナル3Dアバター 「アバティオ」 【VRChat】 →→→ アバティオ

これは以前から「ベースアバター」カテゴリのアイテムに対してのみ、一部UIで表示されていました。

アイテム情報を最初に取得したとき、商品名と商品説明文を基に 生成AIが推測し、データベースに登録されます。
意図されたものと異なる名称が登録された場合は、手動で修正が行われます。
また、セットアップページから、誤った名称が登録されていることをユーザーが報告できます。

その他の変更

  • ログイン後の動作が不安定になる場合がある不具合を修正
  • キャッシュ方法を改善し、多数の不具合を修正
    • 一部の実装が以前の状態にロールバックしていますが、今後のアップデートにより改善していく予定です
  • 空の下書きが作成されてしまう不具合を修正
  • 一部スタイリングを修正

投稿の下書きが保存されるようになりました!

📝 セットアップの下書き

セットアップを投稿するとき、編集状態が常に下書きとして保存されるようになりました。

これまでは編集の途中でページを移動してしまうと、データが失われていました。
そのため投稿するまでページを離れることはできず、時間をかけて投稿を作成することが困難でした。

現在は、編集を開始した時点から下書きの保存が開始され、ページを再読み込みしたとしてもすぐにデータが復帰します。
下書きは全部で 32 件まで保存することができます。

その他の変更

正式リリース以来、以下の変更がありました。
ページの読み込みスピードについては、劇的な改善が行われています。

  • 外部サイトへの遷移が高速化しました。以前よりも早くBOOTHの決済画面に辿り着くことができます!
  • あらゆるキャッシュ戦略を見直し、ページの読み込みが高速化しました。
  • アップロードした画像のファイル名がより短くなりました。
  • サインアップ時、ユーザーに割り当てられるIDがより短いものになりました。
  • サインアップ時、プロフィール画像をX/Twitterから正常に読み込めない場合がある不具合を修正しました。
  • 依存パッケージを更新・整理しました。

🎉 Avatioが正式リリースされました! 🎉

機能追加と安定性向上のために、非常に大規模な変更を多数行いました。
技術スタック・設計の変更、APIの変更、UIの改善、多数の不具合修正が含まれます。

主な変更内容

🖌️ セットアップ作成画面が便利になりました

セットアップ作成に関するクライアント側のロジックを見直し、様々な改善を行いました。

  • 過去に投稿したセットアップを編集できるようになりました。
  • 画像を添付する際、ファイルを選択したタイミングでサーバーへアップロードされるようになりました。
  • UIが少し見やすくなりました。
Unityバージョンを記載する機能を削除しました。当初、Modular AvatarやFaceEmoのようなツールを使用したことを明示できる機能を検討しており、Unityのバージョンを記載するのはその一部とする予定でした。
様々な形態で提供されるツール群の管理をユーザーあるいは開発チームに依存するのは、機能の規模とコストが見合わないと判断したため、機能削除に至りました。

🔎 高度な検索が可能になりました

セットアップを検索する際、これまではキーワードでの検索と含まれるアイテムの指定のみ行うことができました。

今回のアップデートにより、含まれるアイテムを複数指定することができるようになり、タグでの絞り込みも可能になりました。

SupabaseのRPCで記述していたクエリは、現在はDrizzleを使ってAPI内に記述しています。

以前はpgroongaを使用して全文検索を可能にしていましたが、今回のアップデートで同等の機能をオミットしました。
これは、ユースケースを想定したときにオーバースペックだと判断したことに起因します。
今後のアップデートにより、同様の機能が再実装される可能性もありますが、今のところ未定です。

🔔 通知を受け取るようになりました

投稿・アカウント・Avatioのサービスなどに重要な変更があった場合、ユーザーが通知をサイト内で受け取るようになりました。
特に重要な通知については、サイト上部にバナーで表示されます。

今のところ、メールなどで通知をお送りすることはありません。

💬 フィードバックが匿名になりました

今まで、ユーザーの皆様からのフィードバックはアカウントIDと紐づいていましたが、より率直で的確なご指摘をいただくため、匿名でフィードバックが送信されるようになりました。

Nuxt によるブログを参考に実装されており、リバースエンジニアリングに強いプライバシー保護を実現しています。

投稿・ユーザーへの報告については、依然として送信したアカウントIDが紐づいています。
「誰が報告を行ったか」は重要なコンテキストであり、適切なモデレーションのために必要であるためです。

🛡️ ユーザー認証が大幅に改善しました

これまでは認証およびDBにSupabaseを使用していましたが、より安全かつ高度な認証処理のためにBetter-Authを導入することに決めました。

  • マルチセッションに対応し、いつでもアカウントを切り替えることが可能になりました。
  • ユーザーIDの仕様が変更されました。
    • 誰でも自由にユーザーIDを変更できるようになりました。
    • ユーザーIDは、主にユーザーページのURLに使用されます。
    • 以前はランダムなUUIDが割り当てられていましたが、ユーザーページのURLが長くなる問題がありました。
      現在の仕様ではBetter-Authのデフォルトに基づき、UUIDよりも短いランダムな文字列が付与されます。
  • X (Twitter) のOAuth 2.0に対応したことで、認証がよりセキュアになりました。
  • 今後別の認証方法を実装することが容易になりました。(具体的な今後のプランは未定です)

これに付随してDBがNeon Postgresへと移行しています。

✨ UIライブラリとしてNuxt UIを採用しました

かつて、AvatioではUIコンポーネントをほとんど自作していたたため、Nuxt UIはあえて使用しないこととしていました。
しかし、これは愚かな選択でした。
Nuxt UIを使用することで、より一貫性が保たれたUI設計となりました。

  • ほとんどのページにおいてUIの改善が行われました。
  • アクセシビリティが向上し、より適切なナビゲーションを行えるようになりました。
  • 以前のUIに存在していた不具合の多くが修正されました。
    • 新たな不具合を発見された方は、ぜひご報告をよろしくお願いいたします。

🖥️ ソースコードの可読性が向上しました

現在Avatioのコードは@Liry24がほとんど全て記述していますが、以前はWeb開発初心者だったこともあり、ソースコードは見づらく非常に管理がしづらいものでした。

そこで、すべてのコードを見直し、TypeScript / Zod / Drizzle ORMの恩恵をできるだけ多く得られるよう書き直しました。

以前よりもアップデートが容易になり、不具合の発生確率も低下したと考えています。

🔧 その他の変更

  • サインアップした際、X (Twitter) で使用しているアイコンを使用するようになりました。
  • 既定のフォントにNoto Sans JPを使用するようになりました。
  • ログインをよりスムーズにするため、ログイン画面のCAPTCHAを削除しました。
    • 適切にBot対策を行っているので、セキュリティに問題はありません。
  • ショップのオーナー認証のフローを変更しました。
  • SSRでより適切に動作するようページ・API を実装しました。
  • APIから読み込んだデータをキャッシュするようになり、閲覧体験が向上しました。
  • 投稿・ユーザーをBAN・非表示する機能を整備し、モデレーションがより適切になりました。
  • エラー画面の挙動が安定しました。
  • 多言語対応のための準備を行いました。今後、実際に翻訳が行われていく予定です。

今後のロードマップ

  • 投稿の下書きを保存できるように
  • X (Twitter) アカウントでログインしたとき、X アカウントのIDを AvatioでのユーザーIDとして利用する
  • 多言語対応(英語)

シェイプキーを登録できるようになりました

新機能

  • セットアップのアイテムに対し、シェイプキーを登録できるようになりました
    • 最大登録数は現在64個です
  • 画像をアップロードする前に圧縮するようになりました
    • サーバーにアップロードする前に1.5MBまで圧縮し、vercelのペイロード制限を回避するようになりました
    • Web Worker非対応環境では圧縮処理中にページがフリーズする場合がありますが、仕様ですのでそのままお待ちください

デザイン

  • 一部のページでパンくずリストを表示するように
  • セットアップのリストとビューアの見た目を改善
  • ヘッダーのユーザーアイコンを押したときにポップアップが出るように変更

その他の修正

  • サーバーとのやり取りを改善し、安定性が向上しました
  • Unityバージョンの文字列が正しいかをチェックするようになりました
    • 2022.3.22f1 のようなUnityのバージョニング方式に則った文字列でない場合、投稿が棄却されます
  • その他、多数の技術的な修正

ユーザーアイコンの切取りに対応しました!

ユーザー

  • プロフィール編集でユーザーアイコンを設定する際、画像を正方形に切り抜く機能を実装しました
  • ユーザーアイコンを削除する機能を追加しました
  • プロフィール編集画面のデザインを改善しました

その他、今後のアップデートに向けた様々な技術的変更を行いました。

アイテムのカテゴリを自由に設定できるようになりました!

セットアップ

  • セットアップにUnityバージョンを記載できるようになりました
    • 現在の仕様は24字の自由文字列です
  • アイテムのカテゴリを拡張しました
    • 「ヘア」「テクスチャ」「シェーダー」「ツール」が追加されました
  • セットアップに登録したアイテムに対し、自由にカテゴリを設定できるようになりました

ユーザー

  • ユーザーに対しバッジの付与を開始しました
    • FAQにバッジに関する内容を記載しました
  • BOOTHショップのオーナーであることを認証する機能を実装しました
    • 認証することで、プロフィールにショップが表示されるようになります
    • 1つ以上のショップを認証すると「ショップオーナー」バッジを入手できます

不具合修正

  • セットアップを正常に取得できない場合があった問題を修正
  • セットアップ投稿後、続けて投稿を作成しようとすると「データが失われます」といった旨の警告が表示されていた問題を修正

投稿の作成ページが新しくなりました

Avatio v0.3.1がリリースされたことをお知らせします!

この変更には、投稿作成ページのリニューアル、アイテムの「スキ」表示、多数の不具合修正が含まれています。

新しい投稿作成ページ

投稿作成ページが新しくなりました!

デザインを再考し、スムーズにセットアップを作成できるように改良を行いました。

今後もアップデートを続けていきます。
フィードバックがあれば是非お送りください。

アイテムの「スキ」数

セットアップ詳細ページにて、各アイテムの「スキ」数を表示するようになりました。

その他の変更

  • ベースアバターの登録数制限を撤廃し、2個以上登録できるようになりました
    • 他のベースアバターの一部を改変に使用している場合に対応するものです
  • 一部アイテムが登録できない問題を修正
  • ログインに関する致命的なバグに対処
    • 今後も引き続き検証・修正を継続していきます
    • ログインに関する不具合を見つけられた方はご報告をお願いします
  • 利用規約およびプライバシーポリシーのタイポを修正
  • 様々な技術的アップデートを行いました

共同作者を設定できるようになりました

Avatioはv0.2にアップデートされました!

共同作者

セットアップ作成時に、共同作者を設定できるようになりました。

例えば、

  • 改変する方法を教えてくれた人
  • セットアップのテーマを発案してくれた人
  • 実際にデータ作成を手伝ってくれた人
  • アイテムをギフトしてくれた人

などを最大5人まで登録することができます。

それぞれの共同作者にはノートを設定できるので、そのユーザーがどのような貢献をしたか忘れることはありません。

ユーザーを共同作者として登録するには、対象ユーザーもAvatioにサインアップする必要があります。

その他の変更

  • トップページがリニューアルされました
  • セットアップを作成するとき、文字数などの制限がより分かりやすくなりました
  • X アカウントでログインできない場合がある旨の警告を、ログインページに記載しました
  • スマートフォンから接続した場合など、一部の状況で正常に動作していなかった問題を修正
    • これはv0.1.1のホットフィックスでした
  • 様々な技術的アップデートを行いました

既知の問題点

  • Xアカウントにメールアドレスが設定されていない場合、正常にログインが完了しない
    • 現在、解決策を検討しています
    • この問題に遭遇した方は、お手数ですがXアカウントにメールアドレスを設定の上、再度ログインをお試しください

Avatioへようこそ!

本日、AvatioをVRSNSユーザーの皆様に公開できることを嬉しく思います!

Avatioとは?

Avatioは、VRSNSユーザーのためのアバターセットアップ共有サービスです。

VRChatやClusterでお気に入りのアバターを作り上げた時、「この改変を記録しておきたい」「他の人とシェアしたい」と思ったことはありませんか?

Avatioを使えば、あなたの素敵なアバターセットアップを簡単に共有できます!

主な機能

  • 🎨 使用しているアバター、衣装、アクセサリーなどをリストアップ
  • 📸 画像を添付可能
  • 🔍 他のユーザーのセットアップを検索
  • 🐫 BOOTHの商品ページへ直接アクセス
  • ⭐ お気に入りのセットアップをブックマーク

使い方

  1. アカウントを作成(Xアカウントのみ利用可能)
  2. 「セットアップを投稿」から新規セットアップを作成
  3. ベースアバターと使用アイテムを追加
  4. 必要に応じて画像やタグを追加
  5. 公開!

さあ、始めよう!

Avatioは完全無料で利用できます。
あなたのとっておきのアバターセットアップを共有して、VR空間をより楽しく彩りましょう!

ホーム

より詳しい情報は、FAQからご確認ください。