パーポーフルート公式ブログ
【活動まとめ】【東京タクシー3D】東京タクシー3D バージョン35〜36開発の振り返り

2023/01/07
テーマ: 活動まとめ / 東京タクシー3D / 2023 / すべて


東京タクシー3D の開発振り返りです。

ちょっとずつ改良してます。

Mixamo のアニメーションを ReNim で各 skeleton に転写するワークフロー確立

これまでは unity asset store で買ったローポリキャラクタとその付属アニメーションを使っていましたが、どうしても他のモデルも使いたくなってきたのでアニメーションをどうにかする必要がありました。

Mixamo にモデルをアップロードして、そのモデルに mixamo 標準の skeleton を対応付ける auto rig 機能があってそれも試したけどどうも不安定。

blender addon で ReNim というリターゲティングツールを見つけたので試してみたらこれが大ハマリ。

異なる skeleton 間の対応付けをして、片方向けのアニメーションからもう片方向けのアニメーションを生成できるというやつ。

これを使って、以下のようなワークフローが実現できたのでこれに落ち着きました。

  • Skeleton は Mixamo の標準キャラのを使う
  • アニメーションは Mixamo にあるやつと自作のものを ReNim でそれぞれの skeleton 向けに転写したものを使う
  • キャラモデルにはそれぞれの skeleton が付いているのでそれを使う

キャラのダンスバリエーションを増やした

Mixamo からいい感じのを見つけてきて各 skeleton に転写。スリラーがあって嬉しかった(笑)

VRoid Studio で作ったキャラを 28 体追加

ReNim のワークフローができたので、さっそくいろんなキャラを追加。

VRoid Studio でポチポチキャラを作ってエクスポート、blender で読み込んで調整。

キャラごとに bone 構成が微妙に違うけど skeleton としては vroid 共通の 1 つを使いたいので、skeleton にない bone は存在する所まで祖先 bone を辿って設定する blender script を作りました。

他にも armature modifier の追従先 object を一括設定ツール、アニメーション一括転写ツール、skeleton にない bone が mesh に設定されていないかの検証ツールを blender script として書いて使いました。

モブキャラをblenderで管理

100 体くらいの既存のモブキャラは FBX → gltf → 独自フォーマットというフローでしたが、FBX から blender に手動インポートして blender → gltf → 独自フォーマットというフローにしました。

これまた skeleton を共通にするためにいろいろ調整。

効果音を一部新しくした

キラキラリーンみたいな心地よい感じの音に変更。

はてなアイテムボックス、交差点名標識コレクションシステム追加

なんか収集要素が欲しいなと思ったので追加。

確率密度関数を定義、シミュレートしたりして、楽しく収集できる感じを目指しました。

グラフィックを全体的に明るい感じにした

やっぱ明るい感じがいいなと思ったので ambient 比率を高くしました。

レースのガードレールのデザインを新しくした

半透明の角丸緑にしてテクノロジ感を強くしました。

目的地の数を 1.6 万地点ほど増やした

細い道の近くの目的地も大幅に追加。

タクシーモードにて、現在のマップレベルで目的地に実際に到達できるかどうかを事前にチェックするようにした

道路グラフとマップレベル壁の関係で原理的に到達できないところは目的地としないようにしました。

まれにビルが描画されなくなる問題を修正

GCD が発火しないことがあり、その場合プレイヤーが移動してもビルのロードが行われなくなってしまっていたので回避。

道路グラフの内部構造を改善

道路グラフは full と大きな道だけ含む part を使っていましたが full だけでいけそうだということで part を廃止。

点群に対するクエリを効率的に処理するために QuadTree クラスを作成、グラフの辺上の点集合と目的地データに対して適用しました。

QuadTree の分割状況を可視化したりして結構興味深かったです。

客の待機地点集合は別で定義していましたが、これをグラフの辺上の点集合で表すようにして客の待機地点集合は廃止。ストレージとメモリを3MBほど削減できました。

テストコース追加

Veymon が高速走行でスリップする問題を修正するために長いコースを作りました。

全車種乗り心地を確認。

Veymon が高速走行でスリップする問題を修正

タイヤの軸が高すぎてシャーシが地面と擦れていたようなので調整。

道路グラフの小さな連結成分は消す

客の目的地設定の際に実際に道路グラフを辿って到達できるかを確認するようにしましたが、それだと異なる連結成分には到達できないので道路グラフが連結となるように小さい連結成分は削除しました。

実際の所小さい連結成分は運転可能エリアの端で道路が切断されることで出来ていたものだけなので削除しても問題なし。

細い道は客配置確率を低くする

細い道だったら抽選をやり直す方式で狙った確率になるように調整。

ガレージ画面で車を見る角度を微調整

車ごとに見える大きさや角度がバラバラでまとめサイト用のスクショの crop が面倒だったので。

ツイートがない場合にドライバーのアイコンが他人のツイッターアイコンになる場合がある問題を修正

ツイートがない場合、twitter アイコンの描画先とアカウントエントリの対応がずれていました。

公式まとめサイトを作成

ちゃんとしたストック情報を用意したほうがいいなと思ったので。

ヘルプもこっちに一本化。


2023/01/07
テーマ: 活動まとめ / 東京タクシー3D / 2023 / すべて