こんにちは、イマジカデジタルスケープの伊藤和博です。
今週は、Illustrator CCに追加された、SVGのレスポンシブ(ラウンドトリップ編集機能)についてご紹介します。
IllustratorからのSVGそのものの書き出しは、以前のブログ「SVGインタラクティビティ」 でもご紹介しました。
IllustratorからSVG書き出しをすることによって、Webページ上でサイズを変更しても、画質の劣化の無いデータとして閲覧できる、というものでしたが、Illustrator CCでは、このSVGの書き出し時に「レスポンシブ」の機能が追加され、SVG書き出したソースを、CSSで幅・高さなどのレイアウト指定ができるようになりました。
では、今までCSSでレイアウトできなかったのか?というともちろんそうではありません。
これまでは、SVGを展開する領域(キャンバス)が、アートボードサイズになっていたものが、レスポンシブにチェックを入れて書き出すことによって、ブラ ウザで見た時に幅100%として書き出すことができるようになったため、書き出し後に、好きな幅と高さにCSSでレイアウトすることができるようになった、と いう意味になります。
それでは、これまではどのように書き出していたのか、と、Illustratorの機能として加わった部分とで、どのように違うのかをソースを見ていきます。


●さっそくやってみよう!


Illustrator CCで、SVG書き出しを行うと、SVGオプションのウインドウ内の詳細設定の中に、「レスポンシブ」の設定が加わっています。




これまでのIllustratorでは、このチェックがありませんでした。このチェックが無い従来のIllustratorでは、SVG要素に対し、Illustratorのアートボードサイズとなるwidthとheight属性を「添付して」SVG要素を書き出していました。
例えば、Illustratorでのアートボードサイズが幅高さ300pxの場合で、レイヤー名がlay1という名前のファイルの場合は、以下のようなソースを書き出します。

<svg version="1.1" id="lay1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="300px" height="300px" viewBox="142.64 270.945 300 300" enable-background="new 142.64 270.945 300 300" xml:space="preserve">





ソース中にある通り、widthとheightが設定されているのがわかります。この場合、予め幅と高さ300pxの領域を指定して書き出すことになるため、例えば幅・高さを、ウインドウ幅に合わせて自動的に変更したい場合に、書き出した後にソースを変更するか、CSSを追加することで変更する必要がありました。

Illustraor CCでは、レスポンシブにチェックをいれてSVGに書き出すと、このwidthとheight属性を「設定せずに」、SVG要素を書き出すようになります。幅と高さの属性を指定しないため、最初からwidthとheightを100%で設定しているのと同じような状態で、以下のように親要素の幅と高さと同じ寸法で可変した状態で最初から表示されることになります。





「レスポンシブ」にチェックを入れて書き出した場合は、幅と高さを指定しないため、最初から幅100%のレスポンシブに、という意味合いでの「レスポンシブ」というチェックボックスになりますが、機能としては「SVG要素に、widthとheight属性を設定しない」という意味になります。そのため、書き出したソースにCSSで後から自由に幅と高さを指定できるようになった、つまり、Illustrator上で設定した最初のアートボードのサイズは、書き出し後のサイズとは何ら関係が無くなった、という訳ですね。


●viewBoxと、preserveAspectRatio


Illustratorで書き出したままの場合、例えば、スマートフォン等で縦と横で向きを変更した場合、SVG要素の中にあるベクトルオブジェクトの縦横比も連携して変形するわけではありません。また、SVG要素そのものは、img要素のような置換要素ではないため、SVG要素そのものに、CSSで幅と高さに、別々の数値を設定しても、中のイメージを変形させることはできません。
あくまでも、SVG要素に対してCSSで指定している幅と高さは、SVGキャンバスというSVGを展開する領域のサイズ指定になります。




SVGの中に書いたベクトルオブジェクトそのもののサイズを変更する場合は、SVG要素に指定してある、viewBox属性の値を変更することでサイズ変更可能です。Illustratorから書き出した直後は、viewBoxの値はアートボードサイズと同じサイズになっています。

