第5回 html5minutes! lt 「ねこでもできるwebgl」

30
HTML 5minutes! ~ tritonjs ~

Upload: shinnosuke-morimoto

Post on 09-Aug-2015

357 views

Category:

Education


3 download

TRANSCRIPT

Page 1: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

HTML  5minutes!  ~  triton-­‐js  ~

Page 2: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

ねこでもできるWebGL

Page 3: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

WebGLを使った例

Page 4: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

翠星のガルガンティア  ~キミと届けるメッセージ~

Page 5: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

Genealogy  of  Nike  Free

Page 6: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

WebGLすごい

Page 7: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

でも難しいんでしょう?

Page 8: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

そこで jThree

Page 9: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」
Page 10: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

どんな感じ?

Page 11: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

jThree ・GOMLという独自のタグを使って定義・描画する    ・スクリプトはほぼjQueryと同じ記法で書ける  

Page 12: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

具体的に

Page 13: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

立方体をつくる <goml>  

 <head>      <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  

clearColor:  #fff;"/>          <geo  id="geo"  type=”Cube"  param="2.5"  />      <mtl  id="mtl"  type="MeshPhong"  param="color:  #0f0;"  />    </head>    <body>      <scene>        <mesh  geo="#geo"  mtl="#mtl"  />        <!-­‐-­‐  カメラとかライトとか(略)  -­‐-­‐>      </scene>    </body>  

</goml>                  

Page 14: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

立方体をつくる <goml>  

 <head>      <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  

clearColor:  #fff;"/>          <geo  id="geo"  type=”Cube"  param="2.5"  />      <mtl  id="mtl"  type="MeshPhong"  param="color:  #f00;"  />    </head>    <body>      <scene>        <mesh  geo="#geo"  mtl="#mtl"  />        <!-­‐-­‐  カメラとかライトとか(略)  -­‐-­‐>      </scene>    </body>  

</goml>                  

Page 15: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

立方体をつくる

Page 16: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

3Dモデルを表示する <head>  

 <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  clearColor:  #fff;"/>      </head>  <body>  

 <scene>      <mmd  id=""  model="model/miku/index.pmx"  moCon="moCon/

world.vmd"  style=""></mmd>                    <obj  id=""  model="stage/gekido/index.x"  style="scale:  10;  posiCon:  0  -­‐46.5  0;  rotateY:  1.57;"></obj>  

   <!-­‐-­‐  カメラとかライトとか(略)  -­‐-­‐>    </scene>  

</body>  

Page 17: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

3Dモデルを表示する <head>  

 <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  clearColor:  #fff;"/>      </head>  <body>  

 <scene>      <mmd  id=""  model="model/miku/index.pmx"  moRon="moRon/

world.vmd"  style=""></mmd>                    <obj  id=""  model="stage/gekido/index.x"  style="scale:  10;  posiRon:  0  -­‐46.5  0;  rotateY:  1.57;"></obj>  

   <!-­‐-­‐  カメラとかライトとか(略)  -­‐-­‐>    </scene>  

</body>  

Page 18: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

3Dモデルを表示する

Page 19: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

ここまでJavaScript (ほとんど) 書いていません

Page 20: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

3Dモデルを表示する    

jThree.MMD.play();    

(MMD  moConを再生するメソッドだけ書いてます)  

Page 21: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

テクスチャを貼る <head>  

 <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  clearColor:  #fff;"/>  

 <txr  id="txrImage"  src="img/sky.png"  param=""  onLoad=""/>    <mtl  id="mtlImage"  type="MeshPhong"  param="map:  #txrImage;"  />  

</head>  <body>  

 <scene>      <mesh  geo="#geo"  mtl="#mtl"  />      <!-­‐-­‐  カメラとかライトとか(略)  -­‐-­‐>    </scene>  

</body>  

Page 22: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

動画を貼る <head>  

 <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  clearColor:  #fff;"/>  

 <import>                    <style>div  {color:  #f00;  height:  50px;  posiRon:  absolute;  top:  0;}</style>  

   <video  autoplay>                                    <source  src="video/nhk1.mp4"  />                                    <source  src="video/nhk1.ogg"  />                            </video>                            <canvas></canvas>                  </import>  

 <mtl  id="mtlImage"  type="MeshPhong"  param="map:  #txrImage;"  />  </head>  

Page 23: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

テクスチャを貼る <head>  

 <rdr  frame=".glview"  camera="camera:first"  param="anCalias:  true;  clearColor:  #fff;"/>  

 <import>                    <style>div  {color:  #f00;  height:  50px;  posiRon:  absolute;  top:  0;}</style>                    <div>Hello  World!</div>  

 <canvas></canvas>                  </import>  

 <mtl  id="mtlImage"  type="MeshPhong"  param="map:  #txrImage;"  />  </head>  

Page 24: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

JavaScript

Page 25: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

クリックイベント

<mesh  id=“cube”  geo="#geo"  mtl="#mtl"  />  

j3("#cube").click(funcCon()  {                  j3(this).animate({posiConY:  "+=1"},  500);  });  

GOML

script.js

Page 26: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

append / removeもできる

<geo  id="geo"  type=”Cube"  param="2.5"  />  <mtl  id="mtl"  type="MeshPhong"  param="color:  #0f0;"  />  

j3("scene").append(‘<mesh  id=“cube”  geo="#geo"  mtl=“#mtl”  />');  j3(“#cube”).remove();  

GOML

script.js

Page 27: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

よくないところ

Page 28: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

よくないところ

•  遅い  

– three.js、jQueryに依存  

•  公式ドキュメントがない  

Page 29: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

Documents and Samples •  jThree公式  

h]p://jthree.jp  

•  有志によるjThree  wiki  h]p://seesaawiki.jp/j3wiki/  

•  ハンズオン内容のサンプルまとめ  次ページのEditorにそのままコピペで動くように作ってあります  h]ps://github.com/moshisora/jThreeSamples  

Page 30: 第5回 HTML5minutes! LT 「ねこでもできるWebGL」

jThree editor

•  jThree  editor  ローカル環境を整えなくてもWebブラウザでjThreeを実行できるように、Editorを作ってくださっています。    保存・公開機能付きなのでつくったものをどんどんシェアしてみてください!    URL  :  h]p://editor.jthree.jp