SpecialMesh

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

Class.SpecialMesh オブジェクトは、BasePart にメッシュを適用します。MeshType プロパティにより、メッシュのタイプが 1>Class.SpecialMesh.MeshType1> になります。複数のオプションが利用可能です。

  • レンガ - レンガの形状、BlockMesh に相当
  • シリンダー - シリンダー、Part と同じ、Part.Shape の「シリンダー」
  • FileMesh - ユーザーがアップロードしたメッシュ、теクスチャを FileMesh に適用できるようになる
  • - キャラクターの頭の形状
  • 球形状の球体 - 球体の形状に似た球体。PartPart.Shape の「Ball」を自由にサイズ変更できますが、すべての軸で自由にサイズ変更できます
  • ウェッジ - ウェッジ形状、WedgePart と同じ
  • 胴体 - サボりのあるサイドで、代替済みになります

注意、SpecialMesh.MeshType の各 DataModelMesh.Scale は、DataModelMesh.Scale を使用しているときに異なります。この情報については、2>Class.DataModelMesh.Scale2> のページを参照してください。スペシャルメッシュオブジェクトは、5>Class.DataModel

特殊メッシュを使用すると、部品の外観のみが変更されます。メッシュのジオメトリは変更されません。たとえ、メッシュのジオメトリが取得されないため、キャラクターはメッシュの上を正しく歩けません。たとえ、メッシュのジオメトリが取得されないため、キャラクターはメッシュの上を正しく歩けません。

スペシャルメッシュ vs メッシュパーツ

現在、開発者が作成したメッシュを使用する方法は 2つあります。特別なメッシュを使用している SpecialMesh.FileTypeMeshPart に設定したり、MeshPart を使用している。ただし、メッシュオブジェクト全体において、 2>Class.MeshPart2> オ

  • BasePart.Material は、MeshPart を使用しているとメッシュ上で正しく表示され、Class.BasePart を使用していると、特殊メッシュではなくメッシュ上で正しく表示されます
  • MeshParts には、MeshPart.CollisionFidelity プロパティが含まれています。これにより、MeshPart の衝突モデルがメッシュのジオメトリに似て設定できます。一方、0> Class.BasePart|BaseParts0> の衝突モデ
  • Class.MeshPart のメッシュは、Size プロパティのメッシュは、MeshPart のメッシュは、1>SpecialMesh1> のメッシュは、4>Class.MeshPart4> のメッシュは、7>Class.MeshPart7> のメッシュは、MeshPart0> のメッシュは、3>Class.MeshPart3> のメッシュは、<
  • SpecialMesh オブジェクトには、OffsetScale プロパティが含まれていますが、MeshParts は含まれていません
  • Class.FileMesh.MeshId|MeshId プロパティの SpecialMesh は、実行時に Script または 1>Class.LocalScript1> によって変更されます。4>Class.MeshPart.MeshId|MeshId4> プロパティの 7>Class.Script

コードサンプル

Mesh Offset and Scale

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.Parent = part
-- selection box to show part extents
local box = Instance.new("SelectionBox")
box.Adornee = part
box.Parent = part
-- parent part to workspace
part.Parent = workspace
-- animate offset and scale with a tween
local tween = TweenService:Create(
mesh,
TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out, -1, true, 0),
{ Scale = Vector3.new(1, 1, 1), Offset = Vector3.new(0, 3, 0) }
)
tween:Play()
Mesh VertexColor

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

概要

プロパティ

FileMesh から継承した プロパティ
  • MeshId:ContentId
    並列読み取り

    メッシュID は、表示するメッシュのコンテンツ ID です。

  • TextureId:ContentId
    並列読み取り

    テクスチャID は、メッシュに適用するテクスチャのコンテンツ ID です。

DataModelMesh から継承した プロパティ
  • 並列読み取り

    メッシュのオフセットは、メッシュが表示される BasePart.PositionBasePart から相対位置を決定します。

  • 並列読み取り

    メッシュのスケールは、メッシュのオリジナルサイズに対するメッシュのサイズを決定します。

  • 並列読み取り

    Class.FileMesh.TextureId を使用しているメッシュのテクスチャの色を変更します。

プロパティ

並列読み取り

Class.SpecialMesh オブジェクトが適用されるメッシュは、BasePart によります。メッシュタイプのプロパティは、複数のオプションがあります。

  • レンガ - レンガの形状、BlockMesh に相当
  • シリンダー - シリンダー、Part と同じ、Part.Shape の「シリンダー」
  • FileMesh - ユーザーがアップロードしたメッシュ、теクスチャを FileMesh に適用できるようになる
  • - キャラクターの頭の形状
  • 球形状の球体 - 球体の形状に似た球体。PartPart.Shape の「Ball」を自由にサイズ変更できますが、すべての軸で自由にサイズ変更できます
  • ウェッジ - ウェッジ形状、WedgePart と同じ
  • 胴体 - サボりのあるサイドで、代替済みになります

メッシュタイプごとに、DataModelMesh.Scale を使用すると、サイズが変わります。詳細は、DataModelMesh.Scale ページを参照してください。

コードサンプル

Mesh VertexColor

local TweenService = game:GetService("TweenService")
-- instance a part and a mesh
local part = Instance.new("Part")
part.Size = Vector3.new(4, 8, 4)
part.Position = Vector3.new(0, 4, 0)
part.Anchored = true
part.CanCollide = false
local mesh = Instance.new("SpecialMesh")
mesh.MeshType = Enum.MeshType.FileMesh
mesh.MeshId = "rbxassetid://1086413449"
mesh.TextureId = "rbxassetid://1461576423"
mesh.Offset = Vector3.new(0, 0, 0)
mesh.Scale = Vector3.new(4, 4, 4)
mesh.VertexColor = Vector3.new(1, 1, 1)
mesh.Parent = part
-- parent part to workspace
part.Parent = workspace
-- create tweens
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Linear, Enum.EasingDirection.Out)
local blackTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 0) })
local redTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 0, 0) })
local greenTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 1, 0) })
local blueTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(0, 0, 1) })
local resetTween = TweenService:Create(mesh, tweenInfo, { VertexColor = Vector3.new(1, 1, 1) })
-- animate
while true do
blackTween:Play()
blackTween.Completed:Wait()
redTween:Play()
redTween.Completed:Wait()
greenTween:Play()
greenTween.Completed:Wait()
blueTween:Play()
blueTween.Completed:Wait()
resetTween:Play()
resetTween.Completed:Wait()
task.wait()
end

方法

イベント