AfterEffectsのエクスプレッションでは、システムで使用されている名前を変数名にすると意図した動作にならない場合があります。
その予期せぬ不具合を回避する為の変数名のつけ方について、説明していきたいと思います。
問題が起きる記述
例えば、エクスプレッションに以下の記述をすると、エラーが出ます。
var function = 1;
function;
上記の場合、エラーが出ます。
原因は、functionという変数はシステムによって既に使われている為、新たに宣言しても正しく動作しないのが原因です。
解決方法
この問題は、変数名に接頭辞(先頭につける文字)をつけることで簡単に解決します。
せっかく接頭辞をつけるなら、意味のある有効な文字にした方が良いので、本ブログで簡単な命名規則を決めてみました。今後、本ブログのコードはこの規則に従った記述をしていきます。
命名規則
全体
プログラミングでは、記述方法を大きく分けると「スネークケース」と「キャメルケース」の2種類あります。
エクスプレッションは先頭小文字のキャメルケースで書かれているので、変数名等も先頭小文字のキャメルケースに合わせることにしました。
例えば、「color code ae」という単語をスネークケースとキャメルケースで記述すると以下のようになります。
- スネークケース・・・color_code_ae
- キャメルケース・・・colorCodeAe
変数名
変数名には、中に入るデータの種類ごとに、接頭辞をつけます。
- 数値・・・n ※numericの略
- 文字列・・・s ※stringsの略
- 配列(数値)・・・an ※array numericの略
- 配列(文字列)・・・as ※array stringsの略
- オブジェクト・・・o ※objectの略
- 論理値・・・b ※booleanの略
- 不定・・・u ※unknownの略
例えば、位置(数値の配列)が入る「position」という変数を使う場合は、「anPosition」と表記します。
これで既存のプロパティとの名前重複を回避きるので、重複を気にせず記述が出来るようになります。
まとめ
今回紹介した命名規則を使うと、予期せぬ不具合の回避と共に、ソースコードの可読性も上がるので、後々見返したときに理解が早くなると思います。
今回紹介したルールはあくまで本ブログの例ですので、お好きな書き方で全く問題ありません。
本記事のソースコードを見たときに、変数の先頭についている「n」や「s」などがどんな意味なのか知りたくなった時にもう一度この記事を見返してもらえればと思います。