目次
SVGマスキング
レイヤーを作成します
エクスポート
SVGコードを手動で編集します
アニメーション
CSSおよびJavaScript
GSAP
参照
ホームページ ウェブフロントエンド CSSチュートリアル 不規則なSVGストロークで手書きアニメーションを取得する方法

不規則なSVGストロークで手書きアニメーションを取得する方法

Apr 02, 2025 pm 06:22 PM

不規則なSVGストロークで手書きアニメーションを取得する方法

書道フォントの手書きアニメーションをやりたかったのです。これは、目に見えないペンによって書かれているような言葉がアニメーション化する種類です。書道フォントには不均一なストローク幅があるため(実際にはSVGの点ではストロークさえありません)、典型的なパスアニメーションテクニックでこのようなことをすることはほぼ不可能でした。しかし、私は数分でこの影響を達成するために、SVGマスキングの革新的なアプリケーションを見つけました。

これを行う方法を研究している間、私は複数のソースから情報を収集しました。それらを組み合わせて、最終効果を作成することができました。

一緒に作りましょう!

SVGマスキング

単語や文のすべての文字のストローク幅が全体に均一である場合、クレイグロブスキーは手書きをアニメーション化する良い方法を持っています。これは、SVGストロークダッシュアレイとストロークオフセット属性をアニメーション化する巧妙な手法です。

ここでアニメーション化したいような書道フォントは、文字全体に不均一なストローク幅を持っているため、である必要があり、そのようにアニメーション化する必要があります。トリックは、SVGマスキングを使用することです。

まず、使用したいフォントを把握することから始めましょう。この記事全体で使用するものはHaveAreToneです。これは、手書きに最適なブラシストロークの外観が素敵です。

アイデアは、アニメーション化したいのと同じ文からを作成し、それを文の上に置くことです。言い換えれば、同じ文の2つの層があります。マスクは上に座っているので、それを白にして、その下の元の文を隠します。アニメーションが実行されると、下層が明らかになるようにマスクをアニメーション化します。

レイヤーを作成します

このトリックの基礎は、実際に2つの別々のレイヤーを作成することです。

  1. 一番下のレイヤーは、目的のフォントのある単語です(私の場合、それはハートネーブです)。
  2. 最上層は、単語に近い手作りのパスです。

手作りのパスを作成することは、あなたが思うほど難しくありません。文をアニメーション化して明らかにするための連続パスが必要です。これは、これについてはを意味します。しかし、イラストレーターを含むアプリの多くは、文字をパスに変換することができます。

  1. 単語を選択します。
  2. 「プロパティ」パネルを開き、 [アウトラインの作成]をクリックします。

そして、魔法のように、文字は形状に続くベクトルポイントの輪郭になります。

この時点で、レイヤーとして保存されているこれらのパスに意味のある名前を与えることが非常に重要です。これをSVGに期待すると、アプリはコードを生成し、それらのレイヤー名をIDおよびクラスとして使用します。

個々の文字がどのように埋められているかに注意してくださいが、ストロークはありません:

SVGでは、私たちが望むようにストロークをアニメーション化することができるので、2番目のメイン層であるマスクとしてそれを作成する必要があります。ペンツールを使用して文字をトレースできます。

  1. ペンツールを選択します。
  2. 塗りつぶしオプションを「なし」に設定します。
  3. ストローク幅は、使用しているフォントによって異なります。ストローク幅オプションを5pxに設定し、その色を黒に設定しています。
  4. 描画を始めましょう!

私のペンツールのスキルは素晴らしいものではありませんが、それは大丈夫です。重要なことは完璧ではありませんが、マスクがその下のレイヤーを覆うことです。

各文字のマスクを作成し、レイヤーに適した名前を使用することを忘れないでください。そして、同じ文字が複数ある場所にマスクを再利用することは、同じ「a」キャラクターを何度も再描画する必要はありません。

エクスポート

次に、SVGファイルをエクスポートする必要があります。それはおそらくあなたが使用しているアプリケーションに依存します。 Illustratorでは、ファイル→エクスポート→エクスポート→SVGでそれを行うことができます

