SpecialMesh

非推奨を表示

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

オブジェクトは、 プロパティに応じてメッシュを適用します。複数のオプションが利用可能です。

  • レンガ - ブロックの形状、BlockMeshと同等
  • シリンダー - シリンダーと同じで、「シリンダー」の Part と同じ Part.Shape のシリンダー
  • ファイルメッシュ - ユーザーがメッシュをアップロードし、テクスチャを適用するために使用できる FileMesh プロパティと同等の FileMesh.TextureId プロパティ
  • - キャラクターヘッドの形状
  • 球形 - 球形の形状、「ボール」の と似ていますが、すべての軸で自由にサイズを変更できます
  • ウェッジ - ウェッジ形状、WedgePart
  • トルソ - 傾斜面のあるブロック、廃止予定

注: それぞれの SpecialMesh.MeshType は、DataModelMesh.Scale を使用すると、それぞれ異なるスケールで拡大します。この情報については、DataModelMesh.Scale のページを参照してください。特別なメッシュオブジェクトも、DataModelMesh.Offset プロパティを露出します。

特別なメッシュを使用するときは、パーツの外観だけが変更されることを覚えておくことが重要です。パーツの衝突モデルは変更されません。たとえば、キャラクターはメッシュのジオメトリが考アカウントされていないため、メッシュ上を正しく歩くことができません。

特別メッシュ vs メッシュパーツ

現在、開発者が作成したメッシュを使用する方法は 2つあります。彼らは SpecialMesh.FileType に設定された「ファイルメッシュ」または MeshPart を使用して特別なメッシュを使用しています。全体的には、MeshPart オブジェクトが特別なメッシュを上書きしたものの、開発者が知っておくべきいくつかの違いがあります。

  • BasePart.Material は、MeshPart を使用するとメッシュに正しく表示され、特別なメッシュを使用すると表示されません
  • MeshParts は、MeshPart.CollisionFidelity プロパティを含み、つまり MeshPart の衝突モデルがメッシュの幾何学に似せることができます。一方、特別なメッシュオブジェクトは、親の BaseParts 衝突モデルを使用します
  • The mesh of a MeshPart はすべての軸に対して Size プロパティの MeshPart に基づいてメッシュをスケールしますが、特別なメッシュのメッシュはありません
  • 特別なメッシュオブジェクトには、Offset および Scale プロパティが含まれているのに対して、MeshParts は含まれていません
  • MeshId プロパティの SpecialMesh は、ランタイム中に Script または LocalScript で変更できます。The MeshId プロパティ of a MeshPart はできません。

コードサンプル

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.Scale and DataModelMesh.Offset properties of the SpecialMesh are then animated using TweenService.

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()

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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
    並列読み取り

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

  • TextureId:ContentId
    並列読み取り

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

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

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

  • 並列読み取り

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

  • 並列読み取り

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

プロパティ

並列読み取り

SpecialMesh オブジェクトが適用するメッシュは、BasePart に依存します。複数のオプションが利用可能です。

  • レンガ - ブロックの形状、BlockMeshと同等
  • シリンダー - シリンダーと同じで、「シリンダー」の Part と同じ Part.Shape のシリンダー
  • ファイルメッシュ - ユーザーがメッシュをアップロードし、テクスチャを適用するために使用できる FileMesh プロパティと同等の FileMesh.TextureId プロパティ
  • - キャラクターヘッドの形状
  • 球形 - 球形の形状、「ボール」の と似ていますが、すべての軸で自由にサイズを変更できます
  • ウェッジ - ウェッジ形状、WedgePart
  • トルソ - 傾斜面のあるブロック、廃止予定

注: メッシュタイプそれぞれは、DataModelMesh.Scale を使用すると、それぞれ異なるスケールで拡大します。詳細は、DataModelMesh.Scale のページを参照してください。

コードサンプル

In this code sample a BasePart is instanced with a SpecialMesh. The DataModelMesh.VertexColor property of the SpecialMesh is then animated using TweenService.

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

方法

イベント