Pc-Trace

<< 2024年11月 >>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30






Pc-Trace
PC-Trace

< next Unityの記事
01/13(水)
画像ファイルがあります 添付ファイルはありません
12/15(火)
画像ファイルがあります 添付ファイルがあります
11/15(日)
画像ファイルはありません 添付ファイルはありません
>>このカテゴリーの記事一覧

「iTween」使ってみた その3

kotarou 〜3D〜様の作品から、 ”金輪継ぎ”モデルを「iTween」で動かした場合。
(Sceneと、Gameビューを同時に録画しているため、再生ボタンは動画の最下段)



※ 添付ファイルは”金輪継ぎ”MP4動画
添付ファイル 添付ファイル


「iTween」使ってみた その2

もはや、kotarou 〜3D〜様の作品無しには成立しないブログとなってしまった。
(「iTween」の練習に「足固め」のモデルを使わせて頂きました。)

SketchUpで同じ振る舞いをさせるには「Physics」が必要だったが、「iTween」では動作と、動作に必要な時間設定だけで実現できてしまう。
理解が深まるほどに活用域も広がりそうである。

※後に、kotarou 〜3D〜様様から動画の手順でも可能ですが、上方へ抜く「車知栓」が先であることを教わりました。
建築を知らない者がやると”何でも有り!”な動画に・・。
(知らない事や、疑問に思った事は専門家に素直に聞くべきですね。)


添付ファイル 添付ファイル


「iTween」の使い方 YouTube

YouTube動画配信サイトで紹介されている「iTween」の詳しい使い方。




「iTween」を使ってみた

「Unity」の進展がないまま歳が開けてしまった。

単純な目的でもいざ実行しようとなると、個人的には意外とハードルが高い。
Freeの「Assets」や、標準で添付されている「Assets」の中から使えそうなものを拾いだして活用した方が早そうなのでいくつかピックアップし、試してみた。

今年もkotarou 〜3D〜様の「船屋」モデルから。
風になびく樹木や、おだやかに波打つ海面の表現までは実現出来たが、空を飛ぶ飛行船や、飛行機などが止まったままでは周囲との調和が取れておらず、前から目をつけていたフリーの「iTween」を使って”飛行機”と”飛行船”も動かしてみる事にした。

iTweenの適用前に簡単なパスを作成し、Cubeを動かしてリハーサル。


座標、回転軸の設定など、試行錯誤の末何とか動かすことが出来た。


正しい使い方なのかは疑わしいが、設定については後日。


「Unity」 習うより慣れろ?

SketchUpと勝手の違う「Unity」に悪戦苦闘。

物一つまともに動かせない現状に、公式サイトのマニュアルを丁寧に読みこんで体裁を取らず慣れる事にした。
マニュアルに習って、実際にスクリプトを書いて慣れる両取り作戦。

これほど簡単なスクリプトでもエラー続出でヘトヘトになってしまう。

■先ずはボタンを配置し動かすことから。(移動のみのスクリプト添付)


■移動をボタン操作で行い、理解するための C# 練習スクリプト。添付ファイルの練習スクリプトと違い、回転を含む。

● Unity 5.2.3f1 (32-bit)

using UnityEngine;
using System.Collections;

// Button test pc-trace 2015/12/23

