見出し画像

家を作ってもらう

function createHouse(){
    const house = new THREE.Group();
    
    // 壁天井床
    const wallGeometry = new THREE.BoxGeometry(10, 6, 10);
    const wallMaterial = new THREE.MeshStandardMaterial({ color: 0xffccaa });
    const walls = new THREE.Mesh(wallGeometry, wallMaterial);
    walls.position.set(0, 3, 0);
    walls.castShadow = true;
    walls.receiveShadow = true;
    house.add(walls);
    
    // 屋根
    const roofGeometry = new THREE.ConeGeometry(8, 5, 4);
    const roofMaterial = new THREE.MeshStandardMaterial({ color: 0xff4444 });
    const roof = new THREE.Mesh(roofGeometry, roofMaterial);
    roof.position.set(0, 8, 0);
    roof.rotation.y = Math.PI / 4; // 45度回転
    scene.add(roof);
    
    // 窓
    const windowGeometry = new THREE.BoxGeometry(2, 2, 0.1);
    const windowMaterial = new THREE.MeshStandardMaterial({ color: 0xffffff });
    const window1 = new THREE.Mesh(windowGeometry, windowMaterial);
    const window2 = new THREE.Mesh(windowGeometry, windowMaterial);
    const window3 = new THREE.Mesh(windowGeometry, windowMaterial);
    //const window4 = new THREE.Mesh(windowGeometry, windowMaterial);
    window1.position.set(-3, 3, 5.01);
    window2.position.set(3, 3, 5.01);
    window3.position.set(0, 3, -5.01);
    //window4.position.set(0, 3, 5.01);
    window1.castShadow = true;
    window2.castShadow = true;
    window3.castShadow = true;
    //window4.castShadow = true;
    house.add(window1);
    house.add(window2);
    house.add(window3);
    //house.add(window4);
    
    // ドア
    const doorGeometry = new THREE.BoxGeometry(2, 4, 0.1);
    const doorMaterial = new THREE.MeshStandardMaterial({ color: 0x663300 });
    const door = new THREE.Mesh(doorGeometry, doorMaterial);
    door.position.set(0, 2, 5.0);
    door.castShadow = true;
    house.add(door);
    
    return house;
}

この記事が気に入ったらサポートをしてみませんか?