# VRC実績システムメモ ## 概要 - VRChat内で何かを達成したら、称号を受け取ることができる「実績システム」を作る - 実績例:「アスタリスクの花言葉クリア」、「Pandora ep1 Master」、「電脳飲食店組合10店舗制覇」など - 形態はWebアプリ。Twitter連携してログインする。 - 既存のVRChat向けのWebアプリでは、VRChatアカウントでログインさせるものもあるが、VRChatの仕様上、そのサイトにVRChatのIDとパスワードを入力する必要があるため、利用者のハードルが高い。 - ドメインは「vrctrophy.jp」あたり? ## 狙い - VRChat内の共通の経験を持った人を見つけやすくすることで、VRChat内での交流を活性化する。 - 実績が近い人なら趣味が似てることがわかったり、同じ謎解きワールドに行ったことがあればネタバレトークができたり - 似た経験をしている人が持っているほかの実績をおすすめして、自分にあった遊びを見つけやすくする(実績レコメンド機能) - VRChatを始めた人が何をしていいかわからないという話もあるので、そういう人が何から手をつけていいかわかるようにもなる。 ## 基本システム ### ログイン・プロフィール登録 Twitterと連携してログイン。以下の項目を設定できるようにする。(★がついているものは、Twitterから取得したものをデフォルト値にする) - 必須 - 名前(表示名)★ - アイコン★ - Twitter ID★ - VRChat ID - 自己紹介★ - あってもよいけどなくてもよい - プロフィールデザインカスタマイズ - Twitterであるような上部画像設定や背景色変更など ### 実績マスタ登録・管理 実績をカテゴリに分けて登録できる機能。カテゴリごとに画面に表示して、ユーザーに登録させる。 登録させる項目は以下を想定 - 必須 - 名称 - カテゴリ - 例:謎解き、ホラー、ワールド巡り、 - 説明 - 必須じゃないけどあった方がいいかも - アイコン - レーティング - 実績の達成の難しさで★~★★★★★みたいな難易度を表示する。 - サブカテゴリ - 例:「ワールド巡り」のサブカテゴリとして、「電脳飲食店組合」「パーティクルライブ」みたいな階層構造にする。 - ユーザーが自分で追加/管理者が追加 - ユーザーが自分自身で実績を追加できるようにしたいが、管理者が追加したものの方を上位に表示させたいので、このフラグを付ける - データ構造的には、カテゴリの一部にしてもよい - 複数の実績を達成することで解放される実績 - 「ホラワマスター」「謎解きマスター」など、達成感を出すためには入れたいけど、最初はいらないかも。 ### 実績登録 登録されている実績をユーザーに表示して、オンオフ ### プロフィール表示 登録されているプロフィールと実績を表示する。 ### 実績別ユーザ表示 同じ実績を持っているユーザ一覧を表示する ### おすすめ実績表示 自分が持っている実績をもとにおすすめの実績を表示する。(SQLのみで計算できる協調フィルタリング程度のものを想定。実績が少ないうちは管理者が設定したおすすめ実績を表示) ## 想定システム構成 バックエンドはAPIサーバにし、フロントエンドには、APIからJSONで必要なデータを返す。 案1) - フロントエンド:HTMLとJSをAWS S3 + Cloudfrontで配信 - バックエンド:serverlessでAWS API Gateway + Lambda + DynamoDB + Twitter OAuthで作る。 案2) - EC2インスタンスのLAMPアプリ ⇒ざっくりデータ構造を考えた結果、DynamoDBだとデータ管理が面倒(APIコールを減らすためにアプリの目的ごとに冗長なデータを持たないといけないなど)なので、普通のRDBの案2の方が作りやすいかも。 ## APIレスポンス(WIP) - UserProfile - Twitter ID - VRC ID - コメント - UserTrophy - user_id - trophy_id - trophy_category - trophy_name - TrophyUser(Trophyからユーザーを検索) - trophy_id - trophy_category - trophy_name - user_ids(リスト) … (このほか機能ごとにAPIを用意する予定) ## 今のところ実装するつもりのないもの - おすすめユーザー - ユーザーを紹介するシステムではないため、おすすめ実績は実装するが、おすすめユーザーは実装しないつもり 取り急ぎは、こんなぐらいで適宜仕様追加して、並行してプロトタイプつくろうかと思ってます!
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up