handle better item scales

This commit is contained in:
wass08
2026-02-23 11:11:22 +09:00
parent d15f601107
commit 6581e25e9f
2 changed files with 7 additions and 3 deletions
@@ -40,7 +40,7 @@ export const ItemRenderer = ({ node }: { node: ItemNode }) => {
useRegistry(node.id, node.type, ref)
return (
<group position={node.position} rotation={node.rotation} scale={node.scale} ref={ref} visible={node.visible}>
<group position={node.position} rotation={node.rotation} ref={ref} visible={node.visible}>
<Suspense fallback={<PreviewModel node={node} />}>
<ModelRenderer node={node} />
</Suspense>
@@ -73,6 +73,9 @@ const PreviewModel = ({ node }: { node: ItemNode }) => {
)
}
const multiplyScales = (a: [number, number, number], b: [number, number, number]): [number, number, number] =>
[a[0] * b[0], a[1] * b[1], a[2] * b[2]]
const ModelRenderer = ({ node }: { node: ItemNode }) => {
const { scene, nodes } = useGLTF(resolveCdnUrl(node.asset.src) || '')
@@ -115,7 +118,7 @@ const ModelRenderer = ({ node }: { node: ItemNode }) => {
return (
<Clone
object={scene}
scale={node.asset.scale}
scale={multiplyScales(node.asset.scale, node.scale)}
position={node.asset.offset}
rotation={node.asset.rotation}
{...handlers}