【MME】パラメータ編集のための「変数」と「データ型」の知識

      2014/10/20

LINEで送る
Pocket

MMEエフェクトのパラメータ編集したいけど、プログラミングをやったことなくて手が出せないという人向けに、簡単な用語を解説しようと思います。

概念だけでも覚えておくと、パラメータ編集する際に確実に役に立ちます。適当に弄ったら、エラーが起きたということも減ることでしょう。

とりあえずメモ帳だとわかりにくいかと思いますので、適当にエディタを用意することをお勧めします。どのエディタが良いとかよく分からない場合はこちらでも参考にしてください。消すのも簡単なので、気軽に導入出来ます。

TeraPadを使ってMMEのパラメータ編集しよう!

今回覚えること用語「変数」「データ型」「宣言」「代入」

今回、覚える用語はたったの4つです。

  • 変数
  • データ型
  • 宣言
  • 代入

これらは、他のプログラミング言語でも使われているので、MMEエフェクトのパラメータ編集以外にも役立ちます。他のプログラミング言語を学ぶ機会があればの話ですが。

MMD用のパラメータについて

実際に、MMEエフェクトのパラメータを見ながら解説していきます。MMM対応のパラメータまで解説すると複雑になるので、今回はMMD用のパラメータで解説します。

MMD用パラメーター

私が作ったG_Shader Ver3.01のエフェクトのパラメータです。

ここで何をしているかというと、

float型の変数名[ShadowPow]を宣言しています。ついでに、0.90という数値を代入してます。

といっても、用語分からないと何言ってるんだという方も居るかもしれません。

では、用語を一つ一つ解説していきます。

「変数」は、数値の入れ物の名前

プログラム上で数値を保存したり、計算のたびに保存した数値を読み込みます。そのときに、保存先の名前が必要になります。

それが、「変数」になります。つまり、数値の入れ物の名前です。

プログラミング言語によって使える名前は異なりますが、ざっくりとルールをまとめました。

  • プログラミング言語で既に使っている名前は使えない。
  • 英数字と一部記号のみ
  • 大文字小文字は別の名前

厳密には違いますが、とりあえずこのルールだけ知っておけば、パラメータ弄るには十分だと思います。

「宣言」は、この変数使います!という記述

変数を使うときは、これからこの名前で使います!という記述が必要になります。それを宣言といいます。

このとき、MMEエフェクトに使用されている言語では、「データ型」も一緒に記述する必要があります。よって、「データ型」と「変数」が一緒に記述されているところは、変数を宣言しているところだと思ってください。

変数を使う前に宣言が必要ですので、エフェクトファイルを開くとだいたい最初の方に書いてあります。宣言前に変数内の数値を読み込もうとするとエラーになります。

プログラミング言語によっては、わざわざ宣言しなくても変数を使える言語もあります。

「データ型」は、変数の入れる数値の種類

 変数を宣言する際に、そこに入れる数値の種類を指定する必要があります。その数値の種類を「データ型」を記述することで指定します。

「データ型」の指定は、変数の宣言の際に一度だけです。同じ変数名で、2回記述するとエラーになります。

データ型は、結構種類あるのでよく使うデータ型を説明します。

bool型

bool型は、「0」または「1」だけです。正確には「true」 または 「false」ですが、だいたい「0」か「1」を入れます。

主に、オンオフのスイッチ用に使われます。私のG_Shaderでも、スキンモードの切り替え用に使ってます。このように

スキンモードの切り替え用

 

float型

float型は、浮動小数点を扱う数値の場合使います。つまり、「0.1」とか「10.5」などの小数点を含む数値です。

このfloat型が一番使われます。それは、計算上整数だけの計算が少ないので、どうしてもよく使います。

このfloat型に数字をつけると、複数の値を変数に入れておけます。一番多く使うのは「float3」でしょうか。

float3のparameter

GreenerShaderでもよく使ってましたが、「float3」で3つの数値をまとめて入れておけるので、RGBの色の数値やXYZの座標の数値を入れるのに使います。3つまとめて入れておくことで、まとめて計算出来たり、変数がわかりやすくなります。

