Zum Hauptinhalt springen

Modelle

Einführung

Studio enthält mehrere integrierte Primitive, wie z. B. Kugeln, Boxen und Ebenen, die schnell angepasst und im Editor positioniert werden können. Für kompliziertere Entwürfe unterstützt Studio externe 3D-Modelle in den Formaten GLTF/GLB, die sich ideal für webbasierte 3D-Inhalte eignen, sowie FBX-Dateien, die nach dem Hochladen in GLB konvertiert werden können. Dieses Setup ermöglicht eine breite Palette von 3D-Elementen, egal ob es sich um stromlinienförmige oder sehr detaillierte virtuelle Szenen handelt.

Primitive

Die folgenden eingebauten Primitive sind verfügbar:

TypAttribute
SphereGeometry{radius}
BoxGeometry{width, height, depth}
PlaneGeometry{width, height}
CapsuleGeometry{radius, height}
ConeGeometry{radius, height}
CylinderGeometry{radius, height}
PolyhedronGeometry{radius}
CircleGeometry{radius}
RingGeometry{innerRadius, outerRadius}

Hinzufügen eines Primitivs

Ein 3D-Modell kann dem Objekt über die Studio-Schnittstelle über die Mesh-Komponente oder im Code hinzugefügt werden. Das Hinzufügen in Studio erfolgt über die Schaltfläche (+) in der Hierarchie oder durch Hinzufügen von Geometrie zu einer benutzerdefinierten Komponente auf dem Objekt.

Beispiel

ecs.SphereGeometry.set(world, eid, {radius: 5})

GLTF-Komponente

Unterstützte Formate

GLTF und GLB

GLTF- und GLB-Modelle werden unterstützt und sind ideal für die Arbeit mit 3D im Web.

FBX

FBX-Upload wird unterstützt, allerdings müssen die Modelle in 8th Wall Studio nach dem Upload in GLB konvertiert werden. **Vergewissern Sie sich, dass die Texturen in die FBX-Datei eingebettet sind, bevor Sie sie in GLB konvertieren.

fbx-to-glb-converter.png

Einstellung eines Modells

Das folgende Beispiel zeigt, wie ein GLTF oder GLB auf eine Entität zur Laufzeit gesetzt werden kann.

Infos

Diese Methode erfordert, dass Sie Ihr benutzerdefiniertes Modell aus den Komponenteneigenschaften auswählen, sobald die Komponente auf Ihre Entität angewendet wird

import * as ecs from '@8thwall/ecs'

ecs.registerComponent({
name: 'loaded-model',
schema: {
// @asset
model: ecs.string,
},
add: (world, component) => {
ecs.GltfModel.set(world, eid, {
url: component.schema.model,
})
}
})

Einstellen der Modelleigenschaften

Modell-Eigenschaften

Eigenschaften anzeigen hier.

Beispiel

Das folgende Beispiel zeigt, wie man ein Model auf eine Entität zur Laufzeit setzt.

import * as ecs from '@8thwall/ecs'

ecs.registerComponent({
name: 'loaded-model',
schema: {
// @asset
model: ecs.string,
},
add: (world, component) => {
ecs.GltfModel.set(world, eid, {
url: component.schema.model,
animationClip: 'clip1',
loop: true,
paused: false,
time: 0,
timeScale: 1,
})
}
})