アむコンの薄さず厚さ。 Sketch Pro、レンダリング機胜、線の倪さゲヌム

この蚘事では、グラフィックパッケヌゞからベクトルアむコンを゚クスポヌトする際のニュアンスを分析したす。 ベクトルアむコンが1幎以䞊正垞に操䜜されおいるずいう事実にもかかわらず、アむコンの衚瀺が正しくない䞍幞な状況がただありたす線の倪さが揺れたり、がかしが衚瀺されたり、フィレットが消えたり、その逆-シャヌプなコヌナヌが予想される堎所にフィレットが衚瀺されたす。



3぀の䞻な理由がありたすグラフィックパッケヌゞからアむコンを゚クスポヌトおよび最適化する機胜たたはバグ、機胜ずレンダリング゚ラヌChromeブラりザヌたたはElectronシェルによるレンダリングに焊点を圓おたす、経隓の浅いデザむナヌのミス。 グラフィックパッケヌゞ自䜓ではすべおが良さそうに芋えたしたがこの堎合、Sketchを怜蚎しおいたすが、どこにでも同様の問題がありたす。









原則ずしお、アむコンの歪みは、次の堎合およびその組み合わせに衚瀺されたす。



  1. 现い単䞀ピクセルの芁玠がやけたり、線が切れたり、単䞀ピクセルの線が倪すぎたりする。
  2. 塗り぀ぶし領域は、蚭蚈䞊で空であるはずの領域を塗り぀ぶしたす。
  3. Retinaディスプレむではアむコンは芋た目は良いが、倖郚モニタヌを接続する堎合は非垞に悪い。 Retina以倖のディスプレむでの品質の䜎䞋は避けられないこずは明らかですが、堎合によっおは、「ピクセル化」が善ず悪の境界を超えおいるこずは明らかです。




サむトの堎合、アむコン䞊の小さなkosyachkiは特に重芁ではありたせん。 誰もがそれに慣れおおり、二次的な完璧䞻矩者の問題を解決するために倚くのリ゜ヌスを費やすこずをいずわない人はほずんどいたせん。 特に、頻繁に䜿甚されるアプリケヌションでは、おそらくこれはより慎重に扱われたす。 特に完璧䞻矩者に出くわした堎合「 デザむンのデモンストレヌションで異議を扱う 」の蚘事を参照。



SVGファむルトラッシュずオプティマむザヌ



アンロヌド䞭にアむコンが線の䞀郚を倱った堎合、ねじれ、コンポヌネントに分解したす-SVGファむルの䞭を芋るのは理にかなっおいたす。 これはプログラマにずっおは問題ではありたせん。圢匏自䜓は、かなり明確な構造ずコンテンツをレンダリングするための䞀連のコマンドを持぀XMLファむルです。 倚くの堎合、単玔なケヌスでは、このコヌドにより、保存時に「グラフィック」パッケヌゞが正確に「保存」されたものを理解できたす。 たずえば、分数の倀を衚瀺するには、明らかにそうではないはずです。 たたは远加のパス。 たたはいく぀かのゎミ。 手動でSVGファむルを線集するこずは趣味であり、芋蟌みはありたせん。 しかし、倚くの堎合、゜ヌスファむルによっお䜕が間違っおいるのかを正確に理解するこずができたす。



埓来のSketch + Zeplinバンドルを䜿甚するず、SVGファむルの「ゎミ」の問題がなくなるだけでなく、悪化する可胜性もありたす。 ポむントは、Zeplinが組み蟌みオプティマむザヌを介しおsvgファむルコヌドを実行する方法です。 生成するコヌドから刀断するず、おそらくSVGOが䜿甚されたす。



ずころで、この非垞に倚くのラむブラリは、たずえばwebpackより具䜓的には、すでに䞋䜍レベルでSVGOを䜿甚しおいるimage-webpack-loader を䜿甚しおプロゞェクトを構築する堎合など、埌の段階でアむコンが砎損する原因になるこずが非垞に倚くありたす。 ゎミは残る可胜性がありたすが、重芁な芁玠は捚おるこずができたす。 アむコンが壊れおいるずいう問題が突然発生した堎合は、たずオプティマむザヌを削陀しお、問題が解決したかどうかを確認できたす。



さらに、Zeplinのオンラむンバヌゞョンずそのデスクトップアプリケヌションは、アンロヌド時に異なる結果をもたらしたす。 最適化䞭、アむコンの゜ヌスコヌドによっおは、アむコンの重芁な郚分が倱われる堎合がありたす。 そしお、異なるバヌゞョンの異なる方法で。 激怒したす。



オンラむンバヌゞョンのZeplinのコヌドSketchからダりンロヌドしたアむコンの䞋、さらに䜎いを比范したす。 2番目のケヌスでは、コヌドの断片が消えおいるこずがわかりたす。









そしお、これは次のようなものです。



最初のアむコンはSketchから盎接ダりンロヌドされ、2番目はZeplinのオンラむンバヌゞョンから、3番目は本来あるべきものです



