2015年9月10日木曜日

LightをBakeする

Bakeはここを参考に
http://tsubakit1.hateblo.jp/entry/2015/05/05/133903
http://tongullman.blogspot.jp/2015/05/unity5.html



Bake中に途中でエラーを発してそれ以上動かなくなるということがあった。
その時出たエラーの対処法は以下を参考にしました。
http://cubic9.com/Devel/Unity/Unity5%A4%C7Lightmap%A4%CEbake%A4%ACLight%20Transport%A4%C7%BB%DF%A4%DE%A4%EB%B7%EF%A4%CE%C2%D0%BD%E8/



Lightingの設定項目の見方
http://indie-du.hatenablog.com/entry/2015/06/02/214909
 GIは
 http://indie-du.hatenablog.com/entry/2015/06/04/205556
 ライトマップを焼くのにこれだけは設定しろ!
 http://indie-du.hatenablog.com/entry/2014/12/02/202230

2015年9月2日水曜日

SkyBoxのSunの話


Sunの部分にLightを入れると、skyboxに太陽ができる。
その太陽を設定したい時は、skybox/Procedural
上から・太陽の大きさ
   ・大気圧(薄い=黒い 厚い=赤い)
   ・空の色合い
   ・地面の色
   ・露光(輝度)


角度により、太陽の色が変化する










LightにLens Flareのコンポーネントを付ける
Directionalにチェックを入れるとフレアができる

















Terrainでフィールドを作る

これ(左から2番目)で整地できる

Heightで高さを決める。それが地面全体の基準の高さになる
・道



Terrainの地面からしか、木や草をブラシで生やすことができない。だから、草や木が生えそうなところはあらかじめ地を作っておく。(埋めこんでおく)
今回のものでいえば、横の石壁はオブジェクトだが、そこから草が生えているように見せるために石の中にもTerrainの地面を入れておく。

2015年8月30日日曜日

キャラクター移動の基礎

 ⒈アニメーションの話 

 オブジェクトのスピードが一定以上の時、「走る」アニメーションを
 SetFloat・・はTrigger、Boolとかでも可 

  private Animator animator;

    // Use this for initialization
    void Start () 
    {
        animator = GetComponentInChildren<Animator> ();
    }


  // Update is called once per frame
    void Update () 
    {
        animator.SetFloat ("Speed"20f);
    }




⒉使い回せそうな移動スクリプトの話


CharacterController controller;
    public float MoveSpeed = 7f;
    public float RotationSpeed = 360f;

    // Use this for initialization
    void Start () 
    {
        controller = GetComponent<CharacterController> ();
    }
    
    // Update is called once per frame
    void Update () 
    {
        float h = Input.GetAxis ("Horizontal");
        float v = Input.GetAxis ("Vertical");

        var direction = new Vector3 (

              h * MoveSpeed
              0f
              v * MoveSpeed);
        if(direction.sqrMagnitude > 0.01f)
        {
            Vector3 forward = Vector3.Slerp(

                  transform.forward
                  direction
                  RotationSpeed * Time.deltaTime);

            transform.LookAt(transform.position + forward);
        }
        controller.Move (direction * MoveSpeed * Time.deltaTime);


2015年8月8日土曜日

iTweenでアニメーション

Asset Store


iTweenでNPCが巡回する


NPCオブジェクトにI Tween Event スクリプトを
Nameのところにイベント名を入力
x, y, z の座標にチェック 数字を入力
time で上の座標まで移動する時間を指定
looptype でloopの仕方を指定

iTweenEvent.GetEvent(gameObject,"イベント名").Play();
iTweenEvent.GetEvent(gameObject,"イベント名").Stop();
スクリプトではこれで制御可能


ActionScript入門Wikiで

2015年8月6日木曜日

QuickSetObjectPlacerを使ってみた

Asset StoreのQuickSetObjectPlacerを使ってみた

  1. Asset内の”_QuickSet”のprefabをScene上に配置
  2. セットしたいObjectをScene上に
  3. ”_QuickSet”のAdd an object group を押す
  4. Add a game object を押す。そこに、連続して配置したいオブジェクトを選択
  5. 左に出るチェックボックスにチェックを
  6. START OBJECT PAINTING を押す。

 これでScene上クリックで、そこに選択したオブジェクトを連続配置が可能。


この場合、Hierachy上に個別に配置される。グループでまとめたい時は⑥を押す前にGroup Name と Group Parent を設定してやるといい。


この方法で配置した場合、マウスクリックの位置になるため、バラバラの座標になる。
だから、Edit>Snap Settings で一挙座標を整数値に変えることが出来る。

が、Vキーを押して微調整する方が早いかも

Lightingについて

Lightingで遊ぶ

Sample Assetsをインポート
https://www.assetstore.unity3d.com/jp/#!/content/21064



1.

Scene全体を真っ暗にして・・
SpotLightにLightShaftのスクリプトをつけるだけ
 この方法はDirectionalLightとSpotLightのみ(普通にHaloにチェック入れればOK)

 真ん中に黒い線が走ってしまうのはなんでだろ?
スクリプトのAttenuation curveにチェックを入れて、少しずつ光が弱くなるようにした。
 これで少しごまかせたが…







2.


こんな感じの壁のScene作成


DirectionalLightにLightShaftのスクリプトを付けて、ちょうど窓から射し込むように配置





















結果・・・


これみる感じ、黄色い四角に入ったところしかボリュームライトは出来ないみたい。

⒊IBL&LightProveのこと

・Staticにしたオブジェクトは間接光の影響を受けるが、動的のものは影響を受けない。
そのためにLightProveを設置したら動的のものにも間接光をあてることができる。

・ライトを使うよりも超軽いため、LightProbeで代用する
ただ、影や光沢といった表現を行うことができない


 できてる・・・?

IBL


DirectionalRightを削除して、オブシェクトを全部staticに。IBLのみのライティング
動的オブジェクトにこのライトをつけるには、LightProveを配置する。


上のこの方法は、屋内では使えない。本来暗いはずの室内にもIBLの影響が出てしまうから
こういう時、RefrectionProveを使う。
参考:http://tsubakit1.hateblo.jp/entry/2015/03/17/233423

RefrectionProveはレンダリング結果から反射や色をきめる。
なお、RefrectionProveの設定がBakeの場合はStaticのものしか影響されない

IBLのみ
RefrectionProve使用時
Bloom.csとScreenSpaceAmbientOcclusion.csをMain Cameraに
   これは…陰と陽を強くするものだろうか…?
   まだよく分かってない


テラシュールブログさん:http://tsubakit1.hateblo.jp/entry/2015/05/15/003739
kode80SSRのをやってみた
Assets内の「SSR.cs」「SSR.cs.meta」「Resourcesファイル」を入れれば、できるみたいだったが、なぜか「SSR.cs.meta」を入れられなかったので 元のプロジェクトを開いて作ってみた。
床に赤球が反射している。床のマテリアルのSmoothnessの数値を変更すれば、反射度を変更できる。