SVGオプションのポップアップが開きます。以下は、この例のためにエクスポートするための優先設定です。

これで、すべてのアプリがSVGをまったく同じ方法でエクスポートするわけではありません。スリムで効率的なコードを生成するのに優れた仕事をする人もいます。他の人、それほどではありません。いずれにせよ、コードエディターでファイルを開くことをお勧めします

SVGを使用しているとき、パフォーマンスのために可能な限り軽量にするために考慮すべきいくつかのヒントがあります。

  1. ポイントが少ないほど、ファイルが軽くなります。
  2. より小さなViewboxを使用すると役立ちます。
  3. SVGをさらに最適化するためのツールがたくさんあります。

SVGコードを手動で編集します

これで、すべてのアプリがSVGをまったく同じ方法でエクスポートするわけではありません。スリムで効率的なコードを生成するのに優れた仕事をする人もいます。他の人、それほどではありません。いずれにせよ、コードエディターでファイルをクラックしていくつかの変更を加えることをお勧めします。

やりがいのあること:

  1. 最終設計のサイズに設定されている要素幅と高さの属性を指定します。
  2. 要素を使用します。私たちはパスを扱っているので、単語は実際にはスクリーンリーダーによって認識されていません。焦点を合わせるときにそれらを読む必要がある場合、これはトリックを行います。
  3. イラストアプリで名前が付けられたレイヤーに基づいて、IDSを使用してグループ要素()がある可能性があります。この特定のデモでは、#Marketing-Lab(アウトライン)と#マーケティングマスク(マスク)の2つのグループ要素があります。マスクを要素に移動します。これは視覚的にそれを隠すでしょう、それが私たちが望むものです。
  4. マスクグループ内にパスがある可能性があります。もしそうなら、先に進み、それらから変換属性を削除します。
  5. 各パス要素をに包み、マスクされた文字を示す.MASKクラスとIDを付けます。

例えば:

 
 <path ...></path>
ログイン後にコピー

アウトライングループ内(#Marketing-LabのIDが与えられました)は、Mask = "URL(#Mask-Marketing-M)"を使用して、それぞれの文字パス要素にマスクを適用します。

 <g>
 <path mask="url(#mask-marketing-m)" d="m427,360、..."></path>
</g>
ログイン後にコピー

上記のすべての変更を使用する1つの文字のコードは次のとおりです。

 <svg xmlns="http://www.w3.org/2000/svg" viewbox="0 0 381 81">
 <title>マーケティングラボ</title>
 <defs>
  <g>
   
    
   
  </g>
 </defs>
 <g>
  
 </g>
</svg>
ログイン後にコピー

最後に、ストローク色を白で上書きする.MASK要素にCSSを追加して、ドキュメントの背景色に対して隠されます。

 。マスク {
 塗りつぶし:なし;
 ストローク:#fff;
}
ログイン後にコピー

アニメーション

CSS Stroke-Dasharrayプロパティをアニメーション化して、連続ラインの明らかな効果を取得します。 CSSとJavasscriptまたはGreensock(GSAP)のいずれかでアニメーションを行うことができます。両方のアプローチを見ていきます。

CSSおよびJavaScript

これをCSSだけで行うのはかなり簡単です。 JavaScriptを使用してパスの長さを計算し、その返された値を使用してアニメーション化できます。 JavaScriptをまったく使用したくない場合は、パスの長さを1回計算し、その値をCSSにハードコードすることができます。

 / *ストロークダッシュアレイとストロークダッシュオフセットを設定 */
。マスク {
 ストロークダッシュアレイ:1000;
 ストロークダッシュオフセット:1000;
}


/ *アニメーションストロークダッシュオフセットはゼロの長さになります */
@keyframes strokeoffset {
 に {
  ストロークダッシュオフセット:0;
 }
}


/ *各マスクにアニメーションを適用します */
#mask-m {
 アニメーション:ストロークオフセット1S線形前方。
}
ログイン後にコピー

JavaScriptは、代わりにそのルートに行きたい場合は、カウントを支援できます。

 //マスクを配列に入れます
