GCS step1

全国のライブカメラを地図上に表記

 全国のライブカメラの位置です。 いろいろご利用ください。 https://www.google.com/maps/d/edit?mid=12xkj87OQ_G_CbWapzBhV-c4lc6CExdPl&usp=sharing

2019年3月25日月曜日

【HowTo ラインアート】Web上で文字を書き順に表示する方法

とにかく見て!



これっ
コレをやりたい!

いやまぁちょっと急ぎつくったので ちゃっちいですがね...w

文字が書き順に表示されるやりかた...
しかしなかなかできない。

参考にしたページはこちら!
SHIDEN DESIGN BLOG さんのページ (ただし何故かパーミッションかけられてしまいました...)
及び
Qiitaの@AsukaOkochi さんのページ

双方ともとても簡単にちゃちゃっとやっている感じ...
コレなら僕にもできる!
なんて制作に突入!!
おおはまり...
二日時間を費やしたw

ということで備忘録として重要な点を再度まとめてみました。






内容はほぼ同じ
要はマスクをかけてそれを書き順に透明化していくだけ?動かしているだけ?
消しているだけ??
まぁそんなものです。

要はAdobeのAfterEffectsがあれば簡単にできる作業なのですが
そんなバカ高いソフト持ってるわけ無い!
ということで苦肉の策で今回はこちら...


準備

画像
Adobe illustrator コレは何とか準備してくれ

知識
基本的コードの書き方は知っておいたほうが良い
僕はSVGでのコードの書き方とかまったく知らなかったので
苦戦しました。
DrawSVGの設定する位置とかね。
ココで僕はループ状態に陥りました。

では始めましょう
多分既出の参考ブログ双方とかぶっているところがあるかも知れませんが
ご容赦...


画像の用意




イラレでの加工

私のillustratorは9.0というめちゃ古いヴァージョンです。
しかし充分にできました。

とにかく画像の文字の上にマスクをかけていきます。

1.まずはpng形式で背景を透明な状態で画像を保存。



2.それをイラレに配置しロックをかけます。





3.ペンツールを利用しマスクをかけます。
 詳しくはQiitaの@AsukaOkochi さんのページを参照!
 まずはレイヤーをつくりその上にマスクをかけます。


 注意)書き順に合わせてペンツールでマスクをかけるという点。


 間違えると間違えたとおりに描いてくれますw
4.そしてSVG形式で保存をかけるのですが...
 ココでの注意点としてオプションを以下のように設定してください。


  フォントのサブセット → なし
  埋め込まれたフォントの位置 → サブセットフォントへのリンク
  ラスター画像の位置 → ラスター画像へのリンク
  小数点の位置 → 3
  エンコーディング → UTF-8
  CSSプロパティの位置 → スタイル属性(エンティティ参照)
5.するとこんな感じのファイルができているはずです。


 右クリックでメモ帳で開いてみましょう...
 するとこんな感じのコードができているはずです。

SVGのソースコード

 このソースコードはまぁ簡単にいうと...
 <svg以下が本体で...
 <filter id="SVG_InvertMaskFilter"
 <filter id="SVG_MaskFilter"
 で二つのフィルターがあるよっていってて
 <mask x="0" y="9.374" width="130.9995" height="170" id="aimsk1">
 が一つ目のレイヤー
 <mask x="0" y="9.374" width="130.9995" height="170" id="aimsk2">
 が二つ目のレイヤーをあらわしていて
 一つ目のレイヤーが二つ目のレイヤーを内服している(入れ子構造)になっているよ
 とここで表現してて
 <image width="131" height="170" xlink:href="梵字2.png"
   transform="matrix(1 0 0 1 0 9.374)"/>
 ココの部分で画像を指定。
 <g id="_x0083__x008C__x0083_C_x0083__x0084__
 x0081__x005B__x0020_2" style="fill-rule:nonzero;clip-
 rule:nonzero;fill:none;stroke:#FFFFFF;stroke-width:30;
 stroke-linejoin:round;stroke-miterlimit:4;">
 これ以下に実際のマスクの書き順が記載されている構造です。




6.DrowSVGをダウンロード

コチラのページから Download(ZIP) をクリックしてZIPファイルをダウンロードして
任意の位置に解凍してください。


必要なファイルはpublicフォルダ内のjquery.drawsvg.min.jsファイル。
このDrowSVGだけでできないのかね~?
ちょっとわからないです。

続いてコチラをダウンロード

7.jQuery 3.3.1をダウンロード

