デカールオブジェクトは、BasePartの顔に画像を適用するオブジェクトです。
デカールはどうして機能しますか?
デカールは、BasePart に適用される画像を親にします。この画像の適用される表面は、FaceInstance.Face プロパティによります。デカールのサイズは、BasePart.Size のサイズと顔のアセプト比率を変更す
デカールが適用される画像は、Decal.Texture プロパティで決定されます。画像は、コミュニティガイドラインに従ってアップロードできます。画像をアップロードする方法については、テクスチャとデカールを参照してください。
デカールの代替
デカールはさまざまなアプリケーションがありますが、いくつかの場合、開発者は次のクラスの 1 つを代わりに選択することがあります。
- 繰り返しのタイルテクスチャの場合、Texture オブジェクトを使用する必要があります
- GUI 要素を適用するには、SurfaceGui オブジェクトが使用される必要があります
- 画像の照明の効果を変更する必要がある場合は、SurfaceGui オブジェクトを使用する必要があります
コードサンプル
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
概要
プロパティ
Class.Decal の Decal の色。
デカールの Decal.Transparency プロパティの乗数として機能します。エフェクトはローカルプレイヤーにのみ表示されます。
Class.Decal によって適用される画像の Class.Id。
0 が完全に不透明で 1 が完全に透明な Decal の透明度を決めます。
複数のデカールが同じ顔を持つときのレンダリングオーダーを決めます。
オブジェクトが置かれるレンガの顔を設定します。
プロパティ
Color3
Class.Decal の Decal の色。
開発者は、このプロパティがデカールの色ではなく、デカールの色を設定するだけであることに注意する必要があります。これは、Decal に関連付けられた画像が元々白であった場合、色を変更することはできません。
ユニオンで Color3 の RGB プロパティを減少することで、ディザイナーはデカールをより暗くすることができます。
コードサンプル
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=1145367640" -- white circle
decal.Parent = part
part.Parent = workspace
local redTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(1, 0, 0) }
)
local greenTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 1, 0) }
)
local blueTween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out),
{ Color3 = Color3.new(0, 0, 1) }
)
while true do
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
end
LocalTransparencyModifier
デカールの Decal.Transparency プロパティの乗数として機能します。エフェクトは Players.LocalPlayer にのみ表示されます。
このプロパティは、Decal.Transparency が別のスクリプトによって設定されている場合に使用する必要があります。Decal.Transparency のメリットは、オリジナルの Decal の 1> Class.Decal1> を変更することなく変更できることです。
Class.Decal がローカル透明度モジュールを 1 に設定すると、Decal.Transparency は、元の透明度にかかわらず完全に不可視になります。Class.Decal.Transparency が 0 に設定されると、デカールのレンダリング透明度が 1>Class.Decal.Transparency1> の値に一致します。この式は次のとおり
Displayed Transparency = Transparency + ((1 - Transparency) * LocalTransparencyModifier)
注意、このプロパティはクライアントにのみ使用する必要があり、サーバーには複製されません。
For a variant of this property for BaseParts , see BasePart.LocalTransparencyModifier .
Texture
Class.Decal によって適用される画像のコンテンツ ID。
デカールをアップロードするには?
画像は、コミュニティガイドラインに従っていることを Roblox にアップロードできます。画像のアップロード方法については、「テクスチャとデカール」を参照してください。
デカールのコンテンツID を見つけるには?
Class.Sound や Animation オブジェクトとは違い、デカールのコンテンツ ID は、URL の番号 と同じではありません。デカールのコンテンツ ID を見つけるには、2つの主要な方法があります:
- Roblox Studio のテクスチャプロパティに URL を入れます。Roblox は自動的にプロパティを正しいコンテンツ ID に更新します。これは、Roblox Studio でのみ機能し、スクリプトやゲームが実行されている間は実行できません。
- ゲームにデカールを挿入することは通常、「マイデカール」のツールボックスで行われます。コンテンツ ID は、挿入されたデカールによって見つけることができます。注意、 InsertService:LoadAsset() は、開発者がこのメソッドを自動化したい場合にも使用できます。
コードサンプル
-- create part
local part = Instance.new("Part")
part.Size = Vector3.new(5, 1, 5)
part.Position = Vector3.new(0, 0.5, 0)
part.Anchored = true
part.TopSurface = Enum.SurfaceType.Smooth
part.BrickColor = BrickColor.new("Toothpaste")
-- create decal
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Top
decal.Parent = part
-- create sound
local sound = Instance.new("Sound")
sound.SoundId = "rbxasset://sounds/uuhhh.mp3" -- oof
sound.Parent = part
-- define faces
local happyFace = "http://www.roblox.com/asset/?id=26424652"
local sadFace = "http://www.roblox.com/asset/?id=147144198"
decal.Texture = happyFace
-- touched event
local cooldown = false
part.Touched:Connect(function(hit)
if not cooldown then
if hit and hit.Parent then
cooldown = true
sound:Play()
decal.Texture = sadFace
task.wait(1)
decal.Texture = happyFace
task.wait(0.2)
cooldown = false
end
end
end)
-- add to workspace
part.Parent = workspace
Transparency
0 が完全に不透明で 1 が完全に透明な Decal の透明度を決めます。
注、Decals は、Roblox にアップロードされたオリジナル画像ファイルの透明度も尊重します。これは、透明度を変更することができますが、 透明度 プロパティを使用することなく、Roblox にアップロードする前に透明度を変更できることを意味します。
Decal.LocalTransparencyModifier は、デカールの透明度を変更する可能性のある他のスクリプトに対して、デカールの透明度を増加させる減算子の役割を果たし、プレイヤーのキャラクターには使用されるべきです。
For BaseParts , see BasePart.Transparency .
コードサンプル
local TweenService = game:GetService("TweenService")
local part = Instance.new("Part")
part.Size = Vector3.new(10, 10, 1)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Transparency = 1
local decal = Instance.new("Decal")
decal.Face = Enum.NormalId.Front
decal.Texture = "http://www.roblox.com/asset/?id=699259085" -- roblox logo
decal.Parent = part
part.Parent = workspace
local tween = TweenService:Create(
decal,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true),
{ Transparency = 1 }
)
tween:Play()
ZIndex
ZIndex は、同じ Face のデカールが BasePart のレンダリング優先順位の順に表示されることを決定します。デカールは、最も優先順位の高い値でレンダリングされます。つまり、ZIndex のより高い値のデカ
有効な値の範囲は -MAX_INT から MAX_INT 、含まれる (2,147,483,647 または (2^31 - 1)) です。未来にデカールをレイヤーする必要があるかどうかはわからない場合は、100 を含む 100 倍の値を使用するこ
参照してください:
- GuiObject.ZIndex 、同様の動作を持つプロパティですが、GUI 要素の場合