const masks = ['m'、 'a'、 'r'、 'k-1'、 'k-2'、 'e'、 't-line-v'、 't-line-h'、 'i-2'、 'i-dot'、 'n'、 'g' '、' lab-l '、' lab-a '、' lab-b ']]


masks.foreach((mask、index、el)=> {
 const id = `#mask-$ {mask}` // prepend#mask-各マスク要素名に
 let path = document.queryselector(id)
 const length = path.getTotallength()//パスの長さを計算します
 path.style.strokedasharray = length; //スタイルのストロークダシャレイに長さを設定します
 path.style.strokedashoffset = length; //スタイルのストロークダッシュオフセットに長さを設定します
})
ログイン後にコピー

GSAP

GSAPには、svg 、またはストロークを徐々に明らかに(または非表示)できるDrawSVGプラグインがあります。ボンネットの下では、CSSストロークダッシュオフセットとストロークダッシュアレイのプロパティを使用しています。

これがどのように機能しますか:

  1. コードにGSAPとDrawSVGスクリプトを含めます。
  2. Autoalphaを使用して、最初にグラフィックを非表示にします。
  3. タイムラインを作成します。
  4. グラフィックのためにAutoalphaをTrueに設定します。
  5. すべての文字パスマスクIDを適切な順序でタイムラインに追加します。
  6. DrawSVGを使用して、すべての文字をアニメーション化します。

参照

  1. Jake ArchibaldによるSVGのアニメーション図面
  2. Cassie Evansによるロゴアニメーションの作成

以上が不規則なSVGストロークで手書きアニメーションを取得する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

Vue 3 Vue 3 Apr 02, 2025 pm 06:32 PM

それは&#039; Vueチームにそれを成し遂げてくれておめでとうございます。それは大規模な努力であり、長い時間がかかったことを知っています。すべての新しいドキュメントも同様です。

ブラウザから有効なCSSプロパティ値を取得できますか? ブラウザから有効なCSSプロパティ値を取得できますか? Apr 02, 2025 pm 06:17 PM

私はこの非常に正当な質問で誰かに書いてもらいました。 Leaは、ブラウザから有効なCSSプロパティ自体を取得する方法についてブログを書いています。それはこのようなものです。

CI/CDで少し CI/CDで少し Apr 02, 2025 pm 06:21 PM

「ウェブサイト」は「モバイルアプリ」よりも適していると言いますが、Max Lynchからのこのフレーミングが好きです。

WordPressブロックエディターでのマークダウンとローカリゼーションを使用します WordPressブロックエディターでのマークダウンとローカリゼーションを使用します Apr 02, 2025 am 04:27 AM

WordPressエディターでユーザーに直接ドキュメントを表示する必要がある場合、それを行うための最良の方法は何ですか?

粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード 粘着性のあるポジショニングとサスのダッシュを備えた積み重ねられたカード Apr 03, 2025 am 10:30 AM

先日、Corey Ginnivanのウェブサイトから、この特に素敵なビットを見つけました。そこでは、スクロール中にカードのコレクションが互いに積み重ねられていました。

レスポンシブデザインのブラウザを比較します レスポンシブデザインのブラウザを比較します Apr 02, 2025 pm 06:25 PM

これらのデスクトップアプリがいくつかあり、目標があなたのサイトをさまざまな次元ですべて同時に表示しています。たとえば、書くことができます

スティッキーヘッダーとフッターにCSSグリッドを使用する方法 スティッキーヘッダーとフッターにCSSグリッドを使用する方法 Apr 02, 2025 pm 06:29 PM

CSS Gridは、レイアウトをこれまで以上に簡単にするように設計されたプロパティのコレクションです。何でもするように、少し学習曲線がありますが、グリッドは

Googleフォント変数フォント Googleフォント変数フォント Apr 09, 2025 am 10:42 AM

Google Fontsが新しいデザイン(ツイート)を展開したようです。最後の大きな再設計と比較して、これははるかに反復的です。違いをほとんど伝えることができません

See all articles