Chapter 11

A-Frameで空間全体の明かりを調整する

かじるプログラミング
かじるプログラミング
2021.10.11に更新

空間全体の明かりを調整する

空間全体を照らし出す"光"とその種類のについて簡単に解説をしていきます。
公式サイトには詳細が記載されていますので、こちらも参考にしてみてください。
Lights

初期状態を確認する

先ずは、3Dオブジェクトが配置してあるだけの状態を作ります。

index.html
<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8"/>
	<script src="https://aframe.io/releases/1.2.0/aframe.min.js"></script>
	<script src="https://unpkg.com/aframe-environment-component/dist/aframe-environment-component.min.js"></script>
	<script src="./main.js"></script>
</head>
<body>
	<a-scene stats loading-screen="dotsColor: gray; backgroundColor: lightgray">
		<!-- Sky -->
		<a-sky color="#ECECEC"></a-sky>

		<!-- Assets -->
		<a-assets timeout="30000">
			<a-asset-item id="car_obj" src="./assets/car/car.obj"></a-asset-item>
			<a-asset-item id="car_mtl" src="./assets/car/car.mtl"></a-asset-item>
		</a-assets>
		
		<!-- Model -->
		<a-obj-model src="#car_obj" mtl="#car_mtl" position="0 0 -6" rotation="0 -50 0"></a-obj-model>

	</a-scene>
</body>
</html>

初期設定を無効にする

光の設定を一度無効にします。
"a-scene"タグを、次の様に書き換えます。
"light"アトリビュートに注目してください。

index.html
<a-scene stats loading-screen="dotsColor: gray; backgroundColor: lightgray" light="defaultLightsEnabled: false">

こうする事でVR空間の光が無効になり、3Dオブジェクトが黒い状態になります。

光を設定する

次は、"a-entity"タグを使ってVR空間に光を設定します。
次のタグを追加してみましょう。

"light"アトリビュートには、次の様な設定ができます。

アトリビュート名 記述例 意味
type 光の種類(ambient, directional, hemisphere, point, spot) 光の種類
color #ffffff 光の色
intensity 1.5 光の強さ

"position"アトリビュートは、光の方向を設定します。

index.html
<a-entity light="type: ambient; color: #ffffff; intensity: 1.5" position="-1 1 0"></a-entity>

すると元の様にVR空間に光が配置され、3Dオブジェクトが綺麗に表示されます。

その他の詳細については公式サイトを参照してください。
Lights

最後に

今回でA-Frameのテキストは終わりです。
HTMLタグだけでここまで出来るのは驚きですよね。
何かの参考になれば幸いです。
ここまで読んで頂きありがとうございました。