SlideShare ist ein Scribd-Unternehmen logo
1 von 20
フォントをつくるサイトで使った
CanvasとSVGの話
面白法人カヤック 本多大和
本多大和
ほんだ やまと
面白法人カヤック所属
@calmbooks
自己紹介
http://calmbooks.tumblr.com
最近つくったもの
Q コーポレートサイト
http://www.q-co.jp/
声の実体化体験
http://vimeo.com/96663702
本日紹介するもの
FONTA
一人一文字 みんなでつくるフォント
http://fonta.kayac.com
1人1文字でつくるフォントのサイト。
サイト上でユーザに1人1文字書いてもらい、
約7000人で1つのフォントをつくります。
つくったフォントはダウンロードできたり、
Webフォントとして使えたりします。
フォントを「書く」機能!
FONTAでのフォントは、ベクター形式を採用。
書くときにパスの単純化を行なっています。
1.三角関数、内積.. 数学的な計算で、筆跡の周りの点を算出
2.Paper.js を使い、パスの単純化(点の数を減らす、ベジェ曲線にする)
3.SVGのPath形式で文字列をサーバにPOST
http://paperjs.org/
M212.3 673.7C200.9 678.4 186.8 679.1 178.0 ….. C464.3 891.6 461.3 879.6 461.3 879.6z
SVGのPath形式
参考: 10分でわかるSVG 基礎編 - @IT
http://www.atmarkit.co.jp/ait/articles/1206/01/news143.html
開始点の移動 → m M
直線 → l L
水平線 → h H
垂直線 → v V
二次ベジェ曲線 → q Q
…
フォントを「つくる」仕組み!
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"
>
<svg xmlns="http://www.w3.org/2000/svg" version="1.1">
<defs>
<font id="FONTA" horiz-adv-x="1024" vert-adv-y="1024" >
….(略)
<glyph unicode="&#x12A;" d="M0 0" />
<glyph unicode="&#x12A;" d="M0 0" />
….(略)
</font>
</defs>
</svg>
SVGフォントのフォーマット
参考: svg要素の基本的な使い方まとめ
http://www.h2.dion.ne.jp/~defghi/svgMemo/svgMemo_16.htm
文字の数の分、繰り返されている
フォントの形式
.ttf、.otf
一般的なフォントの形式
.eot
IE用にあると良い
.woff
Webページ用につくられた形式 軽量
.svg
字形がSVGでつくられた形式
SVGフォントから、.ttf .eot .woff への変換
http://fontforge.org/ja/
< サーバサイドのお仕事です。
@Konboi
フォントを「見る」演出!
ユーザーの筆跡を再現するアニメーション
[
{
weight : "S", // 線の太さ( S / M / L )
path : [{ x : 10, y : 5 }, { x : 10, y : 5 } ..] // 筆跡ポイントの配列
},
{
weight : "M", // 線の太さ( S / M / L )
path : [{ x : 10, y : 5 }, { x : 10, y : 5 } ..] //筆跡ポイントの配列
}
…
]
筆跡アニメーションのデータ形式
1.投稿のときに、筆跡データをPOST
2. サーバで保持しておいたデータを取得
3.筆跡データを元に筆跡アニメーションを再現
ご清聴ありがとうございました。

Weitere ähnliche Inhalte

Was ist angesagt?

プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
Cake YOSHIDA
 
Firebase × Swift ~ときどきPython~
Firebase × Swift ~ときどきPython~Firebase × Swift ~ときどきPython~
Firebase × Swift ~ときどきPython~
Yuya Oka
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
Ryunosuke SATO
 
Ruby introduction for_rails
Ruby introduction for_railsRuby introduction for_rails
Ruby introduction for_rails
Takashi Toyofuku
 

Was ist angesagt? (20)

プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話プロジェクトでRubocopを使って自動コードレビューしてみた話
プロジェクトでRubocopを使って自動コードレビューしてみた話
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
 
WordPressの使えるプラグイン2013
WordPressの使えるプラグイン2013WordPressの使えるプラグイン2013
WordPressの使えるプラグイン2013
 
