プリパラ オールアイドルパーフェクトステージ (NS, 1.0.0)

普段ゲームはDL版を買っているけど、これの1.0.0がなかなかなキているということでパッケージ版を入手してみた。
強調しておくと、ここに書くGlitchの大部分は現状の最新版1.0.2でほぼ修正されている。特にゲーム進行に関わる問題が修正されロード速度も多少改善が見られるので、アップデート推奨。
ゲーム内容は。。個人的には歴代3DS版の方が好みかな。。Switch版は基本的にアーケードの再現に振っていて、トリコロールのステージに5人居る等アニメ再現ストーリーでもシステム側の制約をそのままにした、かなり衝撃の内容となっている。特に3DS版には常に存在したマイドレスデザインを排していたり、コーデセットのようなショートカットも用意されておらず、ユーザビリティの面でもイマイチに感じる。

既存ゲームをUnityで再現する難しさ

Switch版最大の特徴は、おそらく独自エンジン(+ Bullet Physics)で実装されているであろうアーケード版をUnityで再現しているという点だろう。
残念ながら、既存タイトルのUnity再現の難しさを如実に物語る内容と言わざるを得ない。下に貼った動画にも含めているが会話シーンのテンポが妙に悪い。これは3DS版にも存在する弱点で、人物の切り替えの際に常にロードを挟んでしまう実装になっている。3DS版ではアセットが小さいためかそれほど不満には思わなかったが、今回の場合はFullHDのアセットを毎回読んでいるわけで。。
基本的にロード中はアニメーションの無い静止画を表示して影響を見えないようにしているが、最終シナリオ等ではパーティクルを表示したまま全キャラクタが揃う描写をしているため、そこではロード中に大巾にフレームレートが下がるのを観察できてしまう。
プリパラのアイドルは基本的に3人組で、この3人を纏めたSceneを定義して適宜切り替えているか、SkinnedMeshRendererのようなレンダリングコンポーネントのMesh/Materialをスクリプト側から切り替えて実装しているように見える。特に1.0.0では後者の実装に起因すると見られるビジュアル破綻がいくつか見られる。
また描画の再現性も完全とは言いがたい。例えば、背景にシャボン玉を飛しているようなシーンが、ただの板ポリゴンで実装されていてカメラ制御がない(真円にならない、動画2:00付近で顕著)。もちろんUnityにもパーティクルは存在するが、アーケードと同じような飛び方を容易に再現できるかというと難しいのではないか。
深刻なのはアニメーションの同期が正しくないところが散見される点で、特にアイドルタイム編の再現度が低い。基本的にはモデルに埋め込んだアニメーションを同期再生させているだけのように見えるが、それでなぜ正確にアニメーションが再現できないのか(動画0:07〜)は謎としか言いようがない。
細かい点としては、おそらくUnityの入力フレームワークをそのまま使用しているため連打等の入力が弱い印象を受ける(フレームスキップ時に取りこぼしを起こす)。この挙動自体は筐体でも同じだった気もするが、基本的にはリズムゲーム部分の入力と描画は非同期で実装する方が好ましい。

1.0.2最大の改良点: Flipが概ね正常になった

1.0.0をプレイしていて直ぐに気付く問題は、フレームスキップが正常に実装されていない点だろう。下の動画では2:47付近で発生しているように、描画が間に合わないケースで過去のフレームが表示される。...Unityは元々可変フレームレートのシステムであるため、普通に作ればこのようなことは発生しないはずで、この説明も根本的に何か間違っている可能性がある。

