【Unity】一定間隔でオブジェクトを作成する
高さ50、(x,z)=(-20~20,-20~20)の平面上のランダムな場所に
オブジェクトを一定間隔で作成させる。
オブジェクトを「Project」ビューにドラック&ドロップしてプレハブ化する
using System.Collections; using System.Collections.Generic; using UnityEngine; public class Ballpfb : MonoBehaviour { //複製させるオブジェクト public GameObject prefab; //オブジェクトが複製される間隔(時間) public float appearNextTime; //複製させる数 public int maxNumOfEnemys; //複製させた数(総数) public int numberOfEnemys; //待ち時間計測フィールド private float elapsedTime; //戻り値なし、引数なしでStartという名前のメソッドを作成 void Start() { //複製させた数を初期化 numberOfEnemys = 0; //待ち時間を初期化 elapsedTime = 0f; } // 引数なし、戻り値なしでUpdateというメソッドを作成 void Update() { //もし複製させた数が複製させたい数より上回ったら何もしない if (numberOfEnemys >= maxNumOfEnemys) { //return文:メソッドを終了し、戻り値を返す役割を持つ。これは戻り値なし。 return; } //経過時間を足す elapsedTime += Time.deltaTime; //もし経過時間がオブジェクトを複製する時間を上回ったら以下を実行 if (elapsedTime > appearNextTime) { //BallCreateメソッドを呼び出す BallCreate(); } } //引数なし、戻り値なしでBallCreateという名前のメソッドを作成 void BallCreate() { //float型のxに0~20のランダムな数字を入れる float x = Random.Range(-20f, 20f); //float型のyに500を入れる float y = 50; //float型のzに0~20のランダムな数字を入れる float z = Random.Range(-20f, 20f); //Vector3型の「position」を(x,y,z)の値を入れて作成 Vector3 position = new Vector3(x, y, z); //GameObject.Instantiateでプレハブからインスタンスを作成する Instantiate(prefab,position,Quaternion.identity); //複製させる数に1を足す numberOfEnemys++; //待ち時間を初期化する elapsedTime = 0f; } }
【Unity】インスタンスの作成【わすれるので】
InstantiateメソッドはMonoBihaviourクラスから継承されたメソッド。
プレハブやゲームオブジェクトを複製する。
Instantiate(プレハブ,位置情報,回転情報)
【C#】return文【忘れるので】
class A{
public int add (int a, int b){ //戻り値の型:int型、メソッド名:add
int x;
x=a+b;
return x; //xが戻り値
}
}
reruen文
メソッドを終了し、戻り値を返す役割を持つ。
【Unity】ボールを跳ね返らせる【忘れるので】
[Aseet]-[create]-[physic Material]
「Inspector」ビュー
・Dynamic Friction
移動している物体に対しての摩擦
0は氷みたいな。
・Static Friction
面上で静止しているオブジェクトに使用される摩擦。
0は氷みたいな。1は強い力でないと動かない。
・Bounciness
表面の弾力。
0は弾力なし。1はエネルギーが減らずにはねる。
・Friction Combine
衝突するオブジェクト間の摩擦
Average:二つの摩擦が平均化
Minimum:二つの摩擦力のうち小さいほうを使用
Maximum:二つの摩擦力のうち大きいほうを使用
Multiply:二つの摩擦力が互いに乗算
・Bounce Combine
衝突するオブジェクトの跳ね返り度合い
【Blender】シェイプキーでほかのシェイプキーから一部を合成したい【忘れるので...】
①動かしたいシェイプキーの編集モードに
②動かしたいメッシュを選択
③「F3」キーで検索「」(ショートカットキーがわからない)
④コピーしたいシェイプキーを選択して「追加」にチェックを入れる
(あっているかはわからない。)
MMD制作日記【2】
ボーンの見方
赤色→選択中のボーン
青色→通常のボーン
黄色→IK接続ボーン
四角で表示→IK制御ボーン
×で表示→捩専用のボーン
ボーンを選択するにはボーンの○や□のところを、
左クリックする。
ボーンの選択は○や□を左クリックで選択できますが、
画面左にある「フレーム操作」パネルでボーン名をクリックすることでも選択することができます。
座標系
ボーンの操作は下にある「ボーン操作」パネルで行います。
パネルの一番上の段3つはボーンの操作ができます。
「選択」ボタンを押すと、ボーンを選択
「回転」、「移動」ボタンを押すとボーンを移動できます。
また、移動できないボーンはボタンが灰色になります。
回転
ここで、右肩を選択し、「回転」ボタンを押すと、、、
右肩に「ボーン操作ハンドル」が現れました。
視点の移動
右クリックをしたままドラッグをすると角度が変わります。
中ボタンをドラッグで平行移動することができます。
また、「視点」パネルで、視点の方向を選ぶこともできます。
座標操作
下の画像は画面右下に並んでいるアイコンです。
これは軸別に動かすときに使います。
上の段は「回転」、下の段(グレーの)は「移動」のアイコンです。
「local」と書かれている部分を左クリックすると、表示が「global」に変わります。
localはボーンの初期角度からの操作になります。
globalは世界全体で変わらない座標系になります。
IK
IK(インバースキネマティクス)はボーン角度の自動計算をします。足の先を動かせば足やひざが動きます。
下図はIKのみを動かした図
IKを使わない設定
モデルの読み込み時点ではすべてのIKはONの状態になっています。
IKを使いたくない場合は「モデル操作」パネルより「IK ON/OFF」を設定できます。
IKのON/OFF設定もフレーム位置に設定されます。
足IK
足IKは位置が固定されています。
下図は足、つま先IKのONの時(左)と足、つま先IKのOFFの時(右)です
腕
腕はlocal軸で行うとx軸が捩じりになります。
指
MMDには「グー」「半開き」ポーズデータが左右あります。
ポーズデータは[ファイル]-[ポーズデータの読み込み]から読み込みます。
手をチョキにしてみました。
グーから人差し指と中指を初期化します。
Shiftキーを押すことで複数ボーンを選択することができます。
表情を付ける
表情の操作は下の「表情操作」パネルで行います。
「表情」を選択して「表情スライダー」を好きな値に変更したら「登録」ボタンを押して登録します。
にっこり
ポーズを保存する
適当にポーズをとったら「全て選択」を押して[ファイル]-[ポーズの保存]から適当な名前を付けて保存する。(一部でよい場合は書き出すボーンだけ選択して書きだす。)このとき「表情」は保存されない。
よく使うポーズはパーツごとに保存しておくと便利です。
表情を保存する
表情はVMDデータとして保存します。
保存したい表情のあるキーフレームの位置に合わせて、[表情]-[すべての表情フレーム登録]を選択する。
「フレーム操作」の表情すべてに赤い点が打たれた。
この状態で、[ファイル]-[モーションデータ保存]を選択し、適当な名前を付け保存する。
これで表情が保存されました。
このとき表情以外のキーフレーム一緒に選択していると、そこも一緒に保存されてしますので注意!
静止画を保存
[表示]-[出力サイズ]から出力サイズの変更をします。
[ファイル]-[画像ファイルに出力]を選択します。
出力した画像です。