Cocos Cyberpunk は、エンジンの強力な 3D ゲーム制作能力を実証し、コミュニティの学習意欲を高めるために、Cocos エンジンの公式チームによって立ち上げられた完全なオープン ソース TPS 3D ゲームです。Web、IOS、Android のマルチターミナル リリースをサポートしています。
この連載では、皆さんの学習効率を向上させるために、ソースコードをさまざまな側面から解釈していきます。3D ゲーム開発の道をさらに前進するのに役立つことを願っています。
プロジェクトソースコード無料ダウンロードページ:
https://store.cocos.com/app/detail/4543
“HEY,麒麟子,最近突然觉得,有一个词好适合你”
“嗯?什么词?”
“姜郎才尽。”
“。。。。”
“你看吧,这都停更多久了,硬是没憋出一个字”。
“。。。。,行,我写!”
みなさん、こんにちは、キリン・ピジョンと呼んでください。
月日が経つのは早いもので、前回の投稿から数か月が経ちました。
急いでいる友達は、直接ドロップダウンして次のページにジャンプできます: Cocos Cyberpunk の再利用可能な技術資産
実際、Qilinzi が普段記事を書いているのは、乾物が満杯であることを確認するためだけでなく、ココスのテーマに固執するためであり、同時に、私がそうであることを他の人に見られたくないことを誰もが知りません。ココスの管財人。難しいですね、我慢してください。
ココスサイバーパンクとは
Cocos Creator 3.7 の新機能
偶然にも、Cocos Creator 3.7 がリリースされ、最も望まれていたカスタム レンダリング パイプライン、ライト プローブ、およびリフレクション プローブが利用可能になりました。
これら 3 つのアーティファクトにより、シーンのレンダリングが数段階向上します。
3.7 には多くの新機能があることは注目に値しますが、同時にエンジンのドキュメント チームは新しいドキュメントを詳細に更新するために多くの時間を費やしました。ドキュメントに直接アクセスして、対応するコンテンツを表示できます。ドキュメントに関して疑問や提案がある場合は、お気軽にフィードバックをお寄せください。
ああ、モデル。最大7レベルをサポートするそうです。画面上のモデルの表示比率に応じて使用レベルを動的に選択でき、大規模なレンダリングの負担を効果的に軽減できます。シーンに合わせて走行性能を向上させます。
LOD に関して言えば、ほとんどの人はメッシュ LODを実現するためにさまざまな詳細を備えたメッシュを作成することを最初に反応しますが、メッシュ LOD は実際にはオプションであり、好みではなく、実際の好みはマテリアル LOD であることを誰もが知りません。
複雑なマテリアルが GPU にもたらすレンダリングの負担は、モデルの面の数よりもはるかに大きくなります。多くのプロジェクトでは、マテリアル LOD で十分です。メッシュを処理する必要はなく、さまざまなレベルで使用されるマテリアルを編集するだけで、パフォーマンスを大幅に向上させることができます。
上記の数値が標準を超える場合は、メッシュ LOD を実行する代わりに、カリングを考慮する必要があります (たとえば、PVS を使用して遮蔽されたモデルを非表示にし、距離判定を使用して遠くにある小さなオブジェクトを非表示にします)。メッシュ LOD は、マテリアル LOD とカリングを組み合わせて使用しても要件を満たせない場合にのみ考慮する必要があります。
LOD の各レイヤーは実際には個別のノードであるため、マテリアルも LOD にすることができます。
たとえば、オブジェクトが近距離でレンダリングされる場合は、最も効果の高い PBR マテリアルを使用します。遠くにいるときは、一部の詳細をオフにすることができます。非常に遠ざかると、光のないマテリアルに変質する可能性があります。
ただし、Qilinzi はモデル LOD の機能を慎重に使用していないため、当面は詳しく説明しません。
エンジンチームからの特典
さらに驚くべきことは、Cocos Creator 3.7が本当に優れていることを証明するために、エンジンチームはTPSゲームのDEMO「Cocos Cyberpunk」もリリースし、プロジェクトエンジニアリングのソースコードを100%オープンソース化したことです。
ある偉い人は、「130,000 行のコード + 500,000 の外注アートの 3D サンプルを、ココスが無料で配布しています!」という特別記事を書きました。」
このタイトルは、大きな世界を見てきたQilinziですら持てないほど素晴らしいタイトルだと言わざるを得ません。
少し興奮しましたが、コードをダウンロードする前に、Qilinzi はサイバーパンク プロジェクトを担当する同僚にいくつかの質問を確認しました。これらは、ダウンロードする前に誰もが尋ねたい質問かもしれません。
Qilinzi: 「カスタム パイプラインの最新バージョンを使用しましたか?」
答え: 「もちろん、カスタム遅延レンダリング パイプライン、Bloom、TAA、FSR などをすべて使用する必要があります。」
Qilinzi: 「エンジンは変更されましたか? ユーザーは特別な設定を行う必要がありますか?」
回答: 「新しいバージョンのカスタム パイプライン コードは、TS を使用してプロジェクトに直接書き込まれます。カスタム エンジンは必要ありません。Cocos Creator 3.7.1 で直接開くことができます。」
Qilinzi: 「パフォーマンスはどうですか。電話でも実行できますか?」
回答: 「確かに、Web と Android はどちらもネイティブで実行できます。Mi 6 の最小サポートは 30FPS です。性能の異なるモデルに応じて、モデルの適応、画質の調整、フレーム レートの維持を行っています。」
キリンジ「信じられない」
回答: 「私の言うことが信じられないなら、なぜそんなに尋ねるのですか。Cocos Store に行って自分でダウンロードし、パッケージを梱包して実行してください。」
Cocos Cyberpunk の再利用可能な技術資産
Qilinzi はサイバーパンク プロジェクトについて 1 日かけて調査し、ココス公式局 B の生放送を聴いていたため、おそらくこのプロジェクトを知ったでしょう。
個人的な経験から言えば、プロジェクトは依然として非常に明瞭で明確であり、優れた学習リソースとして使用したり、プロジェクト開発を実行するためのプロジェクト フレームワークとして使用したりできます。
これには次の機能が含まれます。
1. 完全な TPS ゲームコア
現在のキャラクター制御エフェクトには細部にはまだ改善の余地がたくさんありますが、すでに完全なシューティング ゲーム ロジックとなっています。
- 役割制御
- 上半身と下半身の動きの分離、移動中の射撃
- 射撃、弾道、弾痕、炎、ヒットロジック
- モンスターのスポーン、モンスターの経路探索、モンスター AI
2. モデル適応メカニズム
3D ゲームは 2D ゲームとは異なり、画質を向上させるためにはより高い機器性能のサポートが必要です。そのため、通常は高性能デバイスで最高の結果が得られ、低パフォーマンスのデバイスではフレーム レートが確保されるようにエフェクトを調整します。Cocos Cyberpunk は、完全なモデル分類とパフォーマンス切り替え戦略を実装しており、独自のプロジェクトで直接使用できます。
- 携帯電話の GPU 情報に基づいて、ハイエンド、ミッドレンジ、ローエンドのモデルを分類します (一般的な携帯電話の GPU チップが含まれています)
- 上位モデル、中位モデル、下位モデルに応じてエフェクトを調整し、下位モデルでも滑らかさを確保
3. カスタム パイプライン
Cocos Cyberpunk では、Cocos Creator 3.7 で提供される新しいカスタム パイプラインが使用され、拡張の形でプロジェクトに配置されるため、非常に優れた分離が実現されます。独自のプロジェクトで必要な場合は、直接再利用でき、新しいバージョンのカスタム パイプラインを学習するための学習ケースとしても使用できます。
- プロジェクトの状況に応じて直接再利用できる、順方向レンダリング パイプラインと遅延レンダリング パイプラインを実装しました。
- 後処理パイプラインとフレームワークを実現し、Bloom、TAA、FSR などの共通テクノロジーを提供し、必要な後処理エフェクトを非常に便利に追加することもできます。
- カスタム パイプライン図を視覚化すると、パイプラインのレンダリング プロセスを非常に直感的に確認できます。
4.強化された反射プローブ
プリベイク済みの反射プローブを使用すると、パフォーマンスを損なうことなく、オブジェクトに周囲の風景を反映させることができます。とてもシンプルで使いやすい機能なので、ぜひ皆さんも活用してみてください。
- Cocos Creator 3.7 でのリフレクション プローブを使用したベイク処理
- SphereProjectionを使用して反射内容がオブジェクトに近づくように補正します
- リアルタイム環境リフレクション プローブ コンポーネントが提供されており、主な機能はエディターでのデバッグを容易にすることであり、いくつかの単純なシーンでリフレクション効果を強化するために使用することもできます。
5. 静的オクルージョン カリング (PVS-SOC)
オブジェクトをレンダリングする最も速い方法は、レンダリングしないことです。
Cocos Cyberpunk プロジェクトでは、シンプルで使いやすい PVS メカニズムが実装されています。視覚的な関係を空間グリッドに事前に保存し、レンダリング中にテーブルを直接参照してレンダリング リストを取得することにより、効率が大幅に向上し、建物が密集したシーンで最も実用的です。
- 空間を多数のグリッドに事前に分割する
- 事前にレイ クエリ メソッドを使用して、各グリッドの表示オブジェクトを検索し、その ID を記録します (gpu.js アクセラレーションを使用)
- レンダリング時に、カメラがどのグリッドにあるかを計算し、対応するグリッド内の表示される静的オブジェクトのリストを取得し、表示される静的オブジェクトのみをレンダリングします。
ちなみに、プロジェクトの種類の関係上、上記の Cocos Creator 3.7 で新たに追加されたライト プローブと LOD は使用されません。Qilinzi に戻って適切なサンプルをいくつか見つけて共有してください。。
Qilinzi 氏は、Cocos Cyberpunk は上記のものよりもはるかに優れたものになるはずだと考えています。
したがって、次に、Qilinzi は、上記で使用したすべての技術的なポイントを学習し、いくつかのコンテンツを出力して、あなたと議論して学びたいと考えています。
最後に一言
多くの友人が、エンジンとグラフィックスの基礎を学んだ後、実際の戦闘能力を向上させる方法を Qilinzi によく尋ねます。
答えは簡単です。それを行うためのプロジェクトを見つけることです。
プロジェクトを実行する機会がない場合はどうすればよいですか?
オープンソース プロジェクトを見つけてください。
Cocos Cyberpunk はこの目的のために設立され、より多くの友人が Cocos Creator を使用してよりクールなプロジェクトを作成できるようにしたいと考えています。
それで、何を待っているのですか、早く学んでください。ココス サイバーパンク 3D ソース コード