iconPlayMakerを使うとよく「Variable」というワードが出てきます。これは日本語では変数と呼ばれていて、PlayMakerを使う上で非常に重要なものです。本記事ではPlayMakerを使うときに必要な変数のうちint型とfloat型について、実際にどのように応用されるかを紹介します。STYLYにアップロードする方法サンプルシーン本記事を読めばPlayMakerを使って以下のようなシーンを制作することができます。箱の中に球が入った回数で動作が分岐するシーンオブジェクトが直線運動するシーンオブジェクトが回転するシーンオブジェクトが円運動するシーン事前準備UnityのプラグインであるPlayMakerをあらかじめインストールしておきましょう。概要とインストールはじめてPlayMakerを使用する方は、あらかじめ以下の記事を一読することで、理解を深めることができます。変数とは変数とは、数字や文字などを保持することができる名前付きの箱のようなものです。PlayMakerでは数字や文字などの保持が必要な状況が多々ありますが、そんな時に自分で変数として名前を付けることで、そこに数字や文字などを入れられます。変数の中に数字や文字などの値を入れることを代入といいます。変数が保持できる値は一つだけなので、代入する際にすでに変数の中に値がある場合は、代入する値に上書きされます。今回説明するintやfloatは変数の型の一つで、その型ごとに保持できる値や使い道が違います。次項からはint型の変数とfloat型の変数の保持できる値や使い道についてを詳しく説明します。int編intとはintとは-2147483648から2147483647までの整数を一つだけ保持することができる変数の型です。後述の通り、float型での計算は必ずしも厳密ではなく誤差が生じることがありますが、int型同士の計算では厳密に値が求められます。厳密性が必要な計算を行うときはfloat型よりもint型のほうが適しています。PlayMakerでのint型の変数の初期値は0です。intのActionPlayMakerのint型を使うActionの中でも特に重要なものを紹介します。Valueこのアクションはint型の変数に値を代入することができます。1代入先の変数を選択できます。2代入する整数を入力できます。入力欄の右のイコールを押すことで整数に変数を選択することもできます。3チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Operatorこのアクションは整数同士の四則演算と最大値と最小値の答えをint型の変数に代入できます。1計算に使われる整数を入力することができます。入力欄の右のイコールを押すことで整数に変数を選択することもできます。2計算に使われる整数を入力することができます。入力欄の右のイコールを押すことで整数に変数を選択することもできます。2が引く数、割る数になります。3Add(足し算)、Subtract(引き算)、Multiply(掛け算)、Divide(割り算)、Min(最小値)、Max(最大値)を選択できます。4計算の結果を保存する変数を選択できます。5チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Clampこのアクションは最小値と最大値を設定して、選択したint型の変数の値が最小値より小さい場合はその変数に最小値を代入して、選択したint型の変数の値が最大値より大きい場合はその変数に最大値を代入することで、変数の値を最小値以上かつ最大値以下の値にします。1代入先の変数を選択できます。2最小値を入力できます。入力欄の右のイコールを押すことで最小値に変数を選択することもできます。3最大値を入力できます。入力欄の右のイコールを押すことで最大値に変数を選択することもできます。4チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。ランダムな整数をint型の変数に代入します。1最小値を入力できます。入力欄の右のイコールを押すことで最小値に変数を選択することもできます。2最大値を入力できます。入力欄の右のイコールを押すことで最大値に変数を選択することもできます。3代入先の変数を選択できます。4チェックを入れるとランダムな整数に最大値が含まれるようになります。Intを繰り返したときに連続して同じ値が出ないようになります。Changedこのアクションは選択したint型の変数の値が変動した時に、選択したイベントを発生させるか、選択したbool型の変数の値をTrueにすることができます。※bool型とは、TrueかFalseの2類の値を取る型です。条件分岐をする場合などで活用します。1変動が検知される変数を選択できます。2選択した変数が変動した時に発生させるイベントを選択できます。3選択した変数が変動した時に値をTrueにするbool型の変数を選択できます。Integer2)を比較して、Integer1がInteger2と等しいとき、Integer1がInteger2より小さいとき、Integer1がInteger2より大きいとき、の三パターンそれぞれに発生するアクションを選択できます。1Integer1の値を入力できます。入力欄の右のイコールを押すことでInteger1に変数を選択することもできます。2Integer2の値を入力できます。入力欄の右のイコールを押すことでInteger2に変数を選択することもできます。3Integer1がInteger2と等しいときに発生させるイベントを選択できます。4Integer1がInteger2より小さいときに発生させるイベントを選択できます。5Integer1がInteger2より大きいときに発生させるイベントを選択できます。6チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Switchこのアクションはint型の変数の値によって異なるイベントを発生させることができます。1変数を選択できます。Eventの組み合わせの数が増えます。Eventの組み合わせは一つですが、数を大きくすると下記の画像のように変化します。Switch3イベントが発生するときの整数を入力できます。4どのイベントが発生するかを選択できます。5チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Switchを使って、数を条件に動作を分岐させることと非常に相性が良いです。Switchで動作が分岐するギミックを紹介します。Cubeを複数個組み合わせて上面のない箱を作ります。Hierarchy上ではbottomが底面で、side1~4が側面になっています。箱に収まるようにCubeを入れます。Triggerにチェックを入れます。Triggerにチェックを入れる作ったCubeにPlayMakerFSMを追加します。Event」を追加します。Eventに新しいイベント「entry」を追加します。State1のTransitionにentryを追加します。新しいStateとしてState2を作成して、State1のentryからState2につなげます。新しいStateとしてState2を作成して、State1のentryからState2につなげる以上で、新しく作ったTagが設定されたオブジェクトがCubeに侵入すると、イベントのentryが発生するようになりました。Switch」を追加します。Switchの上にくるようにしてください。OperatorのInteger1に新しい変数「counter」を選択して、Integer2に1を入力します。Resultに変数counterを選択します。Switchesに2を入力します。Eventに新しいイベント「3」を選択します。Eventに新しいイベント「6」を選択します。2のTransitionに3と6を追加します。新しいStateとしてState3とState4を作成して、State2の3からState3につなげて、State2の6からState4につなげます。State2とState3とState4のTransitionにFinishedを追加して、すべてのFinishedからState1につなげます。Transitionを設定する以上で球が箱に入った回数が変数counterに代入されるようになり、特定の回数(今回は3回目と6回目)で分岐が発生するようになりました。次に分岐先で起こる部分を作ります。Color」を追加します。Colorの順番になるようにしてください。Resultにそれぞれ新しい変数「R」、「G」、「B」を選択します。Variableに新しい変数「RandomColor」を選択します。Red、Green、Blueにはそれぞれ新しい変数「R」、「G」、「B」を選択します。Alphaには0.5を入力します。Materialを選択します。ModeをFadeに変更します。Materialを作る作ったMaterialを箱に適用しておきます。ColorのMaterialに作ったMaterialを選択します。ColorのColorに変数RandomColorを選択します。Object」を追加します。ObjectのActivateのチェックを外します。Objectに箱の底面を選択します。Objectの設定をするこれで箱に球が三つ入ったときに箱の色が半透明のランダムな色に変化するように、箱に球が六つ入ったときに箱の底が抜けるようになりました。実際の動作このようにint型の変数を使って数を条件に動作を分岐させれば、状況に応じてシーンに変化をもたらすことができます。次にfloat型の変数を使ってできることを見ていきましょう。float編floatとはfloatとは有効桁数7桁程度の精度で実数を一つだけ保存することができる変数の型です。噛み砕いて言うと、小数などの整数以外の数字も含む型ということです。float型の変数のイメージ図int型と違って少数にも対応しているので、座標や角度などの値も入れることができます。float型はPositionやRotationの値としてそのまま使用できるので、PlayMakerで非常に役に立ちます。仕様上float型を使った計算は必ずしも厳密ではなく、誤差が生じることがあるので、厳密な計算が必要な場合はint型を使います。PlayMakerでのfloat型の変数の初期値は0です。floatのActionPlayMakerのfloat型を使うActionの中でも特に重要なものを紹介します。Valueこのアクションはfloat型の変数に値を代入することができます。1代入先の変数を選択できます。2代入する実数を入力できます。入力欄の右のイコールを押すことで実数に変数を選択することもできます。3チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Operatorこのアクションは実数同士の四則演算と最大値と最小値の答えをfloat型の変数に代入できます。1計算に使われる実数を入力することができます。入力欄の右のイコールを押すことで実数に変数を選択することもできます。2計算に使われる実数を入力することができます。入力欄の右のイコールを押すことで実数に変数を選択することもできます。2が引く数、割る数になります。3Add(足し算)、Subtract(引き算)、Multiply(掛け算)、Divide(割り算)、Min(最小値)、Max(最大値)を選択できます。4計算の結果を保存する変数を選択できます。5チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Absこのアクションはfloat型の変数を選択して、選択した変数の値の絶対値を選択した変数に代入します。1変数を選択できます。2チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Clampこのアクションは最小値と最大値を設定して、選択したfloat型の変数が最小値より小さい場合はその変数に最小値を代入して、選択したfloat型の変数が最大値より大きい場合はその変数に最大値を代入することで、変数の値を最小値以上かつ最大値以下の値にします。1代入先の変数を選択できます。2最小値を入力できます。入力欄の右のイコールを押すことで最小値に変数を選択することもできます。3最大値を入力できます。入力欄の右のイコールを押すことで最大値に変数を選択することもできます。4チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。ランダムな実数をfloat型の変数に代入します。1最小値を入力できます。入力欄の右のイコールを押すことで最小値に変数を選択することもできます。2最大値を入力できます。入力欄の右のイコールを押すことで最大値に変数を選択することもできます。3代入先の変数を選択できます。Floatの値まで推移する値をfloat型の変数に代入することができます。Outで選択できます。Outの推移の違いは以下のようになります。InterpolateLinear:最初から最後まで同じ速度で値が推移します。Out:最初と最後に値が推移する速さが遅くなります。2推移前の値を入力できます。3推移後の値を入力できます。4どのくらいの時間をかけて値を推移させるか入力できます。5値を代入する変数を選択できます。6このアクションが終わったときに発生させるイベントを選択できます。7チェックを入れると推移する時間の長さがシーン内の時の流れ(TimeScale)に影響されなくなります。Changedこのアクションは選択したfloat型の変数の値が変動した時に、選択したイベントを発生させるか、選択したbool型の変数の値をTrueにすることができます。1変動が検知される変数を選択できます。2選択した変数が変動した時に発生させるイベントを選択できます。3選択した変数が変動した時に値をTrueにするbool型の変数を選択できます。Float2)を比較して、Float1がFloat2と誤差の範囲内で等しいとき、Float1がFloat2より小さいとき、Float1がFloat2より大きいとき、の三パターンそれぞれに発生するアクションを選択できます。1Float1の値を入力できます。入力欄の右のイコールを押すことでFloat1に変数を選択することもできます。2Float2の値を入力できます。入力欄の右のイコールを押すことでFloat2に変数を選択することもできます。3Float1とFloat2を等しいと判定する際にどのくらいの誤差を許容するかを入力できます。4Float1がFloat2と等しいときに発生させるイベントを選択できます。5Float1がFloat2より小さいときに発生させるイベントを選択できます。6Float1がFloat2より大きいときに発生させるイベントを選択できます。7チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Switchこのアクションはfloat型の変数の値によって異なるイベントを発生させることができます。1変数を選択できます。Eventの組み合わせの数が増えます。Eventの組み合わせは一つですが、数を大きくすると下記の画像のように変化します。Switch3どの値未満の時に4のイベントが発生するか入力できます。4どのイベントが発生するかを選択できます。Thanの値は上から昇順に並べてください。5チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。Testこのアクションは選択したfloat型の変数の値が正または0であるか、負であるかで異なるイベントを発生させることができます。1変数を選択できます。2変数の値が正または0であるときに発生するイベントを選択できます。3変数の値が負であるときに発生するイベントを選択できます。4チェックを入れると、このStateにとどまっている間に、毎フレームこのActionが実行されます。floatの応用Float型の変数は少数をとれるので、PositionやRotationの値として使うことができます。そこで、今回はfloat型の変数を使ってオブジェクトの座標や回転を連続的に動かすギミックを三つほど紹介します。オブジェクトの直線運動まずは動かしたいオブジェクトにPlayMakerFSMを追加します。Position」を追加します。Positionの順に並べます。PositionのXを新しい変数「PositionX」を選択します。Frameにチェックを入れます。2に0.01を入力します。Resultに変数PositionXを選択します。Frameにチェックを入れます。PositionのXに変数PositionXを選択します。Frameにチェックを入れます。Positionの設定をする以上でオブジェクトが直線運動するようになりました。実際の動作オブジェクトの回転まずは回転させたいオブジェクトにPlayMakerFSMを追加します。Rotation」を追加します。Rotationの順に並べます。RotationのYを新しい変数「AngleY」を選択します。Frameにチェックを入れます。Resultに変数AngleYを選択します。Frameにチェックを入れます。RotationのYに変数AngleYを選択します。Frameにチェックを入れます。Rotationの設定をする以上でオブジェクトが回転するようになりました。空のオブジェクトを作ります。動かしたいオブジェクトを空のオブジェクトの子オブジェクトにします。動かしたいオブジェクトのPositionのXに2を入力します。動かしたいオブジェクトのPositionのXに2を入力する前項「オブジェクトの回転」を空のオブジェクトに適用します。空のオブジェクトを回転させる以上でオブジェクトが円運動するようになりました。実際の動作これらの動きはシーン制作でもよく使われるので、ぜひ試しに作ってみてください。終わりに本記事ではint型の変数とfloat型の変数の基本と応用を説明しました。今回紹介したように、PlayMakerを使えばUnityで使用するプログラミング言語(C#)を学習しなくても、Unityコンテンツを簡単に作成できます。今回紹介した応用以外にも、PlayMakerで変数を使いこなせばさまざまなことを表現できるので、皆さんもぜひPlayMakerを使ったシーン制作に挑戦してみてください。STYLYにアップロードする方法3DモデルをSTYLYにアップロードしてみましょう。iconTomoUnityVariableTomoVRに興味がある大学生です。VRなどを専門的に勉強したいと思いながら、今は基礎学問にはげんでいます。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。リアルとバーチャルが溶け合う、次世代のクリエイターの受賞作をご覧ください。