【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】ボールを跳ね返らせる【忘れるので】

[Aseet]-[create]-[physic Material]

f:id:meryl_2525:20190916131433p:plain

 

「Inspector」ビュー

f:id:meryl_2525:20190916131513p:plain

・Dynamic Friction

移動している物体に対しての摩擦

0は氷みたいな。

 

・Static Friction

面上で静止しているオブジェクトに使用される摩擦。

0は氷みたいな。1は強い力でないと動かない。

 

・Bounciness

表面の弾力。

0は弾力なし。1はエネルギーが減らずにはねる。

 

・Friction Combine

衝突するオブジェクト間の摩擦

 

Average:二つの摩擦が平均化

Minimum:二つの摩擦力のうち小さいほうを使用

Maximum:二つの摩擦力のうち大きいほうを使用

Multiply:二つの摩擦力が互いに乗算

 

Bounce Combine

衝突するオブジェクトの跳ね返り度合い

 

 

【Unity】Kinect v2 でモデルを動かす【忘れるので】

①モデルをインポートしてHumanoidにする。

 

Kinect v2 exmpleをAseetstoreからインポートする

 

③モデルをSeaneにインポート

 

④モデルに「Avatar Conttroler」をアタッチ

 

⑤空のゲームオブジェクトを作成→「KinectObject」に

 

⑥KinectObjectに「KinectManager」をアタッチ

 

Mirroed Movement

→左右反転

 

VerticalMovement

→上下方向に動く

 

Smooth Factor

→反応が早くなる

 

 

 

 

 

 

 

【Blender】シェイプキーでほかのシェイプキーから一部を合成したい【忘れるので...】

①動かしたいシェイプキーの編集モードに

f:id:meryl_2525:20190915120857p:plain

 

②動かしたいメッシュを選択

f:id:meryl_2525:20190915120950p:plain

 

③「F3」キーで検索「」(ショートカットキーがわからない)

f:id:meryl_2525:20190915121103p:plain

 

④コピーしたいシェイプキーを選択して「追加」にチェックを入れる

f:id:meryl_2525:20190915121126p:plain

 

 

 

(あっているかはわからない。)

 

 

 

MMD制作日記【2】

モデルを読み込む

下にある「ファイル操作」の「読込」から使用するpmdファイルを読み込む。
今回は「初音ミク.pmd」を使います。

f:id:meryl_2525:20190703223834p:plain:w200


ミクさんが出てきました。

f:id:meryl_2525:20190703223944p:plain:w350



ボーンの見方

赤色→選択中のボーン
青色→通常のボーン
黄色→IK接続ボーン
四角で表示→IK制御ボーン
×で表示→捩専用のボーン

f:id:meryl_2525:20190703224848p:plain:w350


ボーンを選択するにはボーンの○や□のところを、
左クリックする。

ボーンの選択は○や□を左クリックで選択できますが、
画面左にある「フレーム操作」パネルでボーン名をクリックすることでも選択することができます。
f:id:meryl_2525:20190704120228p:plain:w250



座標系

ボーンの操作は下にある「ボーン操作」パネルで行います。

f:id:meryl_2525:20190703225750p:plain:w200

パネルの一番上の段3つはボーンの操作ができます。

「選択」ボタンを押すと、ボーンを選択
「回転」、「移動」ボタンを押すとボーンを移動できます。
また、移動できないボーンはボタンが灰色になります。


回転

ここで、右肩を選択し、「回転」ボタンを押すと、、、

f:id:meryl_2525:20190703230538p:plain:w300

右肩に「ボーン操作ハンドル」が現れました。


視点の移動
右クリックをしたままドラッグをすると角度が変わります。
中ボタンをドラッグで平行移動することができます。
f:id:meryl_2525:20190704100216p:plain:w300

また、「視点」パネルで、視点の方向を選ぶこともできます。
f:id:meryl_2525:20190704100337p:plain:w200



座標操作

下の画像は画面右下に並んでいるアイコンです。
f:id:meryl_2525:20190704101052p:plain:w200

これは軸別に動かすときに使います。
上の段は「回転」、下の段(グレーの)は「移動」のアイコンです。


「local」と書かれている部分を左クリックすると、表示が「global」に変わります。
localはボーンの初期角度からの操作になります。
globalは世界全体で変わらない座標系になります。


IK

IK(インバースキネマティクス)はボーン角度の自動計算をします。足の先を動かせば足やひざが動きます。

下図はIKのみを動かした図
f:id:meryl_2525:20190704115938p:plain

IKを使わない設定

モデルの読み込み時点ではすべてのIKはONの状態になっています。
IKを使いたくない場合は「モデル操作」パネルより「IK ON/OFF」を設定できます。
IKのON/OFF設定もフレーム位置に設定されます。
f:id:meryl_2525:20190704120819p:plain


足IK

足IKは位置が固定されています。
下図は足、つま先IKのONの時(左)と足、つま先IKのOFFの時(右)です
f:id:meryl_2525:20190704121736p:plain:w250 f:id:meryl_2525:20190704121747p:plain:w250

腕はlocal軸で行うとx軸が捩じりになります。
f:id:meryl_2525:20190704131710p:plain:w300

 

MMDには「グー」「半開き」ポーズデータが左右あります。
ポーズデータは[ファイル]-[ポーズデータの読み込み]から読み込みます。
f:id:meryl_2525:20190704132425p:plain:w250f:id:meryl_2525:20190704132451p:plain:w250


手をチョキにしてみました。
グーから人差し指と中指を初期化します。
Shiftキーを押すことで複数ボーンを選択することができます。
f:id:meryl_2525:20190704133242p:plain:w300



表情を付ける

表情の操作は下の「表情操作」パネルで行います。
f:id:meryl_2525:20190704134045p:plain:w200


「表情」を選択して「表情スライダー」を好きな値に変更したら「登録」ボタンを押して登録します。
f:id:meryl_2525:20190704134501p:plain:w200
f:id:meryl_2525:20190704134512p:plain:w200


にっこり
f:id:meryl_2525:20190704134722p:plain



ポーズを保存する

適当にポーズをとったら「全て選択」を押して[ファイル]-[ポーズの保存]から適当な名前を付けて保存する。(一部でよい場合は書き出すボーンだけ選択して書きだす。)このとき「表情」は保存されない。
f:id:meryl_2525:20190704140531p:plain:w250f:id:meryl_2525:20190704140552p:plain:w250
  
よく使うポーズはパーツごとに保存しておくと便利です。


表情を保存する

表情はVMDデータとして保存します。

保存したい表情のあるキーフレームの位置に合わせて、[表情]-[すべての表情フレーム登録]を選択する。
f:id:meryl_2525:20190704141547p:plain:w300

「フレーム操作」の表情すべてに赤い点が打たれた。
f:id:meryl_2525:20190704141653p:plain:w200


この状態で、[ファイル]-[モーションデータ保存]を選択し、適当な名前を付け保存する。
f:id:meryl_2525:20190704145446p:plain:w300

これで表情が保存されました。
このとき表情以外のキーフレーム一緒に選択していると、そこも一緒に保存されてしますので注意!


静止画を保存

[表示]-[出力サイズ]から出力サイズの変更をします。
f:id:meryl_2525:20190704170908p:plain:w200
f:id:meryl_2525:20190704171006p:plain:w150
                       

[ファイル]-[画像ファイルに出力]を選択します。    
f:id:meryl_2525:20190704171442p:plain





出力した画像です。
f:id:meryl_2525:20190704171521j:plain