Top Banner
Firefox OSアプリ 「ModeView」 制作者:秋葉秀樹 「さわってみよう Firefox OS」発表作品 3Dモデルビューア
20

Firefox OSアプリ 「ModeView」

Jun 27, 2015

Download

Documents

Hideki Akiba

「さわってみよう Firefox OS」発表作品
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Firefox OSアプリ 「ModeView」

Firefox OSアプリ「ModeView」制作者:秋葉秀樹

「さわってみよう Firefox OS」発表作品

3Dモデルビューア

Page 2: Firefox OSアプリ 「ModeView」

秋葉 秀樹

広告業界に20年間身を置き、現在はJavaScriptやFlashの技術を

使ったインタラクティブコンテンツから3DCG制作まで様々。

現在はデザイナー向けの講演活動、またWeb Designing他、寄稿な

ど多くの執筆活動も行っている。

HTML5関連の関西コミュニティにもコアメンバーとして参加。

株式会社インヴォーグのテクニカルアドバイザー兼CTOに就任。

Page 3: Firefox OSアプリ 「ModeView」

http://designers-hack.net/event/004firefoxos/

Firefox OSとはアプリケーションはすべて

Web標準技術(HTMLベース)のみで開発するOS

よくわからない方は先に、今回のイベントページをどうぞ!

今回はハッカソンなのに、たった一人でつくってみました 

Page 4: Firefox OSアプリ 「ModeView」

ホーム Blenderでつくったモデルを指定

Page 5: Firefox OSアプリ 「ModeView」

背景色をピンクに 照明の色を青に別のモデルが呼び出された

Page 6: Firefox OSアプリ 「ModeView」

仕様Blenderで3Dモデリング↓BlenderからThree.jsで読みやすいJSフォーマットで出力↓アプリでローディング、表示↓ライティング色、背景色をユーザが変えることができる

読み込む3Dモデルを選択背景色を変更ライティングを変更

Page 7: Firefox OSアプリ 「ModeView」

使ったアプリケーション

FirefoxとB2G … 当然!PCで検証するためBlender … モデリングソフト(UIが取っつきにくいけどフリー)Dreamweaver … コーディング(もう最近他に乗り換えたい)Photoshop … アイコンなどの素材LESS … CSSの値が多く共通しているので、変数などを使った

Page 8: Firefox OSアプリ 「ModeView」

使ったライブラリ

jQuery 1.8.2 Three.js

Page 9: Firefox OSアプリ 「ModeView」

three.js/utils/exporters/blender/2.63/scripts/addons/io_mesh_threejs

この「io_mesh_threejs」フォルダを

Applications/blender/Contents/exporters/blender/2.63/scripts/addons/io_mesh_threejs/MacOS/2.63/scripts/addons/ここ

Three.js内にある

に入れることで、Blenderのエクスポートに「Three.js」が追加される

Blender側の準備

Page 10: Firefox OSアプリ 「ModeView」

BlenderよりThree.jsと親和性が高いフォーマットで書き出せる

Page 11: Firefox OSアプリ 「ModeView」

出力されたモデルデータmodel.js

どうやらJSONっぽい

Page 12: Firefox OSアプリ 「ModeView」

HTML5マークアップ

header

canvas(Three.jsが生成)

footer

div(フッタのリストナビゲーションをタップしてフェードインしながらあがってくるアニメーションはCSS3のTransitionsを使用)

li(border-radiusによる丸型ボタン)

Page 13: Firefox OSアプリ 「ModeView」

サムネイル群は最初見えない状態<div id="models" class="picker"><!-- モデル変更用サムネイルをli要素で --></div>

<div id="bgColor" class="picker"><!-- 背景色変更用サムネイルをli要素で --></div>

<div id="lightColor" class="picker"><!-- 照明色変更用サムネイルをli要素で --> </div>

/* CSS */.picker {

position: absolute;bottom: -200px;opacity: 0;-moz-transition: .3s;…⋯

}

サムネイルを含むdivはすべてこの辺りに…⋯

Page 14: Firefox OSアプリ 「ModeView」

表示させたいパネルのdiv要素にだけクラス名「activePanel」をつける

<div id="models" class="picker"><!-- モデル変更用サムネイルをli要素で --></div>

<div id="bgColor" class="picker"><!-- 背景色変更用サムネイルをli要素で --></div>

<div id="lightColor" class="picker activePanel"><!-- 照明色変更用サムネイルをli要素で --> </div>

/* CSS */.activePanel { bottom: 80px; opacity: 1;}CSSによる動き

この場合div#lightColorにクラスがついたので、bottomとopacityがTransitonsにより変動してアニメーションする

Page 15: Firefox OSアプリ 「ModeView」

つまりCSSクラスactivePanelがついたdivだけがアニメーション表示される

<div id="models" class="picker"><!-- モデル変更用サムネイルをli要素で --></div>

<div id="bgColor" class="picker"><!-- 背景色変更用サムネイルをli要素で --></div>

<div id="lightColor" class="picker activePanel"><!-- 照明色変更用サムネイルをli要素で --> </div>

#lightColorにだけactivePanelクラスがついた状態をしめす↓#lightColorがせり上がってくるCSSによる動き

また消すときは、クラスを外すだけでOK、「下ろすアニメーション」は書く必要はない

Page 16: Firefox OSアプリ 「ModeView」

HTML/CSS/JavaScriptでUIアニメーションを行う場合CSSのTransitionsやAnimationsを有効に使い、JavaScriptは移動するタイミングでCSSクラスをつけるために使うことを優先して考える。

つまりjQueryのanimate()などを使うより先にCSSの活用を検討する。状況に応じて判断しよう。

Page 17: Firefox OSアプリ 「ModeView」

@btnSize: 30px;

.closeBtn { background: #F00; width: @btnSize; height: @btnSize; border-radius: @btnSize; color: white; position: absolute; right: @btnSize / 2; top: -@btnSize / 2; text-align: center; -moz-box-sizing: border-box;}

LESSは知り尽くさなくても、変数だけ理解するだけでもとても助かる。なぜならボタンサイズなど、共通の値で設計(デザイン)するケースがUIデザインの世界では多いから、何度もブラッシュアップするのに役立つ。

.closeBtn { background: #F00; width: 30px; height: 30px; border-radius: 30px; color: white; position: absolute; right: 15px; top: -15px; text-align: center; -moz-box-sizing: border-box;}

CSS共通の値が多いので変数を使用

Page 18: Firefox OSアプリ 「ModeView」

HTMLベースでFirefox OSアプリをつくった感想

遷移(Transitions)などはCSSを優先して使ってみよう

他のブラウザのことを考えないでいいのでプリフィックスは-moz-だけ

Webサイト制作で慣れ親しんだ言語のままアプリをつくれる

敷居が高いのは実機に焼く作業(ミスターB2Gに焼いてもらった)

動作確認がブラウザでOKなので、トライアンドエラーがとてもラク

Page 19: Firefox OSアプリ 「ModeView」

3Dモデルビューの感想

Three.jsつくったひとすごい。

ポリゴン、テクスチャ、ボーンアニメーションも、

ライブラリで対応可能なので、やる気になればもっと

すごいものができる。

実用性としては、プロダクトの紹介などで

使えるかもしれない。

Page 20: Firefox OSアプリ 「ModeView」

Thanks!

次回12月中旬の土曜は総集編!@豆蔵トレーニングルーム(新宿)

Web標準技術でアプリをつくりたいデザイナーさん向けの

セッションを予定中。

Twitterハッシュタグ「#TizenJP」をチェック!