たぶん以前に聞いたことがあるのですが、どこにも見つかりません...
ビデオランドでは、24fps以上はスムーズです。Cocos2dは、60fps以下の場合にのみスムーズに見えます。30から50の間は確かにスムーズではなく、fpsカウンターは正確ではないようです...
どうしてこれなの?それとも私だけがこの状況にあるのでしょうか?
たぶん以前に聞いたことがあるのですが、どこにも見つかりません...
ビデオランドでは、24fps以上はスムーズです。Cocos2dは、60fps以下の場合にのみスムーズに見えます。30から50の間は確かにスムーズではなく、fpsカウンターは正確ではないようです...
どうしてこれなの?それとも私だけがこの状況にあるのでしょうか?
この動作には実際にはいくつかの理由があり、cocos2d だけではなく、垂直同期(VSYNC) が有効になっている環境のゲーム エンジンで見られる効果です。iOS では VSYNC は常にオンになっています。PC では通常、フレームレートが常にモニターのレートを下回っている場合、画面のティアリングを犠牲にしてフレームレートを改善するためにオフにするオプションがあります。通常、iOS デバイスなどの LCD は 60 Hz でディスプレイを更新し、最大 60 fps を許可します。
Cocos2D 1.x はデフォルトで更新にCADisplayLinkクラスを使用しますが、Cocos2D 2.x は CADisplayLink のみを使用します。CADisplayLink により、更新が画面のリフレッシュ レートと同期されます。画面がコンテンツの描画を終了したときに通知が送信されることを意味します。
60 fps になれば問題ありません。ただし、ゲームが 60 fps のレンダリングに間に合うようにフレームをレンダリングできない場合、次の画面の更新が完了した後にのみ、次の更新を受け取ります。これにより、フレームレートが 60 fps をわずかに下回るとすぐに、つまり、更新とレンダリングのサイクルが完了するまでに 16.666 ミリ秒より長くかかるとすぐに、フレームレートが効果的に半分になります。これは、CADisplayLink の更新により、iOS で 60、30、20、および 15 fps (60 を 1、2、3、および 4 で割った値) の個別のフレームレートのみを使用できることを意味します。
60、30、20、および 15 fps の間で変動するフレームレートは、ほんの一瞬であっても、主に非常に不安定であるため、滑らかに感じられないため、この効果は非常に顕著です。 "。ゲームがこの影響を受ける場合、フレームレートを 30 fps に制限すると、実際にはゲームがよりスムーズに表示されることがあります。また、フレーム間で更新およびレンダリングする時間も増えます。
「スムーズ」と考えられるのは、24 fps の映画フレームレートの安定性ですが、映画監督は、限られたフレームレートが明らかになりすぎるシーンを避けることも学びました。たとえば、彼らはゲームで頻繁に行われる横方向のスクロール、つまりカメラの横方向の動きやカメラのそばを通過するオブジェクトの横方向の動きをまったく避けています。
The Hobbit (ホビット) を見ると、映画がこれほど滑らかになることに驚かれることでしょう。これは、48 fps で実行される最初の大ヒット映画です。映画の登場人物がどれだけ「リアル」で「本物そっくり」であるかすぐにわかるでしょう。印象をつかむには、この非公式の 48 fps ホビットの予告編をチェックしてください。
cocos2d が fps として表示するものは、60 から 30 から 20 および 15 fps への切り替えの正確な表現ではなく、数フレームにわたる平均フレームレートです。したがって、cocos2d が「45 fps」と出力する場合、ゲームが 30 fps で表示された時間の半分を意味し、残りの半分は過去数フレームで 60 fps で表示されました。
2つの主な問題。
まず、ディスプレイのリフレッシュ レートを一致させることです。それ以外の場合は、目/脳が見つけやすい不規則な動きが発生します。少なくともその倍数であること。
2つ目はモーションブラーです。映画/ビデオにはモーション ブラーが含まれる傾向があり、視聴者をだまして連続的な動きを見せてしまいます。