A-Frameのprimitive object全部書かなきゃ帰れま10

![20181021184011.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/97310897-5726-5202-90ee-82292c20e62c.png)
この記事は、A-Frameでデフォルトで使えるprimitive objectタグ（`<a-box>`など）を画像と共にまとめたものです。
※この記事は2018年10月時点（A-Frame v0.8）の内容です。

#オブジェクト一覧
WebXRを簡単に実現するライブラリ「A-Frame」は、あらゆる3Dオブジェクトを簡単なhtmlタグで扱うことができます。
この記事ではどんな形がどんなタグで使用できるのかを画像付きでご紹介します。
※長いので忙しい方は目次から飛ぶのをお勧めします

## box
![20181021170344.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/f02d715d-85f1-dabc-3211-97ec4e3c02fb.png)

`<a-box></a-box>`

基本的な立方体。
**depth="" height="" width=""**をそれぞれ指定すると縦横奥行きまで変更できます。
ちなみに画像ではcolor="tomato"にしてみました。
docs: https://aframe.io/docs/0.8.0/primitives/a-box.html

##sphere
![20181021180650.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/6e8a8a00-e911-be08-3c8f-ea18b339d2e5.png)
`<a-sphere></a-sphere>`

**radius=""**で半径の指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-sphere.html

##cone
![20181021171624.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/350e3115-1c97-4942-7de1-0ddac84085c9.png)
`<a-cone></a-cone>`

円錐
**radius-bottom=""**で底面の円の半径
**radius-top=""**で上の円の半径が変更できます。

「上の円の半径」いじるとこんな感じ
![20181021173422.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/ac48e158-0dbd-8c1c-6abd-f2639c959552.png)
`<a-cone color="skyblue" radius-bottom="2" radius-top="0.5"></a-cone>`

docs: https://aframe.io/docs/0.8.0/primitives/a-cone.html

##cylinder
![20181021173730.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/22edb677-a207-04d6-063f-e92fa47f3f7f.png)
`<a-cylinder></a-cylinder>`

円柱
**height=""**で高さ
**radius=""**で円の半径が指定できます。

円柱/cylinderは応用例がたくさんあります。

### ヘキサゴン
![20181021174023.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/921a16d7-8b49-440c-70ba-b0f40e42583f.png)
`<a-cylinder segments-radial="8"></a-cylinder>`

**segments-rasial**（辺の数）は変えられますので3にすれば三角柱に、というように変形が可能です。

### パックマン
![20181021174305.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/1e68263a-02c9-16e3-03da-e3757ee21005.png)
`<a-cylinder color="yellow" theta-start="50" theta-length="280" side="double"></a-cylinder>`

円柱に切り込みを入れてパックマン

### パイプ
![20181021174647.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/c856bb41-5e86-1c64-65c7-92ad509c69c2.png)
`<a-cylinder color="green" open-ended="true"></a-cylinder>`

**open-ended="true"**にすることで円の面を消して空洞のようにできます
（デフォルトが片面描画ですが、両面描画に設定すれば内側の面も描画されてよりパイプっぽくなりそう）

docs: https://aframe.io/docs/0.8.0/primitives/a-cylinder.html

##tetrahedron
![20181021181108.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/f169bd85-719a-7816-9c23-dca97146b642.png)
`<a-tetrahedron></a-tetrahedron>`

三角錐
**radius=""**で半径の指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-tetrahedron.html

##dodecahedron
![20181021175115.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/40fed16d-8edf-3aa3-1bb6-71f80f6c5440.png)
`<a-dodecahedron></a-dodecahedron>`

正十二面体
こちらも上と同様、**radius=""**でサイズの指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-dodecahedron.html


##icosahedron
![20181021175430.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/7887feeb-c1ab-e334-f641-7ef2bba3cf65.png)
`<a-icosahedron></a-icosahedron>`

正二十面体
**radius=""**でサイズの指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-icosahedron.html

##octahedron
![20181021175636.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/b4103e83-bdc4-0399-a736-a7b497d41dca.png)
`<a-octahedron></a-octahedron>`

八面体
**radius=""**でサイズの指定ができます。
余談ですが、color="grey"にすると仮想通貨みが出ます。
docs: https://aframe.io/docs/0.8.0/primitives/a-octahedron.html:title

##plane
![20181021175829.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/c592b43e-0841-19e9-41ee-753f15ecd8cd.png)
`<a-plane></a-plane>`

planeは立体ではなく平面で、地面などの表現に用いられます。
初期値では裏側は描画されません。

**height=""**で高さ（縦幅）
**width=""**で幅（横幅）が指定できます。
docs: https://aframe.io/docs/0.8.0/primitives/a-plane.html

##circle
![20181021171320.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/160f0160-cc83-c60b-70ca-49ec4c46a311.png)
`<a-circle></a-circle>`

planeと同様、平面の円です。同じように初期値では裏側は描画されません。
**radius=""**で半径の指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-circle.html

##ring
![20181021180352.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/c2bfb74a-e4e6-3fab-5de3-0a21a086a213.png)
`<a-ring></a-ring>`

ringもplaneと同様、平面オブジェクトで初期値では裏側は描画されません。
**radius-inner=""**で内側の円の半径
**radius-outer=""**で外側の円の半径の指定ができます。
docs: https://aframe.io/docs/0.8.0/primitives/a-ring.html

##triangle
![20181021182411.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/83bb4132-2507-90b4-e081-4e4fefc74085.png)
`<a-triangle></a-triangle>`

planeと同様、平面オブジェクトで初期値では裏側は描画されません。
**vertex-c="0 0 0"**をそれぞれ指定すると比率が変えられるぽいです。
docs: https://aframe.io/docs/0.8.0/primitives/a-triangle.html

##torus
![20181021182050.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/41143ab6-9ffa-854e-3417-986e17064808.png)
`<a-torus></a-torus>`

トーラス
ドーナツの色にしてみました。
docs: https://aframe.io/docs/0.8.0/primitives/a-torus.html

##torus-knot
![20181021181444.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/fc123262-53ed-918b-be20-9619a3749f7b.png)
`<a-torus-knot></a-torus-knot>`

トーラスノットです。
パラメーター次第でいろんな形ができるようですね。

![20181021181659.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/306452/9c9d977d-3b55-7734-f930-269493e29b1d.png)
`<a-torus-knot color="purple" arc="180" p="2" q="7" radius="5" radius-tubular="0.1"></a-torus-knot>``

docs: https://aframe.io/docs/0.8.0/primitives/a-torus-knot.html

#まとめ
今回はA-Frameの公式ドキュメントにあるオブジェクトタグを画像と一緒にまとめてみました。
この一覧を参考にしてA-FrameでサクWebXRしてみてね