Blender+αの大発表会3
「WebGLアドオン作り始めました」
2015.08.29
自己紹介
  名前  : なおたろー
  twiter : @naotaro0123
・Live2Dという2.5D〜3Dソフト会社のプログラマー
・blender歴は2年(3DCGMeetupやblender会でLTしたり)
最近の興味あるもの
 Natve WebGL!!(生WebGL)
three.jsなどライブラリを使わないやつです
生WebGLで学んだこと
シェーダーが書けるようになってポストエフェクトとか
オフスクリーンとか色々わかってきた!
 (以下はLive2D WebGL版)
生WebGLで学んだこと
blenderで3Dモデルをインポートして、WebGLで表示が
できた!(obj形式なのでアニメーションはしない)
これを参照しました → 生WebGL入門:初音ミクの美麗3Dモデルを表示する(前編)
                htp://nmi.jp/archives/582
blenderのWebGLアドオン
・blend4web
  個人的には超お手軽でハイクオリティなWebGLアドオン。
  テクスチャなどbase64形式に変換するのでwebサーバー不要
・three.js
  WebGLの定番アドオン!objやstlなど幅広い3Dファイルの
  ロードに対応してる。fx変換やmayaからthree.js形式(js)
  に出力するプラグインも入ってた
  (utls/coverters/fx, utls/exportes/maya配下にある)
blenderのWebGLアドオン
これらを使えば、WebGL出力できるけども・・・
生WebGLに対応したものはないのか!?
要するに生データで出したいっ!
blenderのWebGLアドオン
ググったら生WebGLプラグインがありました!
こっちにも別のものが
公開されてた
blenderのWebGLアドオン
だがしかし、動かない...(; >_<) /
blender2.49対応なので、pythonバージョンも違う
せい!?
Python2.xと3.x系で
PGの書き方も違う?
blenderのWebGLアドオン
まぁ、これをベースに修正すれば簡単に
プラグイン更新できるんじゃね??
         ↑
       (1週間前)
blenderのWebGLアドオン
そんな甘くはなかった・・・。
import Blenderとかなくなってる?
Draw.Create()とか何なんだ〜!?
それ以前にpython経験なくてよくわからず...orz
blenderのWebGLアドオン
じゃあ、1から自分で作るか!
自分で作った方が最新Ver対応できるし、
勉強になるし!
という訳でpython勉強とblenderアドオンの作り方を調べる
blnederのアドオン開発
親切な方が作り方を示してくれてた♪
・Blender アドオンの作り方
 htp://matosus304.blog106.fc2.com/blog-entry-257.html
・Qita – Blenderプラグインの作り方
 htp://qiita.com/nut/items/a836391723bd28cd3e4c
・最新にも対応してる公式もわかりやすい(英語)
 htp://www.blender.org/api/blender_python_api_2_75a_release/contents.html
blnederのアドオン開発
<開発環境>
sublime textとblenderのコード補完アドオンで開発
 → Auto Cmpleton in Blenders Text Editor
簡単なコードテストは、pythonコンソールで動作確認。
参考ソースは既存のアドオンを見た方が早かった。
blnederのアドオン開発
とりあえず、簡単なExportはできるのでデモします!
  (blenderから出力 → WebGLで表示)
blnederのアドオン開発
<今回の仕様>
 ・頂点の位置情報をjsファイル出力
 ・js内は配列宣言
 ・出力したjsをscriptタグで参照
<今後の予定>
 ・インデックスバッファ対応(同じ頂点を結んで無駄を省くやつ)
 ・マテリアルやテクスチャマッピング、モディファイア対応
  <---------- ここまでできたら公開します ---------->
 ・リグやアニメーション書き出し対応など
 ・バイナリデータ化など
blnederのアドオン開発
<開発について聞きたいこと>
・コード修正後、blender再起動しないと修正が反映されない?
 (addonの再チェックや更新してもダメだった)
・デバッグの仕方をprint文やpythonコンソールで確認してた
 (効率的でなさげ)
誰か良いデバッグ方法やエディタなど知ってたら教えて下さい!
blnederのアドオン開発
<開発について聞きたいこと>
・公式のAPI Documentの見方がいまいち分からない
   例えば頂点数を取る以下のコード
   len(bpy.data.objects['Cube'].data.vertces)
Bpy.data.objectsまでは辿れるけど
その下のdataがドキュメントにない?
ありがとうございました!

Blender+αの大発表会3-WebGLAddon