From f97018bd54e2c7a24fb91b956990d7c6f391b014 Mon Sep 17 00:00:00 2001 From: faithia-anastasia <211831874+faithia-anastasia@users.noreply.github.com> Date: Fri, 13 Mar 2026 23:12:41 +0900 Subject: [PATCH 1/3] feat: add decideCollisionOutcome to determine merge or explode --- .../Simulation/components/PlanetMesh.tsx | 56 ++++++++++++++++++- src/pages/Simulation/index.tsx | 7 ++- .../utils/decideCollisionOutcome.ts | 44 +++++++++++++++ src/pages/Simulation/utils/gravityUtils.ts | 2 +- 4 files changed, 105 insertions(+), 4 deletions(-) create mode 100644 src/pages/Simulation/utils/decideCollisionOutcome.ts diff --git a/src/pages/Simulation/components/PlanetMesh.tsx b/src/pages/Simulation/components/PlanetMesh.tsx index 7c310d4..86c8395 100644 --- a/src/pages/Simulation/components/PlanetMesh.tsx +++ b/src/pages/Simulation/components/PlanetMesh.tsx @@ -5,6 +5,10 @@ import type React from "react"; import { useEffect, useMemo, useRef } from "react"; import * as THREE from "three"; import type { Planet } from "@/types/planet"; +import { + CollisionType, + decideCollisionOutcome, +} from "../utils/decideCollisionOutcome"; import { calcGravityForce } from "../utils/gravityUtils"; type PlanetMeshProps = { @@ -12,7 +16,11 @@ type PlanetMeshProps = { planetRegistry: React.MutableRefObject< Map< string, - { mesh: THREE.Mesh; position: React.MutableRefObject } + { + mesh: THREE.Mesh; + position: React.MutableRefObject; + velocity: React.MutableRefObject; + } > >; onExplosion: (position: THREE.Vector3, radius: number) => void; @@ -35,7 +43,38 @@ export function PlanetMesh({ linearDamping: 0, // 宇宙空間なので抵抗なし angularDamping: 0, // 宇宙空間なので回転の減衰もない onCollide: (e) => { - // 衝突時の衝撃が一定以上なら爆発とみなす + const myId = e.target.userData.id; + const otherId = e.body.userData.id; + // 相手のIDが取得できない、または自分のIDの方が大きい場合は処理をスキップして重複を防ぐ + if (!otherId || myId > otherId) { + return; + } + if ( + !planetRegistry.current.has(myId) || + !planetRegistry.current.has(otherId) + ) { + return; + } + const myPlanet = planetRegistry.current.get(myId); + const otherPlanet = planetRegistry.current.get(otherId); + if (!myPlanet || !otherPlanet) return; + const result: string = decideCollisionOutcome( + myPlanet.mesh.userData.mass, + myPlanet.mesh.userData.radius, + new THREE.Vector3().fromArray(myPlanet.position.current), + new THREE.Vector3().fromArray(myPlanet.velocity.current), + otherPlanet.mesh.userData.mass, + otherPlanet.mesh.userData.radius, + new THREE.Vector3().fromArray(otherPlanet.position.current), + new THREE.Vector3().fromArray(otherPlanet.velocity.current), + ); + + if (result === CollisionType.Merge) { + console.log(CollisionType.Merge); + } else { + console.log(CollisionType.Explode); + } + if (e.contact.impactVelocity > 0.5) { const contactPoint = new THREE.Vector3( e.contact.contactPoint[0], @@ -65,6 +104,18 @@ export function PlanetMesh({ return () => unsubscribe(); // アンマウント時に購読解除 }, [api.position]); + const velocity = useRef([ + planet.velocity.x, + planet.velocity.y, + planet.velocity.z, + ]); + useEffect(() => { + const unsubscribe = api.velocity.subscribe((v) => { + velocity.current = v; + }); + return () => unsubscribe(); // アンマウント時に購読解除 + }, [api.velocity]); + // マウント時に自分のMeshをレジストリに登録し、他の惑星から参照できるようにする useEffect(() => { if (!planetRegistry.current) return; @@ -79,6 +130,7 @@ export function PlanetMesh({ planetRegistry.current.set(planet.id, { mesh: ref.current, position, + velocity, }); } return () => { diff --git a/src/pages/Simulation/index.tsx b/src/pages/Simulation/index.tsx index dabf4aa..b4f90c3 100644 --- a/src/pages/Simulation/index.tsx +++ b/src/pages/Simulation/index.tsx @@ -2,6 +2,7 @@ import { Physics } from "@react-three/cannon"; import { OrbitControls, Stars, useTexture } from "@react-three/drei"; import { Canvas } from "@react-three/fiber"; import { button, useControls } from "leva"; +import type React from "react"; import { Suspense, useMemo, useRef, useState } from "react"; import * as THREE from "three"; import type { OrbitControls as Controls } from "three-stdlib"; @@ -32,7 +33,11 @@ export default function Page() { const planetRegistry = useRef< Map< string, - { mesh: THREE.Mesh; position: React.MutableRefObject } + { + mesh: THREE.Mesh; + position: React.MutableRefObject; + velocity: React.MutableRefObject; + } > >(new Map()); diff --git a/src/pages/Simulation/utils/decideCollisionOutcome.ts b/src/pages/Simulation/utils/decideCollisionOutcome.ts new file mode 100644 index 0000000..9d64947 --- /dev/null +++ b/src/pages/Simulation/utils/decideCollisionOutcome.ts @@ -0,0 +1,44 @@ +import * as THREE from "three"; +import { G } from "./gravityUtils"; + +export const CollisionType = { + Explode: "explode", + Merge: "merge", +} as const; +//経験的係数 +const kFactor = 0.5; + +export function decideCollisionOutcome( + massA: number, + radA: number, + posA: THREE.Vector3, + velA: THREE.Vector3, + massB: number, + radB: number, + posB: THREE.Vector3, + velB: THREE.Vector3, +): string { + //脱出速度vEsc + const vEsc = Math.sqrt((2 * G * (massA + massB)) / (radA + radB)); + + //相対速度及び相対位置 + const vRel = new THREE.Vector3().subVectors(velB, velA); + const pRel = new THREE.Vector3().subVectors(posB, posA); + + //衝突角補正 + const distance = pRel.length(); + const angleFactor = + distance > 0 ? Math.abs(vRel.dot(pRel) / (vRel.length() * distance)) : 1; + //質量比補正 + const massFactor = massA > massB ? massB / massA : massA / massB; + + //臨界速度vCrit + const vCrit = vEsc * (1 + kFactor * (1 - massFactor)) * angleFactor; + + const vRelLen = vRel.length(); + if (vRelLen < vCrit) { + return CollisionType.Merge; + } else { + return CollisionType.Explode; + } +} diff --git a/src/pages/Simulation/utils/gravityUtils.ts b/src/pages/Simulation/utils/gravityUtils.ts index f54a829..6a39c57 100644 --- a/src/pages/Simulation/utils/gravityUtils.ts +++ b/src/pages/Simulation/utils/gravityUtils.ts @@ -1,6 +1,6 @@ import * as THREE from "three"; -const G = 1; +export const G = 1; const softeningFactor = 0.005; export function calcGravityForce( From 1504d01e045c209b15768a8e4da04e1e8da9ec3e Mon Sep 17 00:00:00 2001 From: faithia-anastasia <211831874+faithia-anastasia@users.noreply.github.com> Date: Sat, 14 Mar 2026 11:58:33 +0900 Subject: [PATCH 2/3] feat: add planets merge when colliding --- src/assets/960px-Moon_texture.jpg | Bin 0 -> 127147 bytes src/data/planets.ts | 15 ++--- .../Simulation/components/PlanetMesh.tsx | 54 +++++++++++++++-- src/pages/Simulation/index.tsx | 40 ++++++++++++- src/pages/Simulation/utils/mergePlanets.ts | 56 ++++++++++++++++++ 5 files changed, 151 insertions(+), 14 deletions(-) create mode 100644 src/assets/960px-Moon_texture.jpg create mode 100644 src/pages/Simulation/utils/mergePlanets.ts diff --git a/src/assets/960px-Moon_texture.jpg b/src/assets/960px-Moon_texture.jpg new file mode 100644 index 0000000000000000000000000000000000000000..23a824e0e736ee0567b0c9c54626b10bca3b0ec2 GIT binary patch literal 127147 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%0DmlXpF&o1e%lOI@)=O)W+ZA|d?bA^ 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 I2k(IY**)4os{jB1 literal 0 HcmV?d00001 diff --git a/src/data/planets.ts b/src/data/planets.ts index 0cad35f..af49028 100644 --- a/src/data/planets.ts +++ b/src/data/planets.ts @@ -3,6 +3,7 @@ import jupiterTexture from "@/assets/2k_jupiter.jpg"; import marsTexture from "@/assets/2k_mars.jpg"; import sunTexture from "@/assets/2k_sun.jpg"; import venusTexture from "@/assets/2k_venus_atmosphere.jpg"; +import moonTexture from "@/assets/960px-Moon_texture.jpg"; import earthTexture from "@/assets/earth_atmos_2048.jpg"; import type { Planet } from "@/types/planet"; @@ -19,17 +20,17 @@ export const earth: Planet = { mass: 1, }; -export const testPlanet: Planet = { - id: "test-planet", - name: "TestPlanet", - texturePath: earthTexture, - rotationSpeedY: 2, - radius: 2, +export const moon: Planet = { + id: "moon", + name: "Moon", + texturePath: moonTexture, + rotationSpeedY: 0.07, + radius: 0.546, width: 64, height: 64, position: new THREE.Vector3(100, 0, 0), velocity: new THREE.Vector3(-10, 0, 0), - mass: 1, + mass: 0.0123, }; export const sun: Planet = { diff --git a/src/pages/Simulation/components/PlanetMesh.tsx b/src/pages/Simulation/components/PlanetMesh.tsx index 86c8395..368e913 100644 --- a/src/pages/Simulation/components/PlanetMesh.tsx +++ b/src/pages/Simulation/components/PlanetMesh.tsx @@ -10,6 +10,7 @@ import { decideCollisionOutcome, } from "../utils/decideCollisionOutcome"; import { calcGravityForce } from "../utils/gravityUtils"; +import { mergePlanets } from "../utils/mergePlanets"; type PlanetMeshProps = { planet: Planet; @@ -25,6 +26,11 @@ type PlanetMeshProps = { >; onExplosion: (position: THREE.Vector3, radius: number) => void; onSelect: (planetId: string) => void; + onMerge: ( + obsoletePlanetIdA: string, + obsoletePlanetIdB: string, + newPlanetData: Planet, + ) => void; }; export function PlanetMesh({ @@ -32,6 +38,7 @@ export function PlanetMesh({ planetRegistry, onExplosion, onSelect, + onMerge, }: PlanetMeshProps) { const [ref, api] = useSphere( () => ({ @@ -45,32 +52,61 @@ export function PlanetMesh({ onCollide: (e) => { const myId = e.target.userData.id; const otherId = e.body.userData.id; + // 相手のIDが取得できない、または自分のIDの方が大きい場合は処理をスキップして重複を防ぐ if (!otherId || myId > otherId) { return; } + if ( !planetRegistry.current.has(myId) || !planetRegistry.current.has(otherId) ) { return; } + const myPlanet = planetRegistry.current.get(myId); const otherPlanet = planetRegistry.current.get(otherId); + if (!myPlanet || !otherPlanet) return; + if (!myPlanet.position || !otherPlanet.position) return; + if (!myPlanet.velocity || !otherPlanet.velocity) return; + + const myPos = new THREE.Vector3().fromArray(myPlanet.position.current); + const myVel = new THREE.Vector3().fromArray(myPlanet.velocity.current); + const otherPos = new THREE.Vector3().fromArray( + otherPlanet.position.current, + ); + const otherVel = new THREE.Vector3().fromArray( + otherPlanet.velocity.current, + ); + const result: string = decideCollisionOutcome( myPlanet.mesh.userData.mass, myPlanet.mesh.userData.radius, - new THREE.Vector3().fromArray(myPlanet.position.current), - new THREE.Vector3().fromArray(myPlanet.velocity.current), + myPos, + myVel, otherPlanet.mesh.userData.mass, otherPlanet.mesh.userData.radius, - new THREE.Vector3().fromArray(otherPlanet.position.current), - new THREE.Vector3().fromArray(otherPlanet.velocity.current), + otherPos, + otherVel, ); if (result === CollisionType.Merge) { console.log(CollisionType.Merge); + const newPlanetData = mergePlanets( + myPlanet.mesh.userData.mass, + myPlanet.mesh.userData.radius, + myPos, + myVel, + myPlanet.mesh.userData.rotationSpeedY, + otherPlanet.mesh.userData.mass, + otherPlanet.mesh.userData.radius, + otherPos, + otherVel, + otherPlanet.mesh.userData.rotationSpeedY, + ); + onMerge(myId, otherId, newPlanetData); } else { console.log(CollisionType.Explode); } @@ -126,6 +162,7 @@ export function PlanetMesh({ mass: planet.mass, id: planet.id, radius: planet.radius, + rotationSpeedY: planet.rotationSpeedY, }; planetRegistry.current.set(planet.id, { mesh: ref.current, @@ -138,7 +175,14 @@ export function PlanetMesh({ planetRegistry.current.delete(planet.id); } }; - }, [planet.id, planetRegistry, planet.mass, planet.radius, ref]); + }, [ + planet.id, + planetRegistry, + planet.mass, + planet.radius, + planet.rotationSpeedY, + ref, + ]); // 計算用ベクトルをメモリに保持しておく(毎フレームnewしないため) const forceAccumulator = useMemo(() => new THREE.Vector3(), []); diff --git a/src/pages/Simulation/index.tsx b/src/pages/Simulation/index.tsx index b4f90c3..3cc38ab 100644 --- a/src/pages/Simulation/index.tsx +++ b/src/pages/Simulation/index.tsx @@ -6,7 +6,7 @@ import type React from "react"; import { Suspense, useMemo, useRef, useState } from "react"; import * as THREE from "three"; import type { OrbitControls as Controls } from "three-stdlib"; -import { earth, jupiter, mars, sun, venus } from "@/data/planets"; +import { earth, jupiter, mars, moon, sun, venus } from "@/data/planets"; import type { ExplosionData } from "@/types/Explosion"; import type { Planet } from "@/types/planet"; import { CameraController } from "./components/CameraController"; @@ -19,6 +19,7 @@ import { const planetTexturePaths = [ earth.texturePath, + moon.texturePath, sun.texturePath, mars.texturePath, jupiter.texturePath, @@ -26,7 +27,7 @@ const planetTexturePaths = [ ]; useTexture.preload(planetTexturePaths); -const planetTemplates = { earth, sun, mars, jupiter, venus } as const; +const planetTemplates = { earth, moon, sun, mars, jupiter, venus } as const; export default function Page() { const orbitControlsRef = useRef(null); @@ -55,6 +56,7 @@ export default function Page() { value: "earth", options: { Earth: "earth", + Moon: "moon", Sun: "sun", Mars: "mars", Jupiter: "jupiter", @@ -165,6 +167,29 @@ export default function Page() { }); }; + const handleMerge = ( + obsoletePlanetIdA: string, + obsoletePlanetIdB: string, + newPlanetData: Planet, + ) => { + planetRegistry.current.delete(obsoletePlanetIdA); + planetRegistry.current.delete(obsoletePlanetIdB); + setPlanets((prev) => { + // 削除して追加 + return prev + .filter((p) => p.id !== obsoletePlanetIdA && p.id !== obsoletePlanetIdB) + .concat(newPlanetData); + }); + + // フォロー中の惑星が削除対象なら解除 + if ( + followedPlanetId === obsoletePlanetIdA || + followedPlanetId === obsoletePlanetIdB + ) { + setFollowedPlanetId(null); + } + }; + return (
setFollowedPlanetId(id)} + onMerge={( + obsoletePlanetIdA, + obsoletePlanetIdB, + newPlanetData, + ) => + handleMerge( + obsoletePlanetIdA, + obsoletePlanetIdB, + newPlanetData, + ) + } /> ))} diff --git a/src/pages/Simulation/utils/mergePlanets.ts b/src/pages/Simulation/utils/mergePlanets.ts new file mode 100644 index 0000000..8bbdf0d --- /dev/null +++ b/src/pages/Simulation/utils/mergePlanets.ts @@ -0,0 +1,56 @@ +import * as THREE from "three"; +import moonTexture from "@/assets/960px-Moon_texture.jpg"; +import type { Planet } from "@/types/planet"; + +export function mergePlanets( + massA: number, + radA: number, + posA: THREE.Vector3, + velA: THREE.Vector3, + yrotA: number, + massB: number, + radB: number, + posB: THREE.Vector3, + velB: THREE.Vector3, + yrotB: number, +): Planet { + const newId = crypto.randomUUID(); + const newName = "mergedPlanet"; + const newTexturePath = moonTexture; + + const newRotationSpeedY = + (massA * radA ** 2 * yrotA + massB * radB ** 2 * yrotB) / + (massA * radA ** 2 + massB * radB ** 2); + + const newRadius = (radA ** 3 + radB ** 3) ** (1 / 3); + const newWidth = 64; + const newHeight = 64; + const newMass = massA + massB; + + const newPosition = new THREE.Vector3() + .addVectors( + posA.clone().multiplyScalar(massA), + posB.clone().multiplyScalar(massB), + ) + .divideScalar(newMass); + + const newVelocity = new THREE.Vector3() + .addVectors( + velA.clone().multiplyScalar(massA), + velB.clone().multiplyScalar(massB), + ) + .divideScalar(newMass); + + return { + id: newId, + name: newName, + texturePath: newTexturePath, + rotationSpeedY: newRotationSpeedY, + radius: newRadius, + width: newWidth, + height: newHeight, + position: newPosition, + velocity: newVelocity, + mass: newMass, + }; +} From 43524b6a8c800a9f4df3f1a44b91b8a5a63b18e9 Mon Sep 17 00:00:00 2001 From: faithia-anastasia <211831874+faithia-anastasia@users.noreply.github.com> Date: Sun, 15 Mar 2026 17:39:41 +0900 Subject: [PATCH 3/3] fix: add mergingPlanets to resolve conflict --- src/pages/Simulation/components/PlanetMesh.tsx | 10 ++++++++++ src/pages/Simulation/index.tsx | 4 ++++ 2 files changed, 14 insertions(+) diff --git a/src/pages/Simulation/components/PlanetMesh.tsx b/src/pages/Simulation/components/PlanetMesh.tsx index 368e913..d031476 100644 --- a/src/pages/Simulation/components/PlanetMesh.tsx +++ b/src/pages/Simulation/components/PlanetMesh.tsx @@ -24,6 +24,7 @@ type PlanetMeshProps = { } > >; + mergingPlanets: React.MutableRefObject>; onExplosion: (position: THREE.Vector3, radius: number) => void; onSelect: (planetId: string) => void; onMerge: ( @@ -36,6 +37,7 @@ type PlanetMeshProps = { export function PlanetMesh({ planet, planetRegistry, + mergingPlanets, onExplosion, onSelect, onMerge, @@ -53,6 +55,14 @@ export function PlanetMesh({ const myId = e.target.userData.id; const otherId = e.body.userData.id; + // どちらかが合体処理中なら即リターン + if ( + mergingPlanets.current.has(myId) || + mergingPlanets.current.has(otherId) + ) { + return; + } + // 相手のIDが取得できない、または自分のIDの方が大きい場合は処理をスキップして重複を防ぐ if (!otherId || myId > otherId) { return; diff --git a/src/pages/Simulation/index.tsx b/src/pages/Simulation/index.tsx index 3cc38ab..0c4920f 100644 --- a/src/pages/Simulation/index.tsx +++ b/src/pages/Simulation/index.tsx @@ -41,6 +41,7 @@ export default function Page() { } > >(new Map()); + const mergingPlanets = useRef>(new Set()); const [planets, setPlanets] = useState([earth]); const [explosions, setExplosions] = useState([]); @@ -172,6 +173,8 @@ export default function Page() { obsoletePlanetIdB: string, newPlanetData: Planet, ) => { + mergingPlanets.current.add(obsoletePlanetIdA); + mergingPlanets.current.add(obsoletePlanetIdB); planetRegistry.current.delete(obsoletePlanetIdA); planetRegistry.current.delete(obsoletePlanetIdB); setPlanets((prev) => { @@ -215,6 +218,7 @@ export default function Page() { setFollowedPlanetId(id)} onMerge={(