SlideShare une entreprise Scribd logo
1  sur  11
Télécharger pour lire hors ligne
@yacchin1205
Satoshi Yazawa/やっちん
   学生時代:ブラウザゲーム開発のアルバイト
   起業に参加:次世代DVD的な開発
   Blu-rayに敗戦するわリーマンショックだわ
    ◦ 関係者のみなさまには毎度ご迷惑をおかけしております


   現在、流浪の民
    ◦   Android本の翻訳のお手伝いなどさせていただいたり
    ◦   研究開発的なシステム開発させていただいたり
    ◦   高専・専門学校で非常勤講師をさせていただいたり
    ◦   最近 @mnagaku さんの下でNIIでしごとちゅう
   裸眼立体視が趣味
    ◦ どうやら人間は2次元にいけないらしい→2次元が3次元にこい
   コンテンツがとにかく少ない
    ◦ 出力形式が異なる / プラットフォームが異なる
    ◦ 機器によって視差のつけ方を調整したかったり

   ネタストック
    ◦ ARgil: C++で簡単なMMDのエンジンを書いてみて遊んだり
    ◦ GWT(Google Web Toolkit): Javaだけでサーバ、クライアント
      コードを書くお仕事したり

   SDK依存度が低い小さなJava MMDエンジン書けば幸せ
    になれそう
    ◦ WebGL勉強すればブラウザでお手軽MMD立体視ビューア
    ◦ OpenGL ES勉強すればEVO 3Dみたいな変態端末でも幸せに
   GWT(Google Web Toolkit)
    ◦ JavaをJavaScriptにコンパイルしてくれる超技術
    ◦ native宣言してアレコレしてあげると直接JavaScriptも書ける

   制約
    ◦ 入出力系は無理
      java.io, java.nioとか無理
      バイト配列は扱えるけど、文字コードの解釈は無理
    ◦ Reflection系も無理
      Object.clone()も無理
      Class.newInstance()も無理
      バイトコード操作なんて論外
    ◦ javax.vecmathもまあ無理
   MMDエンジン
    ◦ ARgilのコード: PMDEditorなどを参考にさせていただいたり
    ◦ ひたすらC++コード→Javaコードへの変換をする苦行
    ◦ 依存部分の切り離し
      I/O, OpenGL部分はインタフェース化してプラットフォームごとに
       実装
    ◦ チューニング
      JavaはGCがつらい。できるだけnewの回数を減らすように工夫
   物理エンジン: JBullet
    ◦ javax.vecmath … Object.clone()とかやってる
    ◦ Stack … バイトコード処理で高速化している・・・
    ◦ newInstanceとかも意外とやってる
   とりあえずブラウザ / Androidでなんか動くように
    なったのでデモ
    ◦ モデルデータは初音ミクDIVAっぽいどモデル(ままま様), あ
      ずにゃん(かこみき様), モーションデータは
      MotionDataBaseVer0.02(Q氏様)
      http://3xma.blog49.fc2.com/
      http://kakomiki.blog16.fc2.com/blog-entry-259.html
      http://www.nicovideo.jp/watch/sm10001743

   MMDデモ(モデル対応はまだまだだけど)
    ◦ http://gwtmmd.appspot.com/
   JBullet on GWTデモ
    ◦ http://gwtmmd.appspot.com/?bullet=true
   RockVision 3D
    ◦ 左右のピクセルを交互に
   EVO 3D
    ◦ ビューポートを横2分割して左右の絵を描く
   立体視を趣味にする者がいつもぶちあたる壁
   やってること
    ◦ 2枚の左右視点をずらした3DなCanvasからArrayを抜き出
      す
    ◦ 2DなCanvasに左右交互に書き出す
    ◦ 位置合わせ不要にするためにFullscreen APIを使う


   RockVision 3Dはもっと評価されてもいいと思ってる
    ◦ 欠点もいろいろあるけど
   非力なノートでも、まあそこそこの速度で・・・?
    ◦ 現状でもゲーム用デスクトップPCだと1フレーム描くのに30msくら
      いでいけたりする
    ◦ GCの負荷が高いようで、newの回数を減らすとかなり性能向上す
      るみたい

   最初の読み込みが遅い
    ◦ 頂点データを全部GWTの仕掛け上でシリアライズしている
    ◦ XHRのArray転送を使えばたぶんマシになる

   GWTで動くものを作っておくと、そこそこ他のところに移植
    できるのでたのしい
    ◦ 意外と高速?
   半額だし!!!
    ◦ Windows Vista/7のことしか書いてない: DisplayLinkのドライバを
      入れればWinXP, Mac OSでもイケる
   作り途中を随時アップしていきます(今のところChromeだけ)
    ◦ http://gwtmmd.appspot.com/mmd_gwt_rv3d.html
      RockVision3D向け描画

Contenu connexe

Plus de Satoshi Yazawa

dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4Satoshi Yazawa
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜSatoshi Yazawa
 
OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1Satoshi Yazawa
 
NIIクラウドチームとDocker
NIIクラウドチームとDockerNIIクラウドチームとDocker
NIIクラウドチームとDockerSatoshi Yazawa
 

Plus de Satoshi Yazawa (6)

dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4dodaiのProvisioning周辺探訪 - dodai勉強会 #4
dodaiのProvisioning周辺探訪 - dodai勉強会 #4
 