public class GUIBtn01 : MonoBehaviour {

public float DownLimitt = 0f;
public float Mspeed = 0.01f;
private float Movspeed = 0.02f;


void Update () {

Vector3 v = this.transform.position;
//------------回転-----------
if (Input.GetKey(KeyCode.UpArrow)){
this.transform.Rotate (1,0, 0);
}

if (Input.GetKey(KeyCode.DownArrow)){
this.transform.Rotate (-1,0, 0);
}

if (Input.GetKey(KeyCode.LeftArrow)){
this.transform.Rotate (0,-1, 0);
}

if (Input.GetKey(KeyCode.RightArrow)){
this.transform.Rotate (0,1, 0);
}
// 回転リセット
if (Input.GetKey(KeyCode.Keypad5)){
//全角度をリセット
transform.rotation = Quaternion.Euler(0, 0, 0) ;
}

// 上昇、下降 ---------------------
if (Input.GetKey(KeyCode.PageUp) ){
v.y += Mspeed;
}
if (Input.GetKey(KeyCode.PageDown) && transform.position.y >DownLimitt){
v.y -= Mspeed ;
}

this.transform.position = v;
}

// --------ボタンを使った前後左右の移動-------------

void OnGUI () {
// Make a background box
GUI.Box(new Rect(10,10,100,210), "移動");



// Make the first button. If it is pressed, Application.Loadlevel (1) will be executed

if(GUI.RepeatButton(new Rect(20,40,80,20), "← 左")) {
transform.position -= new Vector3(Movspeed, 0f, 0f);
}

if(GUI.RepeatButton(new Rect(20,70,80,20), "→ 右")) {
transform.position += new Vector3(Movspeed, 0f, 0f);
}


if(GUI.RepeatButton(new Rect(20,100,80,20), "↑ 前進")) {
transform.position += new Vector3(0f, 0f,Movspeed);
}

if(GUI.RepeatButton(new Rect(20,130,80,20), "↓ 後退")) {
transform.position -= new Vector3(0f, 0f,Movspeed);
}
//-----------回転リセット--------------------------

if(GUI.RepeatButton(new Rect(20,160,80,20), "回転リセット")) {
transform.rotation = Quaternion.Euler(0, 0, 0) ;
}
//  終了
if(GUI.Button(new Rect(20,190,80,20), "END")) {
Application.Quit();
}

}
}
//----------------end------------------

■とにかくカメラでモデルを見渡したいスクリプト。
もう、ソースの汚さが満開である。
Unity 5.2.3f1 (32-bit) キーボードとマウス兼用。
※スクリプト使用による一切のサポートと、保証はありません。

using UnityEngine;
using System.Collections;

public class MoveRotate2 : MonoBehaviour
{


public float cameraSensitivity = 90;
public float climbSpeed = 4;
public float normalMoveSpeed = 10;
public float slowMoveFactor = 0.25f;
public float fastMoveFactor = 3;

private float rotationX = 0.0f;
private float rotationY = 0.0f;

void Start ()
{
// Cursor.lockState = CursorLockMode.Confined;
Cursor.lockState = CursorLockMode.Confined;
Cursor.visible = false; //OSカーソル非表示
}

void Update ()
{
rotationX += Input.GetAxis("Mouse X") * cameraSensitivity * Time.deltaTime;
rotationY += Input.GetAxis("Mouse Y") * cameraSensitivity * Time.deltaTime;
rotationX += Input.GetAxis ("Horizontal") * cameraSensitivity * Time.deltaTime;
rotationY += Input.GetAxis ("Vertical") * cameraSensitivity * Time.deltaTime;

rotationY = Mathf.Clamp (rotationY, -90, 90);

transform.localRotation = Quaternion.AngleAxis(rotationX, Vector3.up);
transform.localRotation *= Quaternion.AngleAxis(rotationY, Vector3.left);

if (Input.GetKey (KeyCode.LeftShift) || Input.GetKey (KeyCode.RightShift))
{
//transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
// transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;

if (Input.GetKey (KeyCode.Keypad2)) {
transform.position -= transform.forward * (normalMoveSpeed * fastMoveFactor) * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad8)) {
transform.position += transform.forward * (normalMoveSpeed * fastMoveFactor) * Time.deltaTime;
}


if (Input.GetKey (KeyCode.Keypad4)) {
transform.position -= transform.right * (normalMoveSpeed * fastMoveFactor) * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad6)) {
transform.position += transform.right * (normalMoveSpeed * fastMoveFactor) * Time.deltaTime;
}


}
else if (Input.GetKey (KeyCode.LeftControl) || Input.GetKey (KeyCode.RightControl))
{
//transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Vertical") * Time.deltaTime;
//transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * Input.GetAxis("Horizontal") * Time.deltaTime;

if (Input.GetKey (KeyCode.Keypad2)) {
transform.position -= transform.forward * (normalMoveSpeed * slowMoveFactor) * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad8)) {
transform.position += transform.forward * (normalMoveSpeed * slowMoveFactor) * Time.deltaTime;
}