レンダリング゚ラヌ



残念なこずに、デザむナ、グラフィックパッケヌゞ、たたはオプティマむザだけが、曲がったアむコンのせいになっおいる可胜性がありたす。 レンダリングを担圓する゜フトりェアに応じお、結果は倧きく異なる堎合がありたす。 たずえば、Chromeブラりザでの単䞀ピクセルラむンのアンチ゚むリアス凊理のレンダリングなど、厄介な゚ラヌもありたす。この問題は少なくずも2016幎から知られおいたすが、解決策はただありたせん 2018幎10月。 残念



アむコンの玔床を求める闘争における制限ずラむフハック



次に、レンダリングの問題を完党に解決するか、少なくずも適切な結果を達成するのに圹立぀倚くのヒント、制限、ラむフハックを収集したした。



1.アむコン芁玠を倉換しない



アむコンを䜿甚した倉換スケヌリング、軞に沿った回転、たたは氎平/垂盎の反射が倚いほど、コヌドに衚瀺されるパス属性たたは単にポむントのシヌケンスが倚くなりたす。 より倚くのパス-ブラりザによるレンダリングの最適化埌、アむコンが曲がっお芋える可胜性が高くなりたす。





「グルヌプ」アむコンの代わりに-5番目のポむントに䌌たもの



2.芁玠ずテキストをベクタヌからアりトラむンに倉換アりトラむンに倉換

芁玠を持぀すべおのレむダヌを1぀に結合したす図圢の結合



テキストをテキストずしお残し、レむダヌを個別に残した堎合、ポむントの䞻なシヌケンスパスは確実にいく぀かに分割され、゚クスポヌト時にそれらは自分の心になりたす。



3.避劊のルヌル各アむコンに名前を付ける-䞀意



プログラマヌにずっお明らかなルヌル。 残念ながら、経隓の浅い、たたはずさんすぎる創造的なデザむナヌによっお混乱する可胜性がありたす。 あるアむコンの名前が別のアむコンの名前ず䞀臎する堎合、Sketchはそれらを1぀のオブゞェクトに結合できたす。 䟿宜䞊、合理的な呜名システムを事前に考えおください。 たずえば、名前の圢匏はpopup-icon-closeです。popupはアむコンが䜿甚されるブロック、iconはアむコン自䜓、closeはこのアむコンの意味です。 たた、ファむル名の末尟にサむズを远加できたす-たずえば、16x16。



倚くのアむコンがあり、それらが耇数のレむアりトで繰り返される堎合、それぞれをシンボルに倉換するず䟿利ですシンボルの䜜成。 シンボル内のサむズを倉曎したり、色を付けたりするず、これらのパラメヌタヌは、すべおのレむアりト䞊のすべおのアむコンに察しお倉曎されたす。 これらのアむコンの゚クスポヌト蚭定は、シンボル内でも最適に蚭定されたす。 アむコンだけでなく、ボタン、テキストフィヌルド、チェックボックスなどのすべおの暙準コントロヌルにも専門的にシンボルを䜿甚したす。



4. SVGO CompressorをSketchに盎接むンストヌルしたす



これは、最適化されたアむコンをSketchから盎接ダりンロヌドできるプラグむンです。 これは、最適化プロセスを制埡するのに圹立ちたすwebpackからオプテ​​ィマむザヌにそれ自䜓を蚱可したせん。 最適化のゞャムがすぐに衚瀺される堎合、特に耇雑でいく぀かの郚分で構成されおいる堎合は、アンロヌド盎埌にアむコンの゜ヌスコヌドを確認できたす。 しかし、ほずんどの堎合、このプラグむンで゚クスポヌトするず、すべおがスムヌズに進みたす。



5.手動で゚クスポヌトするずきにアむコンを遞択し、゚クスポヌト可胜にするプロパティをそれらに蚭定したす。



そうしないず、゚クスポヌト䞭にアむコンの䞀郚が再び倱われる可胜性がありたす。



6.バックグラりンドで「゚クスポヌトに含める」オプションのチェックを倖したす





それ以倖の堎合、アむコンは呚囲に癜い背景ずずもに゚クスポヌトされたす。



7.他のすべおが倱敗した堎合各サむズ-独自のアむコン



これは野生のゲヌムです。 ベクトルアむコンは、さたざたなサむズに䜿甚するために考案されたした。 残念ながら、スケヌリング埌にvyrviglaznyの結果が埗られる状況がありたす。 原則ずしお、明確な線が必芁な堎所では石鹞を䜿甚したす。 これは䞻に、スケヌリング時に䞀郚のラむンが分数のピクセル倀に該圓するずいう事実によるものです。 たずえば、ベヌスアむコンが16×16で、導関数が24×24である堎合2の环乗で、ほずんどの堎合はすべお正垞ですが、䞭倮の瞊線には䟋倖がありたす。 そのような状況では、条件に合わせるこずができたすが、残念ながら、䜿甚するサむズごずにアむコンを手で持っお行く必芁がありたす。



これらの7぀のルヌルに埓っおアむコンを䜜成するず、Zeplinプラグむンを䜿甚しおも゚クスポヌトは成功したす。 しかし、アむコンの矎しいsvg-sourceを取埗し、ブラりザで衚瀺されたずきにアむコンがバラバラにならず、倉圢しない堎合でも、異なる密床の画面ですべおが正垞であるこずを保蚌したせん。



MacBookでRetinaディスプレむのすべおをチェックしたずしたしょう。 倚かれ少なかれ平均的な倖郚モニタヌを接続しおみおください。 ほずんどの堎合、1ピクセルの線はがやけおいたす。 簡単な蚈算4×4ピクセルの正方圢の真ん䞭に1ピクセルの倪さの線を描くず、線はピクセルの間に萜ちおがやけたす。 線の倪さが敎数で指定されおいない堎合-同じこず。



これらのトラブルに関する詳现情報はこちらです。 問題を解決するオプションずしお-Bjangoのアプリケヌションのアむコンテンプレヌトその魅力は、Android、iOS、macOS、tvOS、watchOS、Windows、Windows Phoneなどの仕様をすぐに考慮するこずです。少なくずも参照ずしお䜿甚できたす。 さたざたなデバむスの仕様リストの詳现に぀いおは、 Google Device Metricsをご芧ください。画面サむズ、ピクセル密床、およびナヌザヌの目から画面が䜍眮するおおよその距離たで調べるこずができたす。 そしお、この問題を克服するのに圹立぀もう1぀のこずは、DPIずPPIに関するデザむナヌのマニュアルです。 AndroidずiOSのデザむナヌ向けに、さらに埮劙で実甚的なテクニックを孊ぶのに圹立ちたす。



方法









しない方法









ちなみに、私たちは倚くのサむトやアプリケヌションで単䞀ピクセルのアむコンを平均的な衚瀺品質でチェックしたした。そしお、䞻に「石鹞」を芋たした。 ぀たり、この問題を解決しおアむコンを調敎するこずは頑固なやり方非垞に時間がかかるであるため、「調敎」の決定は非垞に人気がありたす。 2番目に人気のある解決策は、少なくずも2ピクセルの線幅を䜿甚するこずですこれはGoogleが倚くの堎所で行っおいるこずです。 それにもかかわらず、プロゞェクトに倚倧な時間を費やす頑固な完璧䞻矩者にずっお、各サむズに適合する゜リュヌションは最も明確な結果をもたらしたす。







それずは別に、茪郭のレンダリングだけでなく、塗り぀ぶし領域も確認する䟡倀があるこずに泚意しおください。 特に、アむコンが「塗り぀ぶされたアむコンずアりトラむン」のペアで䜿甚されおいる堎合ホバヌ時など。



゚クスポヌトアむコンアフィニティ、むラストレヌタヌなど



オブゞェクトをSketchに倉換するこずを犁止するず、すべおの芁玠をひどく描くのに時間がかかるため、䞀郚のデザむナヌにずっおは、たずえばAffinityでアむコンを描いおからSketchにアップロヌドする方が䟿利です。



すべおが非垞に簡単です

  1. ピクセルグリッドでアフィニティアむコンをレンダリングしたす すべお同じグリッド内のミスによる境界のがやけがないようにしたす。
  2. アフィニティでアむコンを遞択し、スケッチにコピヌしたす。
  3. スケッチでは、サむズが数ピクセル以内で異なる可胜性がありたす。次に、垌望のサむズに合わせおスケヌルツヌルを䜿甚し、線のサむズず倪さが敎数のたたであるこずを確認する必芁がありたす。
  4. 芁玠ずフォントをアりトラむンに倉換したす。 サむズず䜍眮をもう䞀床確認しおください。
  5. レむダヌを結合したす。
  6. ゚クスポヌト可胜にするプロパティを蚭定し、アヌトボヌド䞊のアむコンを遞択したす。
  7. ゚クスポヌト-出来䞊がり、非垞に予枬可胜な動䜜をする単䞀のパスを持぀完璧なsvgファむルがありたす。




結論



ほずんどの堎合、デザむナヌによるレンダリングの特性、アンロヌドたたは最適化、たたはレンダリングのニュアンスによっおアむコンに小さな歪みが生じおも、苊情は発生したせん。 最終的に、アむコンのほずんどはアむコンパックから取埗され、「そのたた」䜿甚されたす。 しかし、埮調敎ずフィッティングが正圓化される状況がありたす。 たずえば、Electronプラットフォヌムでアプリケヌションを構築しおいお、すべおのプラットフォヌムで最倧限の明瞭さを実珟したい堎合。 いずれにせよ、アむコンを扱う䞀般的なスタむルにデザむナヌが来るのは理にかなっおいたすたずえば、 簡単なチェックリストを基瀎ずしお䜿甚できたす。



頑匵っお



All Articles