diff --git a/packages/frontend/assets/room/objects/issyoubin/issyoubin.blend b/packages/frontend/assets/room/objects/issyoubin/issyoubin.blend index 1b2a028fe1..11e4a9aef6 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/issyoubin.blend and b/packages/frontend/assets/room/objects/issyoubin/issyoubin.blend differ diff --git a/packages/frontend/assets/room/objects/issyoubin/issyoubin.glb b/packages/frontend/assets/room/objects/issyoubin/issyoubin.glb index 0c813239de..6d2c6ded1d 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/issyoubin.glb and b/packages/frontend/assets/room/objects/issyoubin/issyoubin.glb differ diff --git a/packages/frontend/assets/room/objects/issyoubin/textures/ai.af b/packages/frontend/assets/room/objects/issyoubin/textures/ai.af index eca822aac8..fc66507e15 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/textures/ai.af and b/packages/frontend/assets/room/objects/issyoubin/textures/ai.af differ diff --git a/packages/frontend/assets/room/objects/issyoubin/textures/ai.png b/packages/frontend/assets/room/objects/issyoubin/textures/ai.png index 930d956231..8600041683 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/textures/ai.png and b/packages/frontend/assets/room/objects/issyoubin/textures/ai.png differ diff --git a/packages/frontend/assets/room/objects/issyoubin/textures/misuki.af b/packages/frontend/assets/room/objects/issyoubin/textures/misuki.af index 2edbf2a8ec..462408f7be 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/textures/misuki.af and b/packages/frontend/assets/room/objects/issyoubin/textures/misuki.af differ diff --git a/packages/frontend/assets/room/objects/issyoubin/textures/misuki.png b/packages/frontend/assets/room/objects/issyoubin/textures/misuki.png index 498e96ad55..f759563a63 100644 Binary files a/packages/frontend/assets/room/objects/issyoubin/textures/misuki.png and b/packages/frontend/assets/room/objects/issyoubin/textures/misuki.png differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/label.af b/packages/frontend/assets/room/objects/pet-bottle/label.af deleted file mode 100644 index ddc069a40c..0000000000 Binary files a/packages/frontend/assets/room/objects/pet-bottle/label.af and /dev/null differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/natural-water.af b/packages/frontend/assets/room/objects/pet-bottle/natural-water.af new file mode 100644 index 0000000000..f2e18b7459 Binary files /dev/null and b/packages/frontend/assets/room/objects/pet-bottle/natural-water.af differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.blend b/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.blend index edda98a83d..654399d006 100644 Binary files a/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.blend and b/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.blend differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.glb b/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.glb index 236748ae85..2592c14282 100644 Binary files a/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.glb and b/packages/frontend/assets/room/objects/pet-bottle/pet-bottle.glb differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/textures/label.png b/packages/frontend/assets/room/objects/pet-bottle/textures/label.png deleted file mode 100644 index 7c3a92410f..0000000000 Binary files a/packages/frontend/assets/room/objects/pet-bottle/textures/label.png and /dev/null differ diff --git a/packages/frontend/assets/room/objects/pet-bottle/textures/natural-water.png b/packages/frontend/assets/room/objects/pet-bottle/textures/natural-water.png new file mode 100644 index 0000000000..752c1e4d57 Binary files /dev/null and b/packages/frontend/assets/room/objects/pet-bottle/textures/natural-water.png differ diff --git a/packages/frontend/src/world/room/engine.ts b/packages/frontend/src/world/room/engine.ts index bf44f64910..73a5ddce5a 100644 --- a/packages/frontend/src/world/room/engine.ts +++ b/packages/frontend/src/world/room/engine.ts @@ -9,6 +9,7 @@ // TODO: glbを事前に最適化(なるべくメッシュをマージするなど)するツールもしくはMisskeyビルド時処理。ついでにカタログ用スクショも自動生成したい // TODO: テクスチャ置き換え時、元のテクスチャをちゃんとdispose // TODO: Safariでテクスチャの読み込みに失敗かつ無ハンドリングだとsrが有効にできなくなる現象をbabylonに報告 +// TODO: 一升瓶を選択するとエラーが出る現象をbabylonに報告 import * as BABYLON from '@babylonjs/core'; import { registerBuiltInLoaders } from '@babylonjs/loaders/dynamic'; diff --git a/packages/frontend/src/world/room/objects/issyoubin.ts b/packages/frontend/src/world/room/objects/issyoubin.ts index cd66c73564..729b62f0ab 100644 --- a/packages/frontend/src/world/room/objects/issyoubin.ts +++ b/packages/frontend/src/world/room/objects/issyoubin.ts @@ -28,25 +28,24 @@ export const issyoubin = defineObject({ const liquidMesh = model.findMesh('__X_LIQUID__'); const liquidMaterial = model.findMaterial('__X_LIQUID__'); const bottleMaterial = model.findMaterial('__X_BOTTLE__'); + const labelMaterial = model.findMaterial('__X_LABEL__'); - // 以下を行うとレンダリングのグリッチが直るが、残念ながらWebGPUかつNCMでは動作しない - // https://doc.babylonjs.com/setup/support/webGPU/webGPUOptimization/webGPUNonCompatibilityMode/#dodont-in-non-compatibility-mode-ncm - //for (const m of model.root.getChildMeshes()) { - // if (m.material != null) { - // (m.material as BABYLON.PBRMaterial).separateCullingPass = true; - // } - //} + labelMaterial.transparencyMode = BABYLON.PBRMaterial.PBRMATERIAL_ALPHATEST; + labelMaterial.alphaCutOff = 0.5; - // しょうがないので不透明にする - bottleMaterial.transparencyMode = BABYLON.PBRMaterial.PBRMATERIAL_ALPHATEST; + bottleMaterial.transparencyMode = BABYLON.PBRMaterial.PBRMATERIAL_ALPHATESTANDBLEND; const applyVariation = () => { if (options.variation === 'misuki') { const tex = new BABYLON.Texture('/client-assets/room/objects/issyoubin/textures/misuki.png', scene, false, false); - bottleMaterial.albedoTexture = tex; + labelMaterial.albedoTexture = tex; + bottleMaterial.albedoColor = new BABYLON.Color3(0.5, 0.2, 0); + bottleMaterial.alpha = 0.8; } else if (options.variation === 'ai') { const tex = new BABYLON.Texture('/client-assets/room/objects/issyoubin/textures/ai.png', scene, false, false); - bottleMaterial.albedoTexture = tex; + labelMaterial.albedoTexture = tex; + bottleMaterial.albedoColor = new BABYLON.Color3(0.0, 0.5, 0.14); + bottleMaterial.alpha = 0.8; } }; diff --git a/packages/frontend/src/world/room/objects/petBottle.ts b/packages/frontend/src/world/room/objects/petBottle.ts index 7786f045e3..cc37b1d617 100644 --- a/packages/frontend/src/world/room/objects/petBottle.ts +++ b/packages/frontend/src/world/room/objects/petBottle.ts @@ -31,6 +31,10 @@ export const petBottle = defineObject({ createInstance: ({ model, options }) => { const capMesh = model.findMesh('__X_CAP__'); const liquidMesh = model.findMesh('__X_LIQUID__'); + const labelMaterial = model.findMaterial('__X_LABEL__'); + + labelMaterial.transparencyMode = BABYLON.PBRMaterial.PBRMATERIAL_ALPHATEST; + labelMaterial.alphaCutOff = 0.5; const applyWithCap = () => { capMesh.isVisible = options.withCap;