<svg version="1.1" id="lay1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="142.64 270.945 300 300" enable-background="new 142.64 270.945 300 300" xml:space="preserve">






また、デバイスの向きを変更した時に、そのデバイスの縦横比に合わせて自動変形するようにしたい場合には、SVG要素に対して、preserveAspectRatio="none"を設定すると、ベクトルオブジェクトそのものが自動変倍するようになります。その際、CSSでのwidthとheight設定は外します。CSSでwidthとheightを設定すると、その領域内で自動変倍することになります。

<svg version="1.1" id="lay1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="142.64 270.945 300 300" enable-background="new 142.64 270.945 300 300" xml:space="preserve" preserveAspectRatio="none">




SVGの特徴が、拡大縮小しても画質の劣化が無い、というものですので、このように縦横比を変更しても、画質そのものの劣化は無い、ということになりますね。
Illustratorから書き出したソースも、少々手を加えれば、いろいろな用途に使用できるのではないかと思いますので、ぜひ使ってみてください。



Illustrator CCの使い方をもっと詳しく知りたい方は
Illustrator CC の使い方・基本トレーニング
JavaScriptの基礎知識の受講がオススメです!

▼Illustrator CC の使い方・基本トレーニング

▼JavaScriptの基礎知識



イトウ先生が、Twitterを始めました!
みなさんもぜひ、フォローしてくださいね!

http://twitter.com/itoh_sensei




■■イトウ先生のTipsNote(実践・新機能コンテンツ)アーカイブ■■


基本トレーニングの受講後に、さらに学習しておきたい内容やTips、新機能を、隔週1回(月2回)で公開しています。


●Macintosh基本操作編(意外と知らない操作も多い!?)
○入力モードや変換のショートカット
○デスクトップで使えるショートカット
○階層やファイルパスの把握に便利な機能

●Illustrator(AI)
○アウトライン化と孤立点の削除について
○データを軽く作る方法について
○シンボルの親子関係について・その1
○編集モード
○シンボルの親子関係について・その2
○カラーパネルの「使えるショートカット」
○カラー一括変換のグローバルスウォッチとは
○配置した画像のすばやい編集方法
○CS5新機能01:すべてのアートボードにペースト
○CS5新機能02:内側描画と背面描画
○CS5新機能03:Web・インタラクション用のデザイン
○CS5新機能04:遠近描画
○CS5新機能05:線パネルと線幅ツール
○AIのテキストのアピアランス
○SVGインタラクティビティ
○CS6の新機能:線へのグラデーションと不透明マスク・矩形以外のパターン図柄登録
○Illustrator CS6のCreative Cloudメンバー限定機能
○Illustrator CCの新機能
○Illustrator CCの新機能:CSSプロパティ
○IllustratorCC_R1での便利な新機能
○AI、PS、IDなどで使える音声入力
○SVGのレスポンシブ機能

●Photoshop(PS)
○消しゴムツールの活用
○ななめの画像をまっすぐにする方法
○自然な合成テクニック・角版
○自然な合成テクニック・切り抜き画像
○画像合成後の便利なショートカット
○調整レイヤー
○レイヤーパネルの不透明度と塗りについて
○不透明度のショートカット
○CS5新機能01:「コンテンツに応じる」機能
○CS5新機能02:絵筆ブラシと混合ブラシ
○CS5新機能03:人の記憶に近い画像・HDRについて
○CS5新機能04:パペットワープ
○CS5新機能05:3Dオブジェクトとアニメーション
○美しいモノクロ画像の作り方
○境界部分をきれいにカラー変更する方法
○Photoshop CS6 特集・その1(全3回)
○Photoshop CS6 特集・その2(全3回)
○Photoshop CS6 特集・その3(全3回)
○2つの画像の違いを調べる、差の絶対値
○Photoshop CS6だけで作るビデオ・その1
○Photoshop CS6だけで作るビデオ・その2
○Photoshop CS6だけで作るビデオ・その3
○CSSの読み込み(スウォッチカラー)と、 CSS書き出し(CSSをコピー)について
○条件付きアクション
○Photoshop CCの新機能
○Photoshop CCの新機能:Generator(ジェネレーター)
○PhotoshopをJavaScriptで操作するAdobe Extendscript Toolkit CC
○新しいスクリプトパターンと、リンクを配置について

●FLASH(FL)
○Illustratorだけでできる、Flashアニメ
○CS5新機能01:IKボーンスプリングでバネアニメ
○CS5新機能02:コードスニペットパネルで簡単ActionScript3.0
○CS5新機能03:パターン描画ツール
○CS5.5新機能01
○CS6の新機能01:Toolkit for Create JS・その1
○CS6の新機能01:Toolkit for Create JS・その2
○Flash CC:Toolkit for CreateJSに代わる、新しいHTML5書き出し
○Flash CC:HTML5 Canvasでサポートされない機能


●InDesign(ID)
○CS5新機能01:マルチステートを使った、IDからFlashアニメの作り方
○CS5新機能02:アニメーションパネルとタイミングパネルを使った、IDのモーションプリセット
○CS5新機能03:キャプションの自動作成機能
○CS5新機能04:オブジェクトの間隔と配置
○CS5新機能05:画像一括貼り替え
○CS5.5新機能01:EPUB書き出し
○CS5.5新機能02:アンカー付きオブジェクト
○データ結合(メールマージ)
○CS6の新機能1:レイアウト・リキッドレイアウトと、ePub書き出し
○CS6の新機能2:コンテンツ収集ツール・コンテンツ配置ツール・リンクとして配置
○CS6の新機能3:「HTMLを挿入...」の機能からGoogleMapの読み込みについて
○InDesign CCの新機能:QRコードを生成
○InDesign CC :タグを割り当て

●Dreamweaver(DW)
○CS5新機能01:新しいサイト定義と、CSSスターターレイアウト
○CS5新機能02:HTML5 Pack
○CS5新機能03:スマートフォン検証・CSS3のメディアクエリー
○CS5新機能04:ブラウザ検証便利ツール・Adobe BrowserLabについて
○CS6の新機能1:可変グリッドレイアウト
○CS6の新機能2:jQuery Mobile 1.0 と jQuery Mobile スウォッチ
○CS6の新機能3:CSSトランジション
○CS6の新機能4:HTML5ビデオ
○CS6の新機能5:Webfontsの使い方
○Dreamweaver CCの新機能:jQuery UI
○Dreamweaver CCとCS6での、CSSの作り方の違い

●Edge
○Adobe Edge(Preview版)
○Adobe Edge Code(プレビュー版)のご紹介
○Adobe Edge Reflow(プレビュー版)のご紹介

●AfterEffects(AE)
○CS5新機能01:ロトブラシ
○CS5新機能02:新しい便利なショートカット
○CS5 パペットアニメーションと、時間反転キーフレーム
○CS5 ビデオや画像の型抜きについて「トラックマットとステンシルアルファ」
○CS5 動画の動きを捕らえて、他のレイヤーに適用する「モーショントラック」
○CS5.5 ワープスタビライザー
○CS5.5 ブラー・互換・タイムコード
○CS5.5 「シャドウを落とす・受ける」機能
○CS5.5 エクスプレッション・その1
○CS5.5 エクスプレッション・その2
○CS5.5 エクスプレッション・その3
○CS6の新機能1:ベクトルレイヤーからシェイプを生成
○CS6の新機能2:3Dカメラトラック
○AfterEffects CCの新機能:ワープスタビライザーVFX
○AfterEffects CC・レンダリングの変更点
○AfterEffects CCの新機能:マスクをトラック
○AfterEffects CCの新機能:ピクセルモーションブラー

●FireWorks(FW)
○CS5新機能01:Device Centralと連携した、スマートフォンのプロトタイプ
○CS5新機能02:divのタイル背景の強化
○レイヤーパネル
○CS6の新機能:CSSプロパティパネル・CSSスプライト書き出し・jQuery Mobile テーマ

●その他
○CS5.5:Adobe Audition「サウンドのカットとフェードイン、フェードアウトの設定」
○CS5.5:Adobe Audition「マルチトラックを使ったサウンド操作」