キングオブグローリーで顔で芝生を触る正しい姿勢は何ですか?

ここに画像の説明を挿入します

導入

ココスにおける茂み隠れ効果の実装原理。

ゲーム開発では、遮蔽されたモデルの効果を表現するために遠近効果半透明効果をよく使用します

この記事では、ココスの王の名誉で草に隠れる効果を実現する方法を紹介します

この記事のソースプロジェクトは記事の最後で入手できます。友達は自分でそこに行くことができます。

草の中に隠れる効果を実現する方法

ここに画像の説明を挿入します

Honor of Kings in Cocosで草の中に隠れる効果を実現するには、次の点が必要です。

1. モデルの半透明性

モデルの半透明効果を実現するには、次の2 つの条件が必要です。

  • 3D オブジェクトが配置されるレンダリング キューは「透明キュー」です。
  • 3D オブジェクトのカラーalpha値は127 (半透明) に変更されます。

分かった、分かった

2. トリガー

モデルの半透明は草に入るときにトリガーされ、草から離れるモデルの半透明が回復します次の2 つのイベントが必要ですCollider

  • onTriggerEnter:他の人がCollider私のものに入ったときにColliderトリガーされます。

  • onTriggerExit:他の人がCollider自分から離れたときにColliderトリガーされます。

はいはい

早速、例を挙げてみましょう。

草の中に隠れるキングチキン

次に、King of Glory草の中に隠れる効果を段階的に実装していきます

1. 環境

エンジンバージョン:Cocos Creator 3.8.1

プログラミング言語: TypeScript

2. リソースの準備

まず、「野菜市場」に行き、「野菜」を 2 つかみ購入しますモデルを作るのが好きな友達は、3dmaxで自分でモデルを作ることができます。まず、 3dmaxでの草の効果を見てみましょう。

番組チームはついに良心を取り戻した

次に、と を含むモデルを3dmaxからエクスポートし、それをプロジェクトに追加します。FBXTGA

理解できなくても、そのままにしておいても構いません。

モデルをシーンにドラッグすると、真っ白な草が見えます

プラスチックのように

芝生を緑に戻すには、次のことを行う必要があります。

  • マテリアルを変更するにはEffect、それを使用しますbuiltin-unlit
  • 次にチャンネルをTechnique選択します。transparent
  • テクスチャを設定します。

木人は123人数えます

処理が完了すると、次のような効果が得られます。

シンプルな表示、究極を追求する友人はそれを調整できます

草の密度が十分ではないため、さらにいくつかをコピーして貼り付けます。

私の髪でもこれができたら最高です Ctrl+C+V

Grass にトリガー イベントを生成させたい場合は、それを追加する必要がありますCollider。これはここで直接使用されておりBoxCollider、簡単かつ高速です:

これを障壁と考えることができます

チェックを入れるとトリガーIs Triggerになります。そうしないと芝生に入ることができなくなります。

そこに集中してください! ! !

3. コードを書く

新しいTussockコンポーネントを作成し、それを King Chicken にドラッグします

@ccclass('Tussock')
export class Tussock extends Component {
    
    
    start() {
    
    
    }

    update(deltaTime: number) {
    
    
    }
}

start()メソッドでコンポーネントを取得しイベントCapsuleColliderをリッスンしますonTriggerEnteronTriggerExit

start() {
    
    
    var collider = this.getComponent(CapsuleCollider);
    collider.on('onTriggerEnter', (event: ICollisionEvent) => {
    
    
        if (event.otherCollider.node.name == "tussock") {
    
    
            this.setModelTranslucency(true);
        }
    }, this);
    collider.on('onTriggerExit', (event: ICollisionEvent) => {
    
    
        if (event.otherCollider.node.name == "tussock") {
    
    
            this.setModelTranslucency(false);
        }
    }, this);
}

最後に、キング チキンのマテリアルを取得しその透明度を設定します。material.setProperty('albedo');

setModelTranslucency(flag: boolean) {
    
    
    const material = this.node.getChildByName("rooster_man").getComponent(RenderableComponent)?.sharedMaterials[0]; // 0 表示第一个材质,根据您的需求修改
    material.setProperty('albedo', new Color(255, 255, 255, flag ? 127 : 255));
}

4. 効果実証

ここに画像の説明を挿入します

一日頑張らないと体全体に不調が出てきます。記事の転送にご協力ください。授業を抜け出すのはもう終わりです。

結論

この記事のソース プロジェクトは、プライベート メッセージでTussock に送信することで入手できます。

最近、著者はQilinzi (ゲーム エンジンとゲーム開発に15 年間深く携わっており、実用的な情報はすべて商業プロジェクトの実践から得ています)からゲストとしてKnowledge Planetに参加するよう招待されました。のために:

  • 家庭教師の指導
  • 学習上の問題に関するコミュニケーション
  • 初心者のための入門編と上級編
  • 採用と雇用機会の共有
  • 面接の質問集
  • 面接体験の共有

一般に、Planet の目標は1 つだけです。それは、高品質のコンテンツを提供し、学習に取り組むことです興味のある友達は、コードをスキャンして詳細を確認し、サポートしてください。待っています

長押しして識別し、コードをスキャンして理解します

私は「Billion Dollar Programmer」、ゲーム業界で8年の経験を持つプログラマーです。ゲーム開発において、皆さんのお役に立てれば幸いです。また、皆さんを通して皆さんのお役に立てれば幸いです。

AD: 作者のオンライン ミニゲーム「Snake Handheld Classic」、「Gravity Maze Ball」、「Coloring Journey」をクリックして自分で検索できます。

正直、いいねしたい!この記事を必要と思われる他の友達と共有してください。ありがとう!

推奨されるコラム:

Honor of Kings がスキル範囲インジケーターをどのように実装しているかご存知ですか?

Cocos の独立系ゲーム開発フレームワークを段階的に構築してきた 8 年の経験

8 年間のゲーム マスター プログラマーと一緒にデザイン パターンを学ぶ

スネーク ミニゲームをゼロからオンライン シリーズまで開発する

おすすめ

転載: blog.csdn.net/lsw_Cs/article/details/134868801