一般に、GPUは描画命令列を消費しビデオRAM上に最終的な描画を出力する。そして、生成された描画はディスプレイコントローラがHDMIなりなんなりで画面に表示する。通常のシチュエーションでは、ディスプレイに対して画面を提供しているメモリは更新できないため、描画は2枚(またはそれ以上)出力され、フレーム毎に実際に表示される画面を切り替える必要が有る。この切り替えを"Flip(フリップ)"やSwapと呼ぶことが多い。
このとき、CPU処理が重くGPUの描画命令を出力できないままflipしてしまうと、直前に表示していたフレームを再度表示することになるためアニメーションがガクガクというかビクビクというか何というかになってしまう。この問題は1.0.2では修正されているように見えるが、エンディング動画が1.0.0のキャプチャと見られる動画なためそこでは依然観察できる。
Unityを採用している本作でなぜこのようなことが起るのかはちょっと解らない。Unityエンジン側の問題かもしれないし、そもそもUnityをゲーム画面で使っていないのかもしれない。プラットフォーム側の事情でフリップレートに下限が有り強制的にフリップを入れているといった事は考えられるが。。
この改善はおそらく描画側の修正というよりは、無駄なGCを減らすといったスクリプト側の修正でフレームスキップの機会そのものを減らしたのではないかと思う。ドリームシアターなど描画/スクリプト負荷の高そうなシーンでは1.0.2でも稀にこの現象が見られることがある。

その他の改良点


1.0.0で観察した問題を集約した動画が撮れてしまった。(上の説明からもリンクしている)

  1. アイドルタイム編のライブ導入シーケンスのアニメーションがズレている(これだけ1.0.2でも未修正)
  2. アイドルタイム編のストーリー進行中にもかかわらず神アイドルチャレンジ(前シリーズのイベント)が発動する
  3. 当然ジュエルマイクは持っていないため神アイドルチャレンジではただの棒(タクト)だけを持ってダンスすることになる
  4. リザルト表示のSEがフェード完了前に鳴る
  5. 点数の表記が999999になっている
  6. 本来シナリオ上発動するはずのイベントであるスーパーアイドルタイムは発動しない
  7. シナリオはクリアしたことになっているにも関わらず、次のシナリオが出現しないため進行不能になる(1.0.2では、このような状態のセーブデータは未クリアに戻るようになった)
  8. また、この方法でシナリオを中断するとシナリオ目標の表示も不正になる

...というわけで1.0.0ではあまりシナリオを進められなかったので、観察できない他の問題もあったのかもしれない。もちろん1.0.2はこの辺の問題の大部分を解決しており、正常にゲームがクリアできるようになった。
他の細かい改善としては:
モデル描画の改善。最も目につく改善は、キャラクタ頭部のレンダリングが改善されたことだろう。パッケージ裏や公式サイト素材では基本的に1.0.0の描画を採用しているため顎部にアウトラインが入っておらず首と繋がっているように見えるが、1.0.2ではアウトラインが描画されるように修正された。また、みらいの描画で顕著だが口元のアウトライン描画も修正されている。
家庭用のプリパラでは伝統的に動的なアウトラインが採用されている。つまり、カメラ距離に応じて押し出し量を変えたり、動的にラインを生成するアウトライン描画を採用しており、一定の太さのラインが常に描画されることになる。(筐体ではおそらくポストプロセスで描画しているのではないだろうか)

  • 1.0.2: 遠くのぴのんと近くのじゅのんで同じくらいの太さのアウトラインが描画されている


また、プリパラは伝統的に焼き込み影を採用していない(髪形等がカスタマイズ可能であるためと考えられる)。首元は遮蔽率も高く、かつ、プリパラは頭部アウトラインはカスタマイズ不可なので焼き込み影で処理してしまっても良いと思うが。。
1.0.2でも、光源(法線)の特殊処理は実装されていない。例えば、アイドルが左側に表示された場合の左目やワンポイントの"ピンクほっぺ"は、下向き時に暗く表示されてしまうのでかなり違和感が有る。
シナリオのライブシーンでチーム2人目の名前が常にマイキャラになっていた不具合が修正された。...これは単純なロジックバグだろう。メンバーアピールも同様に間違っていた。

  • 誰だよ


ちなみにアニメ本編でソロライブだった等の事情で補充メンバを入れているライブで、プリパラアイドルを使用しない場合は"ぷれいやー1"のような適当な名前が表示されていた。1.0.2ではマイキャラの2人目以降を埋めるように変更された?ように見える。ダンスは全体が存在するわけではないため、チームアピールを省略するような対応はできなかったと見られる。
...3DSのように同一人物のメンバーアピールを3回くりかえすといった対応でも別に良かったのではないだろうか。。例外はペアライブでの仲良しチェックで、これはおそらくランウェイの延長で対応している。(3DSでは、ずっトモ!なかよしチェックのモーションを残したままリズムゲームを継続 -- そもそも3DSではランウェイが再現されていない。)

  • 誰だよ