DockerでJupyter使おうぜ
DockerでJupyter使おうぜDockerでJupyter使おうぜ
DockerでJupyter使おうぜ
 
OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1OpenStackとdodai - dodai勉強会 #1
OpenStackとdodai - dodai勉強会 #1
 
NIIクラウドチームとDocker
NIIクラウドチームとDockerNIIクラウドチームとDocker
NIIクラウドチームとDocker
 
20120611 SC研究会
20120611 SC研究会20120611 SC研究会
20120611 SC研究会
 
20120518 SE勉強会
20120518 SE勉強会20120518 SE勉強会
20120518 SE勉強会
 

GCS2012 NADEC: WebGL+GWTでミクさんを裸眼立体視してみた

  • 2. 学生時代:ブラウザゲーム開発のアルバイト  起業に参加:次世代DVD的な開発  Blu-rayに敗戦するわリーマンショックだわ ◦ 関係者のみなさまには毎度ご迷惑をおかけしております  現在、流浪の民 ◦ Android本の翻訳のお手伝いなどさせていただいたり ◦ 研究開発的なシステム開発させていただいたり ◦ 高専・専門学校で非常勤講師をさせていただいたり ◦ 最近 @mnagaku さんの下でNIIでしごとちゅう
  • 3. 裸眼立体視が趣味 ◦ どうやら人間は2次元にいけないらしい→2次元が3次元にこい
  • 4. コンテンツがとにかく少ない ◦ 出力形式が異なる / プラットフォームが異なる ◦ 機器によって視差のつけ方を調整したかったり  ネタストック ◦ ARgil: C++で簡単なMMDのエンジンを書いてみて遊んだり ◦ GWT(Google Web Toolkit): Javaだけでサーバ、クライアント コードを書くお仕事したり  SDK依存度が低い小さなJava MMDエンジン書けば幸せ になれそう ◦ WebGL勉強すればブラウザでお手軽MMD立体視ビューア ◦ OpenGL ES勉強すればEVO 3Dみたいな変態端末でも幸せに
  • 5. GWT(Google Web Toolkit) ◦ JavaをJavaScriptにコンパイルしてくれる超技術 ◦ native宣言してアレコレしてあげると直接JavaScriptも書ける  制約 ◦ 入出力系は無理  java.io, java.nioとか無理  バイト配列は扱えるけど、文字コードの解釈は無理 ◦ Reflection系も無理  Object.clone()も無理  Class.newInstance()も無理  バイトコード操作なんて論外 ◦ javax.vecmathもまあ無理
  • 6. MMDエンジン ◦ ARgilのコード: PMDEditorなどを参考にさせていただいたり ◦ ひたすらC++コード→Javaコードへの変換をする苦行 ◦ 依存部分の切り離し  I/O, OpenGL部分はインタフェース化してプラットフォームごとに 実装 ◦ チューニング  JavaはGCがつらい。できるだけnewの回数を減らすように工夫  物理エンジン: JBullet ◦ javax.vecmath … Object.clone()とかやってる ◦ Stack … バイトコード処理で高速化している・・・ ◦ newInstanceとかも意外とやってる
  • 7. とりあえずブラウザ / Androidでなんか動くように なったのでデモ ◦ モデルデータは初音ミクDIVAっぽいどモデル(ままま様), あ ずにゃん(かこみき様), モーションデータは MotionDataBaseVer0.02(Q氏様)  http://3xma.blog49.fc2.com/  http://kakomiki.blog16.fc2.com/blog-entry-259.html  http://www.nicovideo.jp/watch/sm10001743  MMDデモ(モデル対応はまだまだだけど) ◦ http://gwtmmd.appspot.com/  JBullet on GWTデモ ◦ http://gwtmmd.appspot.com/?bullet=true
  • 8. RockVision 3D ◦ 左右のピクセルを交互に  EVO 3D ◦ ビューポートを横2分割して左右の絵を描く
  • 9. 立体視を趣味にする者がいつもぶちあたる壁  やってること ◦ 2枚の左右視点をずらした3DなCanvasからArrayを抜き出 す ◦ 2DなCanvasに左右交互に書き出す ◦ 位置合わせ不要にするためにFullscreen APIを使う  RockVision 3Dはもっと評価されてもいいと思ってる ◦ 欠点もいろいろあるけど
  • 10. 非力なノートでも、まあそこそこの速度で・・・? ◦ 現状でもゲーム用デスクトップPCだと1フレーム描くのに30msくら いでいけたりする ◦ GCの負荷が高いようで、newの回数を減らすとかなり性能向上す るみたい  最初の読み込みが遅い ◦ 頂点データを全部GWTの仕掛け上でシリアライズしている ◦ XHRのArray転送を使えばたぶんマシになる  GWTで動くものを作っておくと、そこそこ他のところに移植 できるのでたのしい ◦ 意外と高速?
  • 11. 半額だし!!! ◦ Windows Vista/7のことしか書いてない: DisplayLinkのドライバを 入れればWinXP, Mac OSでもイケる  作り途中を随時アップしていきます(今のところChromeだけ) ◦ http://gwtmmd.appspot.com/mmd_gwt_rv3d.html  RockVision3D向け描画