Three.js Advent Calendar 2019まとめ

Three.js Advent Calendar 2019をスレ立てしたあんどうです。

最大10日くらいは一人でもなんとかするつもりでしたが、月初にはまだ3-4日しか埋まっておらず、これは流石に駄目かも分からんなぁと思っていたThree.js Advent Calendar 2019ですが、おかげさまで（ほぼ）完走できました。記事を書いてくださった皆さんどうもありがとうございました。

せっかく24-1本も新たにThree.jsに関係する記事が増えたので、見落とすことがないよう、ここですべての記事を簡単に紹介しておきます。

<dl>
  <dt>1日  <a href="https://qiita.com/technohippy@github/items/33b926d5b451c932b315">WebXR AR Paint その１</a> (<a href="https://twitter.com/technohippy">technohippy</a>)</dt>
  <dd>Three.js r111で追加されたARで空間上に線を描く新しいサンプル「WebXR AR Paint」の紹介です。その１はサンプルを試して見る方法について。4日のその２に続きます。</dd>
  <dt>2日  <a href="https://qiita.com/sakusan393/items/1fbbf89a4a06eb9f504c">3Dモデルの頂点座標にオブジェクトを配置するときは重複に注意しよう</a> (<a href="https://qiita.com/sakusan393">sakusan393</a>)</dt>
  <dd>タイトルのとおりですが、複数の頂点座標が重複している3Dモデルもあり得るので、気をつけましょう。困ったときには<code>BufferGeometryUtils.mergeVertices</code>を使いましょう、というチップスの紹介です。</dd>
  <dt>3日  <a href="https://qiita.com/ukonpower/items/7545337b3d2963d44ce2">Three.jsのためのBlender入門</a> (<a href="https://qiita.com/ukonpower">ukonpower</a>)</dt>
  <dd>3DモデリングツールのBlenderの基本的な操作方法と、Blenderで作成したモデルをglTFで書き出してThree.jsで表示する手順の紹介です。</dd>
  <dt>4日  <a href="https://www.kabuku.co.jp/developers/webxrarpaint">WebXR AR Paint その２</a> (<a href="https://twitter.com/technohippy">technohippy</a>)</dt>
  <dd>WebXR AR Paintの実装の説明です。<a href="https://twitter.com/mrdoob/status/1207103555183628288">Mr.doobがなんか修正したそう</a>なので更新が必要です。いずれにしてもここの情報だけだとARアプリを作る役に立たなそうだったので9日に続きます。</dd>
  <dt>5日  <a href="https://qiita.com/aa_debdeb/items/2a3527b1527380e4af85">three.jsのcustomDepthMaterialを使ってみる</a> (<a href="https://qiita.com/aa_debdeb">aa_debdeb</a>)</dt>
  <dd>頂点位置をシェーダーで変更した物体の影を正しく計算するには`customDepthMaterial`を設定する必要がある、という話です。学びがあります。</dd>
  <dt>6日  <a href="https://qiita.com/naotaro0123/items/13f297fa52a92af36d37">THREE.IKでIK入門してみた</a> (<a href="https://qiita.com/naotaro0123">naotaro0123</a>)</dt>
  <dd>IKはInverse Kinematicsの略で、例えば足先の位置を指定することで、膝関節や股関節の位置や角度もいい感じに設定することができます。Three.jsでこのIKを利用するTHREE.IKの紹介です。</dd>
  <dt>7日  <a href="https://qiita.com/f-a24/items/44efffbb5fae10c3ecb6">three.js / editor</a> (<a href="https://qiita.com/f-a24">f-a24</a>)</dt>
  <dd>実はThree.jsにはやたらと気合の入ったオンラインエディタが付属しています。そのエディタの基本的な使い方の紹介です。</dd>
  <dt>8日  <a href="https://qiita.com/naotaro0123/items/96a0a059ce2983ae9da7">2019年の3D物理演算ライブラリ状況</a> (<a href="https://qiita.com/naotaro0123">naotaro0123</a>)</dt>
  <dd>物理エンジンは重力や衝突などの物理的な現象をシミュレーションしてくれるライブラリです。Three.jsと組み合わせて利用できる物理エンジンの紹介です。</dd>
  <dt>9日  <a href="https://qiita.com/technohippy@github/items/8643c5ca75113672a915">最小構成のWebXR AR</a> (<a href="https://twitter.com/technohippy">technohippy</a>)</dt>
  <dd>WebXR AR PaintのコードからARアプリを作成するために必要な最低限の部分だけを取り出したアプリの紹介です。Three.jsを使用してARアプリを作る際の参考にしてください。</dd>
  <dt>10日  <a href="https://qiita.com/yukidoke/items/20fa7b3fe6af335cdb42">three.jsで一筆書きのlineを作る</a> (<a href="https://qiita.com/yukidoke">yukidoke</a>)</dt>
  <dd>3D空間上に少しずつ線が描かれていくアプリの紹介です。</dd>
  <dt>11日  <a href="https://qiita.com/idacchi/items/e0ae2b7fd49ad4c67aa0">Amazon Sumerianの紹介</a> (<a href="https://qiita.com/idacchi">idacchi</a>)</dt>
  <dd>ARやVRアプリをブラウザ上でGUIを使用して簡単に作成できるAmazon Sumerianの紹介です。</dd>
  <dt>12日  <a href="https://qiita.com/doxas/items/2114d92a9628ed8339c2">ほぼ実録 three.js 案件とピュア WebGL 案件 2019 年版</a> (<a href="https://qiita.com/doxas">doxas</a>)</dt>
  <dd>doxasさんの2019年に関わったプロジェクトまとめです。Three.jsやWebGLを業務でいろいろ利用できてうらやましいです。</dd>
  <dt>13日  <a href="https://qiita.com/naotaro0123/items/9a4562933d114f76ce99">WebAR Tokyo 01に参加してきた</a> (<a href="https://qiita.com/naotaro0123">naotaro0123</a>)</dt>
  <dd>WebARのコミュニティ「WebAR Tokyo」の初回イベントレポートです。会場の雰囲気や各セッションの紹介があります。</dd>
  <dt>14日  <a href="https://qiita.com/naotaro0123/items/0d5fe877354562a6d1d1">2019年のWebGLデバッグツール状況</a> (<a href="https://qiita.com/naotaro0123">naotaro0123</a>)</dt>
  <dd>タイトルのとおりですが、WebGLのデバッグに利用できるさまざまなツールの特徴と開発状況の紹介です。</dd>
  <dt>15日  <a href="https://qiita.com/FMS_Cat/items/96d397dc272a9c402874">Three.js　AR　女の子　出す　方法</a> (<a href="https://qiita.com/FMS_Cat">FMS_Cat</a>)</dt>
  <dd>WebXR AR ModuleとWebXR Plane Detectionを利用して、AR空間上にVRMフォーマットの女の子を表示する方法です。</dd>
  <dt>16日  <a href="https://qiita.com/misaki_mofu/items/145ac26d600b429a6f8a">three.js with Nuxt.js</a> (<a href="https://qiita.com/misaki_mofu">misaki_mofu</a>)</dt>
  <dd>Nuxt内でThree.jsを使用する際のコツを紹介してくれています。サンプルがかっこいいです。</dd>
  <dt>17日  <a href="https://qiita.com/Quarter-lab/items/151f06bddea1fc9cf4d7">React-three-fiber + TypeScript で苦労したこと</a> (<a href="https://qiita.com/Quarter-lab">Quarter-lab</a>)</dt>
  <dd>React-three-fiber + TypeScriptでOrbitControlsを使用する方法の紹介です。</dd>
  <dt>18日  <a href="https://www.kabuku.co.jp/developers/three-js%e3%81%ab%e5%85%a5%e9%96%80%ef%bc%8b%e6%89%8b%e3%82%92%e6%a4%9c%e5%87%ba%e3%81%97%e3%81%a6ar-js%e3%81%a8%e7%b5%84%e3%81%bf%e5%90%88%e3%82%8f%e3%81%9b%e3%81%a6%e3%81%bf%e3%81%9f">Three.jsに入門＋手を検出してAR.jsと組み合わせてみた </a> (<a href="https://qiita.com/s-haya-123">s-haya-123</a>)</dt>
  <dd>Three.jsとAR.jsとHandtrack.jsを利用して、ジェスチャーでARマーカー上に炎のような効果を表示するアプリの紹介です。</dd>
  <dt>19日  <a href="https://qiita.com/taptappun/items/f26028d8585173b9893c">three.js with React</a> (<a href="https://qiita.com/taptappun">taptappun</a>)</dt>
  <dd>React内でthree.jsを使う方法の紹介です。</dd>
  <dt>20日  <a href="https://qiita.com/sawa-zen/items/05ff33a3531f469b29ef">Three.jsを用いたモデルのアニメーション切り替えを簡単にした話</a> (<a href="https://qiita.com/sawa-zen">sawa-zen</a>)</dt>
  <dd>Three.jsのAnimationMixerが使いにくいので、より簡潔にアニメーションを切り替えることができるライブラリを作成したそうです。</dd>
  <dt>21日  <a href="https://qiita.com/Kkod/items/110a7db497b84fff2e25">THREE.LatheBufferGeometryでグニュグニュ動く回転体を作ろう</a> (<a href="https://qiita.com/Kkod">Kkod</a>)</dt>
  <dd><code>LatheBufferGeometry</code>で作成した回転体の断面を時間変化させてグニュグニュ動かします。環境マップを追加したサンプルの動きが楽しい。</dd>
  <dt>22日  <a href="https://qiita.com/one-color-low/items/eef0e24ac47b9a1632ed">Three.jsとIndexedDBでMMDモデルビューアーを作った</a> (<a href="https://qiita.com/one-color-low">one-color-low</a>)</dt>
  <dd>MMDLoaderを改造してArrayBufferを直接読み込めるようにし、IndexedDBに保存したMMDモデルを表示できるようにしたそうです。MMDLoaderの改造は普通にpullreqすると喜ばれるんじゃないでしょうか。</dd>
  <dt>23日  <a href="https://qiita.com/ohisama@github/items/1524553eea0c71dd2189">threeでshadertoy</a> (<a href="https://qiita.com/ohisama@github">ohisama@github</a>)</dt>
  <dd>RawShaderMaterialを使用してthree.jsでshadertoyのスクリプトを動かしたそうです。</dd>
  <dt>24日  <a href="https://qiita.com/uto-usui/items/b97c33238b4b526bbe56">Dispose three.js objects with Nuxt</a> (<a href="https://qiita.com/uto-usui">uto-usui</a>)</dt>
  <dd>Nuxt内でThree.jsを使用したときに、メモリリークしないように適切にdisposeする方法の紹介です。</dd>
  <dt>25日  <a href="https://qiita.com/technohippy@github/items/bb9d19b3e0bf43433464">Three.js Advent Calendar 2019まとめ</a> (<a href="https://twitter.com/technohippy">technohippy</a>)</dt>
  <dd>これ</dd>
</dl>

皆さんいろいろと新しい情報を紹介してくださいましたが、月末ということでさっそく先日Three.jsのr112が出たようです。俺たちのThree.js（のChange Log確認）はこれからだ！

それでは皆さん良いお年を。