SlideShare a Scribd company logo
フォントをつくるサイトで使った
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.筆跡データを元に筆跡アニメーションを再現
ご清聴ありがとうございました。

More Related Content

What's hot (19)

PDF
プロジェクトでRubocopを使って自動コードレビューしてみた話
Cake YOSHIDA
 
PDF
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Cake YOSHIDA
 
PDF
WordPressの使えるプラグイン2013
Takashi Uemura
 
PDF
RubyMotion もくもく会 in Osaka 活動報告
Sotaro Omura
 
PDF
上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ
新潟コンサルタント横田秀珠
 
PDF
僕が作ってきたWebサービス追悼式 #NGK2012B
ryuichiro ryuichiro
 
PPTX
20090717 Ruby Kaigi Lightning Talk
axsh co., LTD.
 
PDF
シンボルフォント — それは、新しい画像形式
Tsutomu Kawamura
 
PDF
Vim no susume
ikdysfm
 
PPTX
20170602 aws lt_public
Six Apart
 
PDF
How to relaunch "sapporojs.org" ~Introduction to middleman~
Ryunosuke SATO
 
PPTX
超初心者でもできた!AzureMobileService JSバージョン
Yuriko Kamimori
 
PPTX
CSSから国民を守る党ver2
akatsuki 1910
 
PPTX
bash(の変な使い方)update
Ryuichi Ueda
 
PDF
Ruby introduction for_rails
Takashi Toyofuku
 
PDF
Ruby/PureImage: 第2回岡山Ruby会議LT
NISHIMOTO Keisuke
 
PDF
楽しいRails開発
俊博 三宅
 
KEY
Sendagaya.rbのご紹介
Naoto Koshikawa
 
PDF
自分のライブラリを1年運用をして見た振り返りと知見
Fumiya Sakai
 
プロジェクトでRubocopを使って自動コードレビューしてみた話
Cake YOSHIDA
 
Comableを支える技術〜できるだけコーディングせずにズルして作るRailsアプリ〜
Cake YOSHIDA
 
WordPressの使えるプラグイン2013
Takashi Uemura
 
RubyMotion もくもく会 in Osaka 活動報告
Sotaro Omura
 
上地雄輔、LINEブログ移行でアメブロの殿堂はく奪2人目へ
新潟コンサルタント横田秀珠
 
僕が作ってきたWebサービス追悼式 #NGK2012B
ryuichiro ryuichiro
 
20090717 Ruby Kaigi Lightning Talk
axsh co., LTD.
 
シンボルフォント — それは、新しい画像形式
Tsutomu Kawamura
 
Vim no susume
ikdysfm
 
20170602 aws lt_public
Six Apart
 
How to relaunch "sapporojs.org" ~Introduction to middleman~
Ryunosuke SATO
 
超初心者でもできた!AzureMobileService JSバージョン
Yuriko Kamimori
 
CSSから国民を守る党ver2
akatsuki 1910
 
bash(の変な使い方)update
Ryuichi Ueda
 
Ruby introduction for_rails
Takashi Toyofuku
 
Ruby/PureImage: 第2回岡山Ruby会議LT
NISHIMOTO Keisuke
 
楽しいRails開発
俊博 三宅
 
Sendagaya.rbのご紹介
Naoto Koshikawa
 
自分のライブラリを1年運用をして見た振り返りと知見
Fumiya Sakai
 

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