if (Input.GetKey (KeyCode.Keypad4)) {
transform.position -= transform.right * (normalMoveSpeed * slowMoveFactor) * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad6)) {
transform.position += transform.right * (normalMoveSpeed * slowMoveFactor) * Time.deltaTime;
}

}
else
{
// transform.position += transform.forward * normalMoveSpeed * Input.GetAxis("Vertical") * Time.deltaTime;
// transform.position += transform.right * normalMoveSpeed * Input.GetAxis("Horizontal") * Time.deltaTime;

if (Input.GetKey (KeyCode.Keypad2)) {
transform.position -= transform.forward * normalMoveSpeed * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad8)) {
transform.position += transform.forward * normalMoveSpeed * Time.deltaTime;
}

if (Input.GetKey (KeyCode.Keypad4)) {
transform.position -= transform.right * normalMoveSpeed * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad6)) {
transform.position += transform.right * normalMoveSpeed * Time.deltaTime;
}

}

//--------------------------------------------------------------
if (Input.GetMouseButton(0)) {
transform.position += transform.forward * normalMoveSpeed * Time.deltaTime;
}

if (Input.GetMouseButton(1)) {
transform.position -= transform.forward * normalMoveSpeed * Time.deltaTime;
}

if (Input.GetKey (KeyCode.Keypad8)) {
transform.position += transform.forward * normalMoveSpeed * Time.deltaTime;
}

if (Input.GetKey (KeyCode.Keypad2)) {
transform.position -= transform.forward * normalMoveSpeed * Time.deltaTime;
}


if (Input.GetKey (KeyCode.Keypad4)) {
transform.position -= transform.right * normalMoveSpeed * Time.deltaTime;
}
if (Input.GetKey (KeyCode.Keypad6)) {
transform.position += transform.right * normalMoveSpeed * Time.deltaTime;
}

//--------------------------------------------------------------
if (Input.GetKey (KeyCode.PageUp)) {transform.position += transform.up * climbSpeed * Time.deltaTime;}
if (Input.GetKey (KeyCode.PageDown)) {transform.position -= transform.up * climbSpeed * Time.deltaTime;}
if (Input.GetKey(KeyCode.Escape)) {
Application.Quit();
}


}
}
添付ファイル 添付ファイル


「Unity」 スクリプトに少し挑戦

今度も、kotarou 〜3D〜様の「船屋」モデルお借りし、マウスで移動できるよう「C#」の練習がてらにスクリプトを組んでみた(当然、中身は初心者レベルなので、迷惑を考え非公開)

操作はメチャクチャだが、モデルを動かせると楽しさも倍増する。




「Unity」 練習中

いまだに投げ出さず「Unity」と格闘中。
それほど奥が深く、魅力が多い。

まだ、ほぼ全てが分かってないが、少しづつ前進できる事は分かった。



■水のマテリアルをカップに貼り付け中

添付ファイル 添付ファイル


「Unity」 フリー素材から、猫を拝借

フリーのアセット(猫)にkotarou 〜3D〜様の「船屋」モデルの屋上のテーブルでくつろいでもらった。(勝手にシチュエーション)

しぐさがかわいい。



「Unity」 Treeの設定、備忘録

備忘録その2
しつこくkotarou 〜3D〜様の「船屋」を使わせて頂き船屋の背景に風になびく樹木の設定。
(斬新で、明るく開放的なモデルが個人的にはかなりのお気にい入り。)



初心者でも、フリーのソフトだけでここまで出来る時代になった。



※添付ファイルは"mp4"動画
添付ファイル 添付ファイル


「Unity」 Waterの設定、備忘録

Waterの設定、個人的な備忘録。


※添付ファイルは、作業実寸大の"mp4"動画
添付ファイル 添付ファイル


「Unity」練習1

「Unity」の練習1

毎回利用させて頂いているkotarou 〜3D〜様の「船屋」モデルより。

至る所にで目にする、動く海面を自分でも作りたくて、「Unity」による初の練習作品。




< next