mirror of
https://github.com/misskey-dev/misskey.git
synced 2026-05-27 01:24:18 +02:00
clean uv
This commit is contained in:
Binary file not shown.
Binary file not shown.
@@ -198,10 +198,12 @@ class ModelManager {
|
|||||||
public bakeExcludeMeshes: BABYLON.Mesh[] = [];
|
public bakeExcludeMeshes: BABYLON.Mesh[] = [];
|
||||||
private originalMeshes: BABYLON.Mesh[] = [];
|
private originalMeshes: BABYLON.Mesh[] = [];
|
||||||
private bakedMeshes: BABYLON.Mesh[] = [];
|
private bakedMeshes: BABYLON.Mesh[] = [];
|
||||||
|
private hasTexture: boolean;
|
||||||
|
|
||||||
constructor(root: BABYLON.Mesh, originalMeshes: BABYLON.Mesh[], bakedCallback: (() => void) | null = null) {
|
constructor(root: BABYLON.Mesh, originalMeshes: BABYLON.Mesh[], hasTexture: boolean, bakedCallback: (() => void) | null = null) {
|
||||||
this.root = root;
|
this.root = root;
|
||||||
this.originalMeshes = originalMeshes;
|
this.originalMeshes = originalMeshes;
|
||||||
|
this.hasTexture = hasTexture;
|
||||||
this.bakedCallback = bakedCallback;
|
this.bakedCallback = bakedCallback;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -283,16 +285,17 @@ class ModelManager {
|
|||||||
}
|
}
|
||||||
//newMesh.bakeCurrentTransformIntoVertices();
|
//newMesh.bakeCurrentTransformIntoVertices();
|
||||||
|
|
||||||
// TODO: 必要な時だけやる
|
if (this.hasTexture) {
|
||||||
if (newMesh.getVerticesData(BABYLON.VertexBuffer.UVKind) == null) {
|
if (newMesh.getVerticesData(BABYLON.VertexBuffer.UVKind) == null) {
|
||||||
const vertexCount = newMesh.getTotalVertices();
|
const vertexCount = newMesh.getTotalVertices();
|
||||||
const uvs = new Array(vertexCount * 2).fill(0);
|
const uvs = new Array(vertexCount * 2).fill(0);
|
||||||
newMesh.setVerticesData(BABYLON.VertexBuffer.UVKind, uvs, false, 2);
|
newMesh.setVerticesData(BABYLON.VertexBuffer.UVKind, uvs, false, 2);
|
||||||
}
|
}
|
||||||
if (newMesh.getVerticesData(BABYLON.VertexBuffer.UV2Kind) == null) {
|
if (newMesh.getVerticesData(BABYLON.VertexBuffer.UV2Kind) == null) {
|
||||||
const vertexCount = newMesh.getTotalVertices();
|
const vertexCount = newMesh.getTotalVertices();
|
||||||
const uvs = new Array(vertexCount * 2).fill(0);
|
const uvs = new Array(vertexCount * 2).fill(0);
|
||||||
newMesh.setVerticesData(BABYLON.VertexBuffer.UV2Kind, uvs, false, 2);
|
newMesh.setVerticesData(BABYLON.VertexBuffer.UV2Kind, uvs, false, 2);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
toMerge.push(newMesh);
|
toMerge.push(newMesh);
|
||||||
@@ -339,6 +342,7 @@ export type ObjectDef<OpSc extends OptionsSchema = OptionsSchema> = {
|
|||||||
};
|
};
|
||||||
placement: 'top' | 'side' | 'bottom' | 'wall' | 'ceiling' | 'floor';
|
placement: 'top' | 'side' | 'bottom' | 'wall' | 'ceiling' | 'floor';
|
||||||
hasCollisions?: boolean;
|
hasCollisions?: boolean;
|
||||||
|
hasTexture?: boolean;
|
||||||
//groupingMeshes: string[]; // multi-materialなメッシュは複数のメッシュに分割されるが、それだと不便な場合に追加の親メッシュでグルーピングするための指定
|
//groupingMeshes: string[]; // multi-materialなメッシュは複数のメッシュに分割されるが、それだと不便な場合に追加の親メッシュでグルーピングするための指定
|
||||||
isChair?: boolean;
|
isChair?: boolean;
|
||||||
treatLoaderResult?: (loaderResult: BABYLON.AssetContainer) => void;
|
treatLoaderResult?: (loaderResult: BABYLON.AssetContainer) => void;
|
||||||
@@ -1148,6 +1152,20 @@ export class RoomEngine extends EventEmitter<RoomEngineEvents> {
|
|||||||
// babylonによって自動で追加される右手系変換用ノード
|
// babylonによって自動で追加される右手系変換用ノード
|
||||||
let subRoot = loaderResult.meshes[0] as BABYLON.TransformNode;
|
let subRoot = loaderResult.meshes[0] as BABYLON.TransformNode;
|
||||||
|
|
||||||
|
// 不要なUVを掃除
|
||||||
|
if (!def.hasTexture) {
|
||||||
|
for (const m of loaderResult.meshes) {
|
||||||
|
if (m.geometry != null) {
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UVKind);
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UV2Kind);
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UV3Kind);
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UV4Kind);
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UV5Kind);
|
||||||
|
m.geometry.removeVerticesData(BABYLON.VertexBuffer.UV6Kind);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (BAKE_TRANSFORM) {
|
if (BAKE_TRANSFORM) {
|
||||||
subRoot.scaling = new BABYLON.Vector3(1, 1, 1);
|
subRoot.scaling = new BABYLON.Vector3(1, 1, 1);
|
||||||
subRoot.rotationQuaternion = null;
|
subRoot.rotationQuaternion = null;
|
||||||
@@ -1309,7 +1327,7 @@ export class RoomEngine extends EventEmitter<RoomEngineEvents> {
|
|||||||
root.rotation = args.rotation.clone();
|
root.rotation = args.rotation.clone();
|
||||||
root.metadata = metadata;
|
root.metadata = metadata;
|
||||||
|
|
||||||
const model = new ModelManager(BAKE_TRANSFORM ? root : subRoot, loaderResult.meshes.filter(m => m.name !== '__root__'), (meshes) => {
|
const model = new ModelManager(BAKE_TRANSFORM ? root : subRoot, loaderResult.meshes.filter(m => m.name !== '__root__'), def.hasTexture, (meshes) => {
|
||||||
if (this.selected?.objectId === args.id) {
|
if (this.selected?.objectId === args.id) {
|
||||||
this.highlightMeshes(meshes);
|
this.highlightMeshes(meshes);
|
||||||
}
|
}
|
||||||
@@ -2069,7 +2087,7 @@ export class RoomObjectPreviewEngine {
|
|||||||
|
|
||||||
root.addChild(subRoot);
|
root.addChild(subRoot);
|
||||||
|
|
||||||
const model = new ModelManager(subRoot, loaderResult.meshes.filter(m => m !== subRoot), (meshes) => {
|
const model = new ModelManager(subRoot, loaderResult.meshes.filter(m => m !== subRoot), def.hasTexture, (meshes) => {
|
||||||
for (const m of meshes) {
|
for (const m of meshes) {
|
||||||
const mesh = m;
|
const mesh = m;
|
||||||
|
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export const allInOnePc = defineObject({
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ room, scene, options, model }) => {
|
createInstance: async ({ room, scene, options, model }) => {
|
||||||
const matrix = model.root.getWorldMatrix(true);
|
const matrix = model.root.getWorldMatrix(true);
|
||||||
const scale = new BABYLON.Vector3();
|
const scale = new BABYLON.Vector3();
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ export const aromaReedDiffuser = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model }) => {
|
createInstance: ({ options, model }) => {
|
||||||
const bottleMesh = model.findMesh('__X_BOTTLE__');
|
const bottleMesh = model.findMesh('__X_BOTTLE__');
|
||||||
const bottleMaterial = bottleMesh.material as BABYLON.PBRMaterial;
|
const bottleMaterial = bottleMesh.material as BABYLON.PBRMaterial;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const banknote = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export const bed = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'floor',
|
placement: 'floor',
|
||||||
hasCollisions: true,
|
hasCollisions: true,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model }) => {
|
createInstance: ({ options, model }) => {
|
||||||
const bodyMesh = model.findMesh('__X_BODY__');
|
const bodyMesh = model.findMesh('__X_BODY__');
|
||||||
const bodyMaterial = bodyMesh.material as BABYLON.PBRMaterial;
|
const bodyMaterial = bodyMesh.material as BABYLON.PBRMaterial;
|
||||||
|
|||||||
@@ -46,6 +46,7 @@ export const book = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model }) => {
|
createInstance: ({ options, model }) => {
|
||||||
const bodyMesh = model.findMesh('__X_BODY__');
|
const bodyMesh = model.findMesh('__X_BODY__');
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ export const books = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ scene, options, model }) => {
|
createInstance: ({ scene, options, model }) => {
|
||||||
const coverMaterial = model.findMaterial('__X_COVER__');
|
const coverMaterial = model.findMaterial('__X_COVER__');
|
||||||
|
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export const cactusS = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model }) => {
|
createInstance: ({ options, model }) => {
|
||||||
const potMesh = model.findMesh('__X_POT__');
|
const potMesh = model.findMesh('__X_POT__');
|
||||||
const potMaterial = potMesh.material as BABYLON.PBRMaterial;
|
const potMaterial = potMesh.material as BABYLON.PBRMaterial;
|
||||||
|
|||||||
@@ -23,6 +23,7 @@ export const cardboardBox = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: true,
|
hasCollisions: true,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ scene, options, model }) => {
|
createInstance: ({ scene, options, model }) => {
|
||||||
return {
|
return {
|
||||||
onInited: () => {
|
onInited: () => {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const coffeeCup = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ export const colorBox = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'floor',
|
placement: 'floor',
|
||||||
hasCollisions: true,
|
hasCollisions: true,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model }) => {
|
createInstance: ({ options, model }) => {
|
||||||
const bodyMesh = model.findMesh('__X_BODY__');
|
const bodyMesh = model.findMesh('__X_BODY__');
|
||||||
const bodyMaterial = bodyMesh.material as BABYLON.PBRMaterial;
|
const bodyMaterial = bodyMesh.material as BABYLON.PBRMaterial;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ export const cupNoodle = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ scene, root }) => {
|
createInstance: ({ scene, root }) => {
|
||||||
let yugeDispose: (() => void) | null = null;
|
let yugeDispose: (() => void) | null = null;
|
||||||
|
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const djMixer = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -37,6 +37,7 @@ export const djPlayer = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ model, options, scene }) => {
|
createInstance: async ({ model, options, scene }) => {
|
||||||
const screenMesh = model.findMesh('__X_SCREEN__');
|
const screenMesh = model.findMesh('__X_SCREEN__');
|
||||||
const screenMaterial = model.findMaterial('__X_SCREEN__');
|
const screenMaterial = model.findMaterial('__X_SCREEN__');
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const ductTape = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const energyDrink = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const envelope = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const facialTissue = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const hangingTShirt = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'side',
|
placement: 'side',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -55,6 +55,7 @@ export const laptopPc = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ room, scene, options, model }) => {
|
createInstance: async ({ room, scene, options, model }) => {
|
||||||
const matrix = model.root.getWorldMatrix(true);
|
const matrix = model.root.getWorldMatrix(true);
|
||||||
const scale = new BABYLON.Vector3();
|
const scale = new BABYLON.Vector3();
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const milk = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const mixer = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export const monitor = defineObject({
|
|||||||
default: {},
|
default: {},
|
||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const monstera = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const pachira = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: true,
|
hasCollisions: true,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -27,6 +27,7 @@ export const petBottle = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ model, options }) => {
|
createInstance: ({ model, options }) => {
|
||||||
const capMesh = model.findMesh('__X_CAP__');
|
const capMesh = model.findMesh('__X_CAP__');
|
||||||
const liquidMesh = model.findMesh('__X_LIQUID__');
|
const liquidMesh = model.findMesh('__X_LIQUID__');
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ export const pictureFrame = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'side',
|
placement: 'side',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const frameMesh = model.findMesh('__X_FRAME__');
|
const frameMesh = model.findMesh('__X_FRAME__');
|
||||||
frameMesh.rotationQuaternion = null;
|
frameMesh.rotationQuaternion = null;
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const plant = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ export const plant2 = defineObject({
|
|||||||
default: {},
|
default: {},
|
||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export const poster = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'side',
|
placement: 'side',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const pictureMesh = model.findMesh('__X_PICTURE__');
|
const pictureMesh = model.findMesh('__X_PICTURE__');
|
||||||
pictureMesh.rotationQuaternion = null;
|
pictureMesh.rotationQuaternion = null;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@ export const randomBooks = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, model, scene, id }) => {
|
createInstance: ({ options, model, scene, id }) => {
|
||||||
const bodyMesh = model.findMesh('__X_BODY__');
|
const bodyMesh = model.findMesh('__X_BODY__');
|
||||||
const tex = new BABYLON.Texture('/client-assets/room/objects/random-books/texture.png', scene, {
|
const tex = new BABYLON.Texture('/client-assets/room/objects/random-books/texture.png', scene, {
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const roundRug = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'floor',
|
placement: 'floor',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const router = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const snakeplant = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -14,6 +14,7 @@ export const tabletopCalendar = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: () => {
|
createInstance: () => {
|
||||||
return {
|
return {
|
||||||
interactions: {},
|
interactions: {},
|
||||||
|
|||||||
@@ -29,6 +29,7 @@ export const tabletopFlag = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ model, options, scene }) => {
|
createInstance: async ({ model, options, scene }) => {
|
||||||
const flagMesh = model.findMesh('__X_FLAG__');
|
const flagMesh = model.findMesh('__X_FLAG__');
|
||||||
const flagMaterial = model.findMaterial('__X_FLAG__');
|
const flagMaterial = model.findMaterial('__X_FLAG__');
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export const tabletopGlassPictureFrame = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const pictureMesh = model.findMesh('__X_PICTURE__');
|
const pictureMesh = model.findMesh('__X_PICTURE__');
|
||||||
const frameMesh = model.findMesh('__X_FRAME__');
|
const frameMesh = model.findMesh('__X_FRAME__');
|
||||||
|
|||||||
@@ -84,6 +84,7 @@ export const tabletopPictureFrame = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const frameMesh = model.findMesh('__X_FRAME__');
|
const frameMesh = model.findMesh('__X_FRAME__');
|
||||||
frameMesh.rotationQuaternion = null;
|
frameMesh.rotationQuaternion = null;
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export const tapestry = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'side',
|
placement: 'side',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const pictureMesh = model.findMesh('__X_PICTURE__');
|
const pictureMesh = model.findMesh('__X_PICTURE__');
|
||||||
pictureMesh.rotationQuaternion = null;
|
pictureMesh.rotationQuaternion = null;
|
||||||
|
|||||||
@@ -31,6 +31,7 @@ export const tv = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'top',
|
placement: 'top',
|
||||||
hasCollisions: true,
|
hasCollisions: true,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: ({ options, room, model, scene }) => {
|
createInstance: ({ options, room, model, scene }) => {
|
||||||
const matrix = model.root.getWorldMatrix(true);
|
const matrix = model.root.getWorldMatrix(true);
|
||||||
const scale = new BABYLON.Vector3();
|
const scale = new BABYLON.Vector3();
|
||||||
|
|||||||
@@ -45,6 +45,7 @@ export const wallCanvas = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'side',
|
placement: 'side',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const canvasMesh = model.findMesh('__X_CANVAS__');
|
const canvasMesh = model.findMesh('__X_CANVAS__');
|
||||||
canvasMesh.rotationQuaternion = null;
|
canvasMesh.rotationQuaternion = null;
|
||||||
|
|||||||
@@ -49,6 +49,7 @@ export const wallGlassPictureFrame = defineObject({
|
|||||||
},
|
},
|
||||||
placement: 'wall',
|
placement: 'wall',
|
||||||
hasCollisions: false,
|
hasCollisions: false,
|
||||||
|
hasTexture: true,
|
||||||
createInstance: async ({ scene, options, model }) => {
|
createInstance: async ({ scene, options, model }) => {
|
||||||
const pictureMesh = model.findMesh('__X_PICTURE__');
|
const pictureMesh = model.findMesh('__X_PICTURE__');
|
||||||
const frameMesh = model.findMesh('__X_FRAME__');
|
const frameMesh = model.findMesh('__X_FRAME__');
|
||||||
|
|||||||
Reference in New Issue
Block a user