threed-garden
Version:
ThreeD Garden: WebGL 3D Environment Interface for Next.JS React TypeScript Three.JS React-Three Physics, 2D Paper.JS; APIs: Apollo GraphQL, WordPress; CSS: Tailwind, Radix-UI; Libraries: FarmBot 3D; AI: OpenAI, DeepSeek
87 lines (80 loc) • 2.4 kB
JSX
// 'use client'
// ==========================================================
// RESOURCES
/*
Auto-generated by: https://github.com/pmndrs/gltfjsx
*/
import React from 'react'
import { useGLTF } from '@react-three/drei'
const theCharacterModelFile = '/Demon.glb'
export default function CharacterModel(props) {
const { nodes, materials } = useGLTF(theCharacterModelFile)
for (const material in materials) {
materials[material].metalness = -2
materials[material].roughness = 1
}
return (
<group name="Root_Scene">
<group name="RootNode">
<group name="CharacterArmature"
rotation={[-Math.PI / 2, 0, 0]}
scale={80}
// position={[0, -0.85, 0]}
position={[0, 0.00, 0]}
>
<primitive
object={nodes.Root}
/>
</group>
<group name="Demon"
rotation={[-Math.PI / 2, 0, 0]}
scale={100}
>
<skinnedMesh
name="Demon_1"
geometry={nodes.Demon_1.geometry}
material={materials.Demon_Main}
skeleton={nodes.Demon_1.skeleton}
receiveShadow
castShadow
/>
<skinnedMesh
name="Demon_2"
geometry={nodes.Demon_2.geometry}
material={materials.Black}
skeleton={nodes.Demon_2.skeleton}
receiveShadow
castShadow
/>
<skinnedMesh
name="Demon_3"
geometry={nodes.Demon_3.geometry}
material={materials.Eye_White}
skeleton={nodes.Demon_3.skeleton}
receiveShadow
castShadow
/>
<skinnedMesh
name="Demon_4"
geometry={nodes.Demon_4.geometry}
material={materials.Eye_Black}
skeleton={nodes.Demon_4.skeleton}
receiveShadow
castShadow
/>
</group>
<skinnedMesh
name="Trident"
geometry={nodes.Trident.geometry}
material={materials.Black}
skeleton={nodes.Trident.skeleton}
position={[1.895, 1.734, -0.17]}
scale={75.326}
receiveShadow
castShadow
/>
</group>
</group>
)
}
useGLTF.preload(theCharacterModelFile)