アイドルタイム編でサイリウムチェンジする等間違ったシーケンスが修正された。エフェクトは常に正確に見えるので単にSEの設定ミスが修正されただけではないだろうか。
ライブ時にコーデ決定後フェードアウトしてからロードに入るように修正された。基本的にアニメーションを半端なタイミングで止めないように徹底されている。
キャラクタやシーン変更とロードの同期が修正された。一部シーンのロード時にメッシュだけ先に切り替わりキャラクタの描画が破綻したり、暗黒空間にアイドルがT字ポーズで直立するという微妙に恐しい現象が発生していたが修正された。ただ、ライブシーンでは根本的には修正されておらず、1.0.2でも依然カメラ位置の切替と実際のゲームオブジェクトの移動/設定が同期しないケースが散見される。

  • 1.0.0: 妙な位置に表示されたぴのん(直後にそふぃに切り替わるがそこで描画が乱れる)


ドリームシアター等でテクスチャが正常にロードされないケースがあったのが修正された。例えばドリームシアター後のリザルト画面が黒背景であったり、6人ライブでのメイキングドラマの海が描画されないといった不具合が解消している。
シナリオのクリア状態が明示されるようになった。1.0.0では、そもそもシナリオリストの実装が異常で、常にシナリオグループ最初のシナリオが新規シナリオとして提示されてしまっていた。本作では基本的にシナリオは一本道であり、未クリアのシナリオは(存在する場合)シナリオグループの最後のシナリオに固定されている。このためNew表記が無くても特に困ることは無い ...が、3DSのシリーズ作では常に表示されていたので。。
シナリオのクリア条件が2つ以上ある場合は両方が表示されるようになった。1.0.0では1つのみが表示されており、かつ、そのようなシナリオは正常に攻略できないことが多かった。
ストーリーグループ毎に固有のアイドルが表示されるようになった(Nintendo Switchオリジナルストーリーではマイキャラ、他ではファルル、らぁら等)。1.0.0では直前に表示された適当なアイドルが表示されており、切り替え時に表示が乱れていた。 追記: これは1.0.2でも同様の仕様で、次に選択されたストーリーのライブのセンターが表示されるようだ。
選択肢が色を暗くするのではなく枠で示されるようになった。これは典型的なデザイン問題で、2択の頻出する本作ではどちらが選択されている選択肢なのかがわからなくなる事態が多かった。ちなみに3DS版と異なりタッチ操作には一切対応していないようだ。

  • 1.0.0: 一番上が選択された状態。1.0.2では枠が追加された。


トップメニュー等の機能しない"B もどる"表記が削除された。これに限らず、UI関連のバグは大巾に少なくなったように見える。また、誤植等も修正されている。ただ、ライブモードのアイドル選択が非常に重いのはあいかわらず。。

  • 1.0.0: 無意味な"B もどる"(ここではBボタンは機能しない)

  • 1.0.0: 達成条件の間違い(正しくはグランプリファイナルで、これには難易度等が無いので仮素材として最初の曲であるトイトイ・テイルを入れていたのではないだろうか)


おそらくメモリリークに起因すると見られる異常終了や無音でライブが進行する現象が発生しなくなった。特に家庭用のプリパラは伝統的にイベントの高速スキップが無いため異常終了すると長いイベントを再度見なければならないのでキツいものがあった。(1.0.2では一度クリアしたストーリーはライブを直接遊べるように変更された)
とにかく1.0.2はゲームプレイをかなり改善したが、それでも依然3DS版の品質には到達していないように感じられる。Unityへの移行はプリパズ等のスマホタイトルの開発リソース共有や、(筐体を含めた)今後のシリーズタイトルも同様のプラットフォームで提供することを見越したものだと考えられるが、少くとも現時点ではあまり良い印象を受けていない。この手の、筐体をビジネスの中心とするタイトルの家庭用リリースは常に微妙な立場に有るが、家庭用タイトルのリプレイ性は筐体のリテンションを維持する上でもプラスに作用するのではないかと思う。