最大で「float4」まであり、4つまでまとめて保存できます。「float5」は、ありません。

「float4x4」という記述をすれば、最大16まで数値をまとめておけますが、そのようなパラメータを弄ることは無いと思いますので、割愛します。

int型

int型は、整数のみの数値を扱う場合に使います。「1」や「10」などの整数です。「10.5」など小数を含む数値は入れられません。

int型も、float型と同じで、数字をつけることで複数の数値をまとめて入れておけます。「int3」とか「int4x4」

整数だけの計算のほうがfloat型より計算が早いのですが、小数を扱うことが多いのであまり使われてないかも。

「代入」は、変数に数値を入れること

変数に数値を入れることを「代入」といいます。

代入の仕方は、

「変数」= 数値;

といった感じで記述します。こうすることで、変数に数値を代入することが出来ます。この数値の変わり計算式を入れると、その計算結果が代入されます。

たとえば、「A」という変数に「B」という変数の10倍の数値を入れる場合は、このように記述すると「A」という変数に代入されます。

A = B * 10;

ほとんどのプログラミング言語ではこのように記述します。むしろ、逆はあるのかな?

最後に

では、もう一度G_Shader Ver3.01のエフェクトのパラメータを見てみましょう。

4つの用語の意味を分かると、下の記述の意味が分かると思います。

MMD用パラメーター

float型の変数名[ShadowPow]を宣言しています。ついでに、0.90という数値を代入してます。

つまりこういうこと

代入をわかりやすくした図

わざわざ図にしてみたが図にするほどでも無いような説明でしたね…作るのに思った以上時間かかったし(´ω`)

 

といった感じで、4つ用語の説明をいたしましたが、少しでもMMEエフェクトのパラメータ編集の助けになれば幸いです。

厳密に言うと、結構間違った説明しているかもしれません。とりあえず、概念だけでも!といった感じの説明なので、ちゃんとプログラミングしたい!という人は、これを鵜呑みにせずにしっかりと勉強してください。

プログラミングは最初に何をしているのか、何が書いてあるのか、という壁だと思いますので、それさえ乗り越えれば少しはプログラミング出来るようになると思います。そして、最終的には私の代わりにエフェクト作ってくれるといいな~

LINEで送る
Pocket

 - MME , , , , , ,

  関連記事

G_ToonShader Ver3 解説 仕様編

新しいG_ToonShaderを作成しましたので、解説します。 こちらでは、主な …

M4Layer用のシェーダー作成2

引き続き、今週作成したM4Layer用のシェーダーの紹介と簡単なパラメーターの設 …

【MME】ExcellentShadowのSSAOとHgSAOの高品質パラメータ変更の仕方

そぼろさんのExcellentShadowと針金さんのHgSAOのパラメータを変 …

G_Shader_MMMアイキャッチ
G_ShaderのMMM対応版が配布されました!

何度かMMM対応版を作ろうと思っていましたが、影の処理などがうまく出来ずMMM対 …

いくつかシェーダーを更新しました。

久しぶりの更新です。忙しかったのも、ありますが、ネタが無かったので更新してません …

HgSAOと他ポストエフェクト併用時の表示ずれの対策と検証

HgSAOと他ポストエフェクト併用時、表示がおかしくなってしまうことがあるみたい …

G_Shader Ver3.1の公開と簡単な解説

G_Shader Ver3.1を公開しました。 MikuMikuEffect用  …

M4Layer用のシェーダーを作成1

週末で、G_Shaderの使い方の後編の記事を書く予定でしたが、思いつきでM4L …

【MME】HgSAOの高品質パラメータ

ずっとBlogを更新していませんでした。 体調悪かったり、お仕事忙しかったり、色 …

制作者のあまり役に立たないG_Shaderの使い方(前編)

先日、新しくG_Shader Ver3.1を公開しました。それを使って、私なりの …