以下に、React Three FiberとTypeScriptを使用して3Dグラフィックスを実装する方法のいくつかの例を示します。
- 基本的なシーンの作成:
React Three Fiberでは、
Canvas
コンポーネントを使用して3Dシーンを作成します。まず、react-three-fiber
パッケージをインストールします。
npm install react-three-fiber three
次に、以下のようなコードで基本的なシーンを作成します。
import React from 'react';
import { Canvas } from 'react-three-fiber';
import { OrbitControls } from 'three/examples/jsm/controls/OrbitControls';
const Scene = () => {
return (
<Canvas>
<OrbitControls />
{/* シーン要素やオブジェクトの追加 */}
</Canvas>
);
};
export default Scene;
- 3Dオブジェクトの描画:
React Three Fiberでは、
mesh
コンポーネントを使用して3Dオブジェクトを描画します。以下は、球体を描画する例です。
import React from 'react';
import { Canvas, useFrame } from 'react-three-fiber';
import { Sphere } from 'three';
const SphereObject = () => {
// フレームごとのアニメーション処理
useFrame(() => {
// アニメーションの更新処理
});
return (
<mesh>
<sphereGeometry args={[1, 32, 32]} />
<meshStandardMaterial color="red" />
</mesh>
);
};
const Scene = () => {
return (
<Canvas>
<SphereObject />
</Canvas>
);
};
export default Scene;
- カメラと照明の制御:
React Three Fiberでは、
useThree
フックを使用してカメラと照明を制御できます。以下は、カメラの位置と照明の追加例です。
import React from 'react';
import { Canvas, useThree } from 'react-three-fiber';
import { PerspectiveCamera, DirectionalLight } from 'three';
const Scene = () => {
// カメラと照明の追加
const { camera, gl } = useThree();
camera.position.z = 5;
return (
<Canvas>
<directionalLight position={[0, 0, 5]} />
{/* シーン要素やオブジェクトの追加 */}
</Canvas>
);
};
export default Scene;
これらはReact Three FiberとTypeScriptを使用して3Dグラフィックスを実装するための基本的な例です。さまざまなカスタマイズや高度な機能を組み合わせることで、より複雑な3Dシーンやアニメーションを作成することができます。詳細なドキュメントや他のコード例については、React Three Fiber公式ウェブサイトを参照してください。