DataModelMesh
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
DataModelMesh は、メッシュクラスを継承する抽象クラスです。
メッシュクラスは、BaseParts に親を付けると、パーツの外観を事前のメッシュに変更するオブジェクトです。注意、メッシュクラスはパーツの外観だけを変更し、パーツの物理/衝突境界は変更しません。MeshParts を開発
Class.MeshPart と CharacterMesh クラスは、DataModelMesh から継承されません。
概要
プロパティ
メッシュのオフセットは、メッシュが表示される BasePart.Position の BasePart から相対位置を決定します。
メッシュのスケールは、メッシュのオリジナルサイズに対するメッシュのサイズを決定します。
Class.FileMesh.TextureId を使用しているメッシュのテクスチャの色を変更します。
プロパティ
Offset
メッシュのオフセットは、メッシュが表示される BasePart.Position の BasePart からの距離を決定します。
メッシュオフセットを使用する
オフセットプロパティは、メッシュがレンダリングされる相対位置を変更します。たとえば、オフセットの 0、5、0 は、メッシュを BasePart の位置の 5 スタッド上に表示させます。
Class.BasePart の位置は変更されません。つまり、パーツの物理コリジョンボックスは同じ場所に残ります。これは、下の画像で示すように、緑のアウトライン (a SelectionBox ) がパーツの BasePart の内容を示していることで示されています。
メッシュオフセットの他の使用
メッシュオフセットプロパティには、いくつかの興味深い使用があります。
- オフセットと DataModelMesh.Scale は、TweenService を使用して、エンジンが任意の物理/衝突計算を行う必要がないため、比較的低価格でアニメーション化できます。
- メッシュとその衝突範囲の間の関係を変更する (BasePart によって決定)
コードサンプル
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()
Scale
メッシュのスケールは、メッシュのオリジナルサイズに対するメッシュのサイズを決定します。
メッシュスケールの使用
スケールプロパティは、使用されているメッシュタイプに応じて若干異なります。BasePart のサイズは、パーツの物理コリジョンボックスが変更されないことに注意してください。
- SpecialMesh オブジェクトに SpecialMesh.FileType を設定して、Roblox にアップロードされたときにメッシュのオリジナルサイズに対してファイルメッシュのスケールをスケールするようにしまRoblox(ロブロックス)
- BlockMesh オブジェクトまたは SpecialMesh オブジェクトに SpecialMesh.FileType を設定して、「ブリック」、「ウェッジ」または「スフィア」のスケールを、0> Class.BasePart.Size0> の親に対して単一に設定します。
- Class.CylinderMesh オブジェクトまたは SpecialMesh オブジェクトに SpecialMesh.FileType を設定して、親のサイズの 0> Class.BasePart.Size0> に対して、CylinderMesh3>
- SpecialMesh オブジェクトに SpecialMesh.FileType を設定しているが、現在 頭 にスケールします。開発者はこれを自分のプランを変更するための計画として使用しないでください
- SpecialMesh オブジェクトに SpecialMesh.FileType を設定して、トールソスケールを非標準的な方法でスケールします。開発者はこれを使用することを避けるべきです。このメッシュタイプを非推奨にするプランが開発されています。
メッシュスケールのデモ
上記の動作は、次のデモストレーション画像に示すことができます。
「レンガ」、「ウェッジ」、「球」メッシュに対するパーツサイズに対する直線スケール。
「ファイルメッシュ」メッシュのオリジナルのアップロードされたメッシュに対する比例スケーリング
「シリンダー」メッシュの拡張に制限された非ユニフォームスケーリング
メッシュスケールの他の使用法
メッシュオフセットプロパティには、いくつかの興味深い使用があります。
- DataModelMesh.Offset とスケールは、エンジンが任意の物理/衝突計算を行う必要がないため、TweenService を使用して、比較的低価格でアニメーションできます。 Class.BasePart が変更されていないため。
- メッシュとその衝突範囲の間の関係を変更する (BasePart によって決定)
コードサンプル
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()