スクリーンショット_2019-01-31_14

なんでもキラカードにできるエフェクトを作ってみた

こんにちは、最近ドッカンバトル熱が再燃したdohdonです。今回はドッカンバトルにインスパイアされて、キラカードエフェクトを作ってみることにしました。
強いキャラクターの背景でキラキラしてるアレですね。
画像なのでアニメーションしてないですがCreate.jsを使い、Web上で画像加工ができます。

Kira-Card Effect
https://codepen.io/dohdon/pen/JxEKbp


考え方

実際のキラカードを元に考えてます。
キラカードの表面はレンズフィルムというもので覆われています。
凹凸のあるフィルムで光が反射し、キラキラとしたエフェクトになるわけです。

つまり、凹凸を作り、明暗をアニメーションさせてやればキラカードのキラキラは実現出来るはず。
四角錐をズラッとならべる印象です。

そして、四角錐を真上から見ると4つの三角形からできています。
明暗をつけるためにグラデーションは必須なので
グラデーションがついた三角形パーツを用意すれば良いわけです。

それさえできればあとは
配置・アニメーションのタイミングなど設定すれば概ね完成です。

実装

今回はcreate.jsを使っています。
本当はPixi.jsを使ってみたかったのですが
画像を使わず、気軽にグラデーションを使いたかったためcreate.jsを採用しました。

一番キモとなる部品の記述を載せてきます。

// 三角形
const triangle = new createjs.Shape();
triangle.graphics.beginLinearGradientFill(['#000', '#FFF'], [0, 0.75], 0, 0, 0, 40)
 .moveTo(o[0], o[1])
 .lineTo(o[0] + 20, o[1])
 .lineTo(o[0], o[1] + 40)
 .lineTo(o[0], o[1])
 .endFill()
// 作成した三角形にアニメーションを追加
createjs.Tween.get(triangle, {
   loop: true
 })
 .to({
   alpha: 0.2
 }, 1000, createjs.Ease.getPowInOut(2))
 .to({
   alpha: 0.6
 }, 1000, createjs.Ease.getPowInOut(2))

こんな風に三角形の白黒グラデがアニメーションしているShapeができました。
これが基本のシェイプとなります。4つ合わせればひし形が出来ます。
これができればあとは三角形を配置し、アニメーションや色味を調整するだけです。

前述してますができたものがこちら

Kira-Card Effect
https://codepen.io/dohdon/pen/JxEKbp

今回Create.jsで作ったのはエフェクトのみです。
エフェクトが半透過しているため、canvasよりz-indexが低いものは漏れなくキラキラ化します。
canvasの上に画像を置けば上に置いた画像はキラキラしません。
上のサラリーマンの人はz-index高くしてあるのでキラキラ化してないですね。
キラカードメーカーとか作れそうな匂いがしてきます。
ただ、画像出力するとキラキラアニメーション無くなるのがツラミ。
ページ生成して見せたほうが良さそうな感じがする。

所感

簡単な画像処理系のサービスであれば思っていた以上に楽にできそうな印象でした。基本となるパーツを作れればサクサク進みます。
あと変更がすぐ見た目に現れるのでめっちゃ面白いですね

次はWebGL使って何か作ってみます。


この記事が気に入ったらサポートをしてみませんか?