Unity3D チュートリアル: 2D ゲームのスキル効果

当社の 2D グラフィックス ゲームでは、Diablo II での魔法のエフェクトの実現など、多数の光と影とスキルの特殊効果が不可欠ですが、幸いなことに、強力な CPU を使用してアルファ ブレンディングと彩度ブレンディングを実現しています。 、これらのメソッドを使用して、ゲームで必要なスキルの特殊効果を実現する方法について説明しましょう。

    1. アルファ ブレンディング効果
    アルファ ブレンディングでは、画像と別の画像を一定の割合で混合することができます (図 1 を参照) が、通常のアルファ ブレンディングは、ゲームのスキルの特殊効果には適していません。ミキシングをより正確にするためにデータを追加する必要があります. この効果を実現するために, 画像にアルファ チャネル データを追加します (図 2 を参照)。図 3 の効果は、特殊効果のように見えますか?
    ただし、まだ問題があります. 注意深く観察する限り、図 3 の特殊効果の周りに黒い影があることを見つけるのは難しくありません. これは、スキル効果に少し欠陥を追加しているように見えます. これはなぜですか? 私たちのプログラムは、画像のチャネル データに応じてさまざまな程度のアルファ ブレンディング処理を実行しますが、実際には特殊効果のエッジで RGB カラー値が黒 (R=0、G=0、B=0) に近いため、これを一度混合すると、間違いなく周囲に黒いエッジができますが、ここでは簡単なトリックを使用して黒いエッジを簡単に回避できます。つまり、図 2 の RGB カラー マップを灰色の背景で塗りつぶします。混合後 黒い境界線はなくなります, 少なくとも以前ほど目立たなくなります. ここには最終的なレンダリングはありません, そして最終的な効果はあなた自身のプログラムによって実現されるべきです.

 

 

 

 2. 彩度の特殊効果

    アルファ ブレンディングと比較して、彩度は特殊効果の生成に適しています. パフォーマンスと効果の点では、彩度はアルファ ブレンディングよりも優れています (図 4 を参照)。彩度のアルゴリズムが単純すぎるためか、紹介はほとんどありません. 最初に彩度の方法を紹介しましょう. 混合式: R1, G1, B1: 画像ピクセルのソースカラー値; R2, G2 ,

    B2

    :ベースマップ ピクセルのソース カラー値;

    R = R1 + R2; ( IF R > 255 THEN R = 255 ) G

    = G1 + G2 ; ( IF G > 255 THEN G = 255 ) B

    = B1 + B2; ( IF B > 255 THEN B = 255 )

    R, G, B は必要な混合結果です。

    このような複雑な計算は、アルファブレンディングよりもパフォーマンスの面で優れていると思うかもしれません. もちろん、通常の CPU 命令だけを使用する場合、実際にはパフォーマンスはアルファほど速くはありませんが、現在は MMX 命令が CPU として使用されています.基本命令であるMMX命令にはサチュレーションプラスのCPU命令があり、非常に便利に運用できるので、CPUメーカーの貢献に感謝しなければなりません。

    ま、どちらも導入されていますが、基本的には2Dゲームのニーズに応えられると言えますが、次はゲームをもっと盛り上げていきましょう。

 

おすすめ

転載: blog.csdn.net/weixin_55688630/article/details/128402360