RubyMotion もくもく会 in Osaka 活動報告
RubyMotion もくもく会 in Osaka 活動報告RubyMotion もくもく会 in Osaka 活動報告
RubyMotion もくもく会 in Osaka 活動報告
 
上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ
上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ
上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ
 
僕が作ってきたWebサービス追悼式 #NGK2012B
僕が作ってきたWebサービス追悼式 #NGK2012B僕が作ってきたWebサービス追悼式 #NGK2012B
僕が作ってきたWebサービス追悼式 #NGK2012B
 
20090717 Ruby Kaigi Lightning Talk
20090717  Ruby Kaigi  Lightning Talk20090717  Ruby Kaigi  Lightning Talk
20090717 Ruby Kaigi Lightning Talk
 
シンボルフォント — それは、新しい画像形式
シンボルフォント — それは、新しい画像形式シンボルフォント — それは、新しい画像形式
シンボルフォント — それは、新しい画像形式
 
Vim no susume
Vim no susumeVim no susume
Vim no susume
 
20170602 aws lt_public
20170602 aws lt_public20170602 aws lt_public
20170602 aws lt_public
 
Firebase × Swift ~ときどきPython~
Firebase × Swift ~ときどきPython~Firebase × Swift ~ときどきPython~
Firebase × Swift ~ときどきPython~
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~How to relaunch "sapporojs.org" ~Introduction to middleman~
How to relaunch "sapporojs.org" ~Introduction to middleman~
 
超初心者でもできた!AzureMobileService JSバージョン
超初心者でもできた!AzureMobileService JSバージョン超初心者でもできた!AzureMobileService JSバージョン
超初心者でもできた!AzureMobileService JSバージョン
 
CSSから国民を守る党ver2
CSSから国民を守る党ver2CSSから国民を守る党ver2
CSSから国民を守る党ver2
 
bash(の変な使い方)update
bash(の変な使い方)updatebash(の変な使い方)update
bash(の変な使い方)update
 
Ruby introduction for_rails
Ruby introduction for_railsRuby introduction for_rails
Ruby introduction for_rails
 
Ruby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTRuby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LT
 
楽しいRails開発
楽しいRails開発楽しいRails開発
楽しいRails開発
 
Sendagaya.rbのご紹介
Sendagaya.rbのご紹介Sendagaya.rbのご紹介
Sendagaya.rbのご紹介
 
自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見自分のライブラリを1年運用をして見た振り返りと知見
自分のライブラリを1年運用をして見た振り返りと知見
 

Ähnlich wie フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯

TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
Kosuke Yamada
 

Ähnlich wie フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯 (6)

熊本地震支援サイトを30分で立ち上げ即日運用開始した話
熊本地震支援サイトを30分で立ち上げ即日運用開始した話熊本地震支援サイトを30分で立ち上げ即日運用開始した話
熊本地震支援サイトを30分で立ち上げ即日運用開始した話
 
Heroku meetup#11(lt)
Heroku meetup#11(lt)Heroku meetup#11(lt)
Heroku meetup#11(lt)
 
仕事で使える、アイコン作画のコツとSVG変換のススメ
仕事で使える、アイコン作画のコツとSVG変換のススメ仕事で使える、アイコン作画のコツとSVG変換のススメ
仕事で使える、アイコン作画のコツとSVG変換のススメ
 
Heroku meetup#11(フル)
Heroku meetup#11(フル)Heroku meetup#11(フル)
Heroku meetup#11(フル)
 
作ろう!LINEスタンプ 〜スタンプクリエイターの語り場〜
作ろう!LINEスタンプ 〜スタンプクリエイターの語り場〜作ろう!LINEスタンプ 〜スタンプクリエイターの語り場〜
作ろう!LINEスタンプ 〜スタンプクリエイターの語り場〜
 
TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」TypeTalks第10回「もっと知りたい!Webフォント」
TypeTalks第10回「もっと知りたい!Webフォント」
 

フォントをつくるサイトで使ったCanvasとSVGの話 @HTML5飯