UDN
Search public documentation:
DevelopmentKitGemsCreatingASimpleBlobShadowJP
English Translation
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
中国翻译
한국어
Interested in the Unreal Engine?
Visit the Unreal Technology site.
Looking for jobs and company info?
Check out the Epic games site.
Questions about support via UDN?
Contact the UDN Staff
Unreal Development Kit ホーム > Unreal Development Kit Gems > 単純なブロブ シャドウの作成
単純なブロブ シャドウの作成
2011年3月に UDK について最終テスト実施済み
PC 対応
概要
デカール マテリアルの配置
- Constant Clamp (コンスタント クランプ) - これより前のすべての計算によってもたらされた出力値が、0.f から 1.f の範囲に収まるようにするために使用されます。調整 (modulation) は、この範囲から外れた値にも有効ですが、この場合は望ましくありません。
- Add (追加) - オパシティ テクスチャ マスクを、補完されたシャドウカラーに追加するために使用されます。シャドウの「反転」マスクを追加すると、シャドウの一部になっていない領域に 1.f が加わります。このようにして、値がクランプされている場合、値が 1.f になり、デカールがレンダリングされたときに見えなくなります。
- 'Opacity Texture' (オパシティ テクスチャ) - シャドウマスクを定義します。必ずしも円形のシャドウを使用する必要はありません。他の静的シャドウの形を作成することができます。
- Linear Interpolation (線形補間) - (1, 1, 1, 1) と ShadowColor の間を線形補間します。ShadowColor の Alpha 出力を利用することによって、シャドウの明暗を制御することができます。
- Constant [1] (定数) - 線形補間関数のパラメータの 1 つです。シャドウの最大明度を定義します。(この場合は 1 です)。
- 'Shadow Color' (シャドウカラー) - シャドウのカラーを定義します。必ずしも、黒のカラーを使用する必要はありません。
関連テーマ
デカール マテリアルのテスト
- Content Browser (コンテンツブラウザ) の中からデカール マテリアルを選択します。
- ワールド ビューポート内で、デカールを配置したいところを右クリックすると、コンテクストメニューが開きます。
- Add Movable Decal:(動くデカールを追加する) か Add Decal:(デカールを追加する) のどちらかを左クリックします。
関連テーマ
デカール マテリアル インスタンスの作成と変更
以下のダイアログボックスが現れます。マテリアル インスタンスを保存する場所と名前を入力します。
次において、変更したいプロパティの左側にあるチェックボックスをクリックします。これらのチェックボックスによって、オーバーライドされるプロパティが決まります。適切な値に変更します。
前の章に書かれていた手順に従って、この新たなデカール マテリアル インスタンスをテストしてください。
関連テーマ
簡単なブロブ シャドウをアクタに追加する
アタッチメント
この例では、「Unreal」エディタによって提供されているアタッチメント ツールを使用して、簡単なブロブシャドウを補間されたアクタに付属させます。 移動可能なデカールアクタを付属させるアクタを追加します。この例では、球体の補間アクタを追加しました。
[Attachments] (アタッチメント) ウィンドウを開きます。デフォルトでは、次の場所にあります。先に見たようにコンテンツブラウザには付属していません。
ビューポートで付属させたいアクタを選択し、[Attachments] ウィンドウ内で右クリックし、Add Selected Actors (選択したアクタを追加する) をクリックします。
InterpActor_0 (または、デカールを付属させたいアクタ) の右側にある小さな黒いボックスのどちらかをクリックしてホールドし、さらにそれをドラッグして、DecalActorMovable_1 (または、移動可能なデカールアクタ) の左側にある小さな黒いボックスの上でリリースします。これで、移動可能なデカール アクタを付属させて、球体のメッシュとともに動くようにすることができました。
関連するテーマ
Kismet
ワールドで移動可能なデカール アクタを選択します。ツールバー上にある
コンテクストメニューを使って Player Spawned (プレイヤーのスポーン) イベントを追加します。これによって、プレイヤーがスポーンしたときに Kismet が探知できるようになります。それにより、インスティゲータ (誘因となる存在 : この場合、プレイヤーのポーン) をオブジェクト変数に出力することができます。
次に、コンテクストメニューから Teleport (テレポート) アクションを追加します。プレイヤーが最初にスポーンしたときには、移動可能なデカール アクタはプレイヤーのポーンの元にありません。したがって、移動可能なデカール アクタを、プレイヤーのポーンと同じ場所までテレポートさせます。
Update Rotation (回転を更新) を false にセットします。移動可能なデカール アクタの回転は、変更する必要がありません。
次に、コンテクストメニューからオブジェクト変数を追加します。これによって、プレイヤーのポーンの参照を Kismet が保存できるようになります。(この参照は後に使用することができます)。
Kismet ノードをすべて接続します。そのためには、小さなボックスまたは三角形をクリックして、適切な目標までドラッグします。プレイヤーがスポーンすると、Player Spawned (プレイヤーのスポーン) イベントがアクティベートされ、このインスティゲータ (誘因となる存在) を空のオブジェクト変数に出力します。次に Teleport (テレポート) Kismet ノードが実行され、オブジェクト変数の中に保存されているプレイヤーのポーンと同じ場所まで、移動可能なデカールアクタがテレポートされます。これによって、プレイヤーがスポーンしたときに、移動可能なデカールアクタを適切な場所に配置することができるようになります。
コンテクストメニューを使って Attach to Actor (アクタに付属させる) アクションを追加します。この Kismet ノードは、あるアクタを他のアクタに付属させるものです。この例では、移動可能なデカールアクタがプレイヤーのポーンに付属させられます。
要素のすべてを接続します。先の説明への追加となりますが、Teleport Kismet ノードが実行されると、この Attach Kismet ノードが実行されることになります。この Kismet ノードは、移動可能なデカール アクタをプレイヤーのポーンに付属させます。
レベルを起動すると、あなたが動くにしたがって、赤いデカールが付いていくのが分かります。
関連するテーマ
Unrealscript
class DecalActorSpawnable extends DecalActorMovable;
defaultproperties
{
// bStatic and bNoDelete prevent actors from being spawned at run time.
bStatic=false
bNoDelete=false
}
class SimpleBlobShadowPawn extends UTPawn
placeable;
// The spawned simple blob shadow.
var PrivateWrite DecalActorSpawnable SimpleBlobShadowDecal;
// A reference to the archetyped simple blob shadow actor that we will be spawning.
var(Shadow) const DecalActorSpawnable SimpleBlobShadowDecalArchetype;
simulated function PostBeginPlay()
{
local MaterialInstanceConstant DecalMaterialInstanceConstant;
Super.PostBeginPlay();
// Dedicated servers do not need to spawn the simple blob shadow
if (WorldInfo.NetMode == NM_DedicatedServer)
{
return;
}
// No blob shadow archetype
// The archetype was not the correct class type
if (SimpleBlobShadowDecalArchetype == None)
{
return;
}
// Spawn the simple blob shadow actor
SimpleBlobShadowDecal = Spawn(SimpleBlobShadowDecalArchetype.Class, Self,, Location, Rot(49152, 0, 0), SimpleBlobShadowDecalArchetype);
if (SimpleBlobShadowDecal != None)
{
if (SimpleBlobShadowDecal.Decal != None && SimpleBlobShadowDecal.Decal.GetDecalMaterial() != None)
{
// Create a new material instance so that we can alter the parameters dynamically
DecalMaterialInstanceConstant = new class'MaterialInstanceConstant';
if (DecalMaterialInstanceConstant != None)
{
DecalMaterialInstanceConstant.SetParent(SimpleBlobShadowDecal.Decal.GetDecalMaterial());
SimpleBlobShadowDecal.Decal.SetDecalMaterial(DecalMaterialInstanceConstant);
}
}
// Attach the simple blob shadow to myself
Attach(SimpleBlobShadowDecal);
}
}
defaultproperties
{
}
- アクタ (UTPawn はこれのサブクラスです) が最初にスポーンされると、PostBeginPlay が実行されます。
- このアクタが専用サーバーにある場合は中止します。専用サーバーでは、ブロブシャドウをスポーンする必要がありません。
- シャドウのアーキタイプが設定されていない場合は中止します。
- アーキタイプのインスタンスを下向きにスポーンします。インスタンスを変数に割り当てることによって、追跡できるようになります。
- デフォルト コンポーネントがデカール マテリアルをもっているか否かを確認します。
- もっている場合は、新たなマテリアル インスタンスが作成され、その親を当該のデカール マテリアルに割り当てます。これによって、他に影響を与えることなく、プロパティを改変することができるようになります。
- スポーンしたアーキタイプを自身 (SimpleBlobShadowPawn) に付属させます。
