新イントロエンジンの改良点を解説
はじめに
あしばらです。
この度なんと、イントロエンジンをそこそこ大幅に改良しました。
根本的なプログラムは変わっていませんが、新機能を追加したり、少し仕組みを変えたりといろいろ便利にしてみたので、自己満足解説をしていきたいと思います。
因みに、全体のブロック数を比較すると、1121 → 924 と大幅に減少しています。
イントロエンジンのリンク
旧:https://scratch.mit.edu/projects/1072155957/
新:https://scratch.mit.edu/projects/1072158670/
変更点
まずは変更点から解説していきます。
1. 仕分けアイコン
一番小さいように見えて実は結構大きな変更点です。
Line Cap / Arc Filler / Tri Filler / Clipper などはこのマークに統一されます。
Arc / Filler / Line Cap などのコードを組む上ではあまり使わないブロックが上の方に来てたのをなくすことができるため、快適さが意外とUPしています。
2. 使わないプログラムの移動
どういう事かと言いますと、Tri Filler / Fractal Burst などのほとんど使わないのにエンジンに入っているプログラムを、別のところに隔離しました。
毎回プログラムを削除する手間が省けるし、使いたければバックパックして簡単に取り出せるという訳です。
因みに3D Engine や Line Clipper もここにまとめて詰め込みました。
3. Easingブロック
この変更が一番大きいと言っても過言ではないレベルの変更です。
なんとブロック数が、121 → 76 と超大幅に減っています。
もちろん機能を失くしたわけではありません。なんならできることが増えてます。
その変貌っぷりがこちら
はい、美しくなりすぎ。かなりあちこち変わっているので順を追って説明します。
まずは定義自体の見た目。もともとのブロックはかなり雑だったので、使う人(自分)に優しいUIにしました。
次に出力箇所。もともとは | Easing という専用のリストに入れていましたが、新エンジンでは | Alts という変数代わりのリストに入れるようになりました。これにより大幅な省ブロックが実現しています。
そして、出力箇所が | Alts になったことにより、今まで使ってた
| Easing の 1 ~ n 番目 を、| Alts の m 番目に入れる
というブロックを使わずに、直接 Easing の計算結果をリストに加算 (ついでに乗算も) できるようになりました。
あとは純粋にプログラムの計算式自体の無駄を排除して整理したらこうなりました。
もちろん、| Easing とかいう謎リストは廃棄。
今までの私は何をしていたんだろう…
4. Line Cap の色指定方法
もともと、Pen部分は カラーコード+透明度 、Cap部分は 画像効果 で指定していたのを、Cap部分も カラーコード+透明度 指定に統一しました。
コスチューム用意の手間はありますが、
色 / 明るさの画像効果を指定する必要が無い
画面全体の色を変える際に生じる微妙な色彩のズレが起きない
などのメリットがあり、地味に使い勝手が良くなっています。
追加機能
ここからは新しく追加された機能についてです。
1. 2D回転ブロック
座標の回転拡大縮小をできる定義を追加しました。
これに伴って、座標設定のプログラムも少しシンプルになっています。
勘が良い方は気づいたかもしれませんが、ここだけ見ると非常に非効率なプログラムとなっています。
というのも、Camera Control に必要なブロック数がかなり増加してしまっているのです。
ですが、ご安心を。
この2D回転ブロック、意外と用途が多く、総合的に見るとブロック数が大幅に減少しているのです。
主な用途としては、
Camera Control
Line Explosion
Spline
Particle
分割 Text
などなど、かなり汎用性が高いです。
ということで、地味に便利な新ブロックでした。
2. Particle
よく使う2種類のParticleのプログラムを導入しました。
中心からびゅーんってなる奴と、全体的にびゅーんってなる奴です。
今までParticleは、イントロの度に1からコスチュームやプログラムを作っていたので、かなりの革命だったりします。
因みにこれは定義ではなく直置きとなっています。定義にしようとすると設定する項目が多すぎて長くなり過ぎちゃうし、ブロック数ももったいないからね。
ついでにParticleの乱数システムも変更しています。
もともと私はParticleに乱数を使いたいとき、イントロの初めに
みたいな感じのプログラムを動かしていましたが、
新パーティクルでは汎用性を高めるために、シンプルな疑似乱数を用いています。
Particleのためにリストを増やす必要が無くなるのは何となく良いですね。
おわりに
今回もかなり自己満記事になりましたが、最後まで読んでいただきありがとうございます。
皆さんがイントロエンジンの作成や改良する際の参考になったりしたら幸いです。
それではまた。