ダウンロードはDownload the compressed, production jQuery (バージョン)を右クリックで名前をつけてリンク先を保存でいいです。



先ほどのDrowSVGと同じ場所に解凍してください。
jquery-3.3.1.min.jsなるファイルができてるはずです。

8.htmlファイルの作成。

今回はためしなのでローカルで動くよう設定します。
まずはindex.htmlファイルを作成しましょう。

凄く簡単なものでいいです。

index.htmlソースコード

こんな感じ...
コレをindex.htmlで保存します。

9.用意した材料を一つのファイルにまとめましょう。

するとこんな感じになるはずです。

  画像のpngファイル
  svgファイル
  jquery-3.3.1.min.js
  jquery.drawsvg.min.js
  index.html


コレで必要なファイルは全て揃いました。


ソースの加工


1.svgファイルをコネコネ加工します。

  先ほどのSVGコード、この中で必要なのは黒い太字の箇所のみ!
  簡単にいうと、必要な部分はこのファイルがsvgであってその設定がこうである
  という部分と、画像の指定部分と書き順の部分だけということです。
  それ以外は削除しちゃいましょう。

必要なSVGのソースコードを見る

  必要な部分だけ抽出するとこうなります。

必要なSVGのみ抽出


2.マスクの名前と色設定。

  マスクの名前及び色を設定します。
  こんな感じ...

<g mask="url(#masking)" fill="#ffffff">

 名前はmaskingにしています。そして色は白なので#ffffffです。
 それを<svgの直下に配置します。

名前と色の配置場所確認


3.マスクIDを明確化

  マスクは設定されましたがこのままではどれがマスクだかわかりません。
  なのでマスクを設定します。

<mask id="masking" maskUnits="objectBoundingBox">

  mask idは先ほど指定したmaskingを使います。
  そしてmaskUnitsはobjectBoundingBoxと指定してください。
  配置場所は書き順が記載されている箇所の前。

<g id="_x0083__x008C__x0~

  の前になります。
  コレだけではダメですよね。
  当然そのmaskが適応できる範囲を括ってあげなければなりません。
  ナノで範囲の末尾に

</mask>

  といれなければなりません。
  それは書き順の範囲の末ということになります。

マスクID設置場所の確認


  注意)もし最初の一行しか文字が表示されなかったら
  /が抜けている可能性があります。
  <path d="M44.898,11.389l20.998,17.999"/>←この赤色のところ
  この場合は/を付け足してもらうか</path>を各行の最後に付け足してもいいです。
  <path d="M44.898,11.389l20.998,17.999"></path>こんな感じ。


index.htmlへの配置

さてここまでできましたらいよいよindex.htmlへの配置に写ります。

 1.先ほどのsvgファイルを全てコピーし、index.htmlのbodyに配置します。
   その際、hello worldの文字は必要ないので消しちゃってください。


配置場所


2.各スクリプトの配置。
  続いて先ほど色々ダウンロードして保存したファイルを配置しておきます。
  配置場所はheadの箇所です。

<title>私のページ</title>

  はあってもなくてもいいですがとりあえず残しておきました。

スクリプトの配置場所


  注意)スクリプトは読み込む順番が重要で、順番によっては動作が変になります。
     順番を間違えないよう上記のように配置してください。


3.スクリプトタイプの指定となんだかわからんけど色々設定みたいな項目。

  まぁ笑 なんだかわからんけどコレをいれてくださいな。
  無いと動きませんw

<script type="text/javascript">
      jQuery(document).ready(function(){

        var $svg = $('svg').drawsvg({
              duration: 200,
              easing: 'linear'
            });

        $svg.drawsvg('animate');

      });
    </script>

  スクリプトなので入れる場所はheadです。

スクリプトの配置場所


と...これで完成!
後は保存して不要なファイル カスとなったsvgファイルを削除すればそれで完了。


index.htmlをクリックしてみてください。
動作しているはずです!



さてコレはあくまでもウエッブでのスタイリッシュなデザインを提供するためのもの...
なのになんでローカルで...?
と思われるかもしれませんが...
この機能、adobeのエフェクトソフトなら簡単にできるのですが
一般の動画編集ソフトではなかなか難しい機能なのです。
文字を書き順に表示するなどは難しいといわざるを得ない。
ということでhtmlで代替し、それを動画キャプチャして
動画ソフトで扱おうと試みたちゃちなやり方なのですw

まぁ良かったら利用してみてください。
ウエップでのデザインとしても利用できると思うので楽しんでくれたら幸いです。





0 件のコメント:

コメントを投稿