閉じる
カテゴリー

CSSアニメーション例
マキ割ダイナミック

4 8 6 5
※ネコブレイバーはマッハドッターbraveさんの作品です。

CSSアニメーション例

アニメーション概要

マキ割ダイナミックはロマサガ3に登場する斧技です。文字どおり、マキを割るかのように敵を両断します。与ダメも最高クラスです。

ドット絵の部分は単純に左右に分けて、それぞれ反対のタイミングで上下に移動させています。

与ダメの部分は、ドット絵の下にdivタグを追加して、position: relative;に設定し、CSSアニメーションでtopとleftの値をいじっています(下記HTML参照)。

また、与ダメは途中から表示されるようにopacityで制御しています。

ドット絵部分のHTMLコーディングの概要はこちらから。

HTML
<div style="background-color: width 100%; text-align: center; 
font-size: 60px; font-weight: bold; position: relative; top: -140px;">
  <span style="position: relative;" id="n1">4</span>
  <span style="position: relative;" id="n2">8</span>
  <span style="position: relative;" id="n3">6</span>
  <span style="position: relative;" id="n4">5</span>
</div>
CSS
.dots {
  float: left;
  width: 5%;
  padding-top: 5%;
  position: relative;
}


@keyframes split-left {
  0% {
    top: 0px;
  }
  20% {
    top: -160px;
  }
  40% {
    top: 0px;
  }
}

.c1, .c2, .c3, .c4, .c5, .c6, .c7, .c8, .c9, .c10 {
  animation-name: split-left;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


@keyframes split-right {
  0% {
    top: 0px;
  }
  20% {
    top: 160px;
  }
  40% {
    top: 0px;
  }
}

.c11, .c12, .c13, .c14, .c15, .c16, .c17, .c18, .c19, .c20 {
  animation-name: split-right;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


@keyframes damage-1 {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    top: 0px;
    left: 35px;
  }
  66% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
  100% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
}

#n1 {
  animation-name: damage-1;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


@keyframes damage-2 {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    top: 0px;
    left: 30px;
  }
  62% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
  100% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
}

#n2 {
  animation-name: damage-2;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


@keyframes damage-3 {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    top: 0px;
    left: 25px;
  }
  58% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
  100% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
}

#n3 {
  animation-name: damage-3;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


@keyframes damage-4 {
  0% {
    opacity: 0;
  }
  50% {
    opacity: 0;
    top: 0px;
    left: 20px;
  }
  54% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
  100% {
    opacity: 1;
    top: 90px;
    left: 0px;
  }
}

#n4 {
  animation-name: damage-4;
  animation-duration: 2s;
  animation-timing-function: linear;
  animation-iteration-count: infinite;
}


#n1, #n2, #n3, #n4 {
  color: white;
  text-shadow:
    2px 0 0 black,
    0 2px 0 black,
    -2px 0 0 black,
    0 -2px 0 black;
}

HTML/CSS一覧