20200713のUnityに関する記事は9件です。

Linear01Depth()で線形にした深度値を元の値に戻したい

UnityでDepthTextureを取得する際に、線形にして見やすくするアプローチがあります。
その際使用する関数Linear01Depth()ですが、
それで求めた線形の深度値を元の深度値に戻したい時に使うべき関数が見当たらなかったので自作した時のメモを残しておきます。

そもそもLinear01Depth()は内部で何をやっているかというと、BuiltInShaderの内部のUnityCG.cgincを覗くとこんなコードが、

UnityCG.cginc
// Z buffer to linear 0..1 depth
inline float Linear01Depth( float z )
{
    return 1.0 / (_ZBufferParams.x * z + _ZBufferParams.y);
}

という事で、この計算を元にzを求めましょう。

depth01 = 1.0 / (_ZBufferParams.x * z + _ZBufferParams.y);
↓除算部分をひっくり返す
(_ZBufferParams.x * z + _ZBufferParams.y) * depth01 = 1.0;
↓()を外す
_ZBufferParams.x * z * depth01 + _ZBufferParams.y * depth01 = 1.0;
↓左辺の右半分を右辺に
_ZBufferParams.x * z * depth01 = 1.0 - _ZBufferParams.y * depth01;
↓zだけに残して完成
z = (1.0 - _ZBufferParams.y * depth01) / (
ZBufferParams.x * depth01);

わざわざ中学生レベルの式を書いてしまった。。
という事で、下記の関数で元の深度値に戻すことができます。

float Linear01DepthToSrcDepth( float depth01 )
{
    return (1.0 - _ZBufferParams.y * depth01) / (_ZBufferParams.x * depth01);
}

ちゃんと探せていないだけですでにある予感はしていますが、一応書き残しておきます。
もしご存じの方いれば情報いただけますと幸いです;

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

初めてclusterでゲームワールドを制作してみたときのメモ

記事を書いた目的

  • clusterでワールド作成自体が初めてだったので、忘れないように要点だけまとめておきたかったから。
  • 続編に向けて、大変だったところを覚えておきたかったから。
  • 作成時に使用したゲーム機能だけをリストアップしたかったから。
    • 実際にはもっと沢山のゲーム機能がありますが、ほとんど使いきれていません。

制作したワールドについて

  • clusterでプレイできるVRリズムゲームです。
  • キセルを両手に持ってノーツを叩いて消していきます。(当てるだけで消えます)
  • 沢山ノーツを消すと高ランクをゲットできます。
  • WindowsPCでHTC VIVEで動作確認済み(制作したマシンがこれというだけですが。)
    • スマホやデスクトップモードではおそらくキセルが片手でしか持てないので高ランクは難しいですが、楽曲の視聴はできると思います。
  • プレイ例

制作のきっかけ

  • 2020年6月からclusterでゲームを作るための新機能が実装されました。
  • ちょうど同じタイミングで、2020年6月5日に、いつも密かに応援させていただいている疾風P氏が新曲「初音吹雪に御用心!」を公開されました。
  • 「公開記念に何か作りたい!」と思い、Beat〇aberのようなVR音楽ゲームがclusterでも出来ないだろうかと考えたのがきっかけです。
  • しかもゲームワールドコンテストというのがclusterで開催されていたので合わせて応募してみようと思いました。
    • でもコンテストに気づいたのが6月末だったので、正直間に合わないだろうと思って、とりあえず作るだけ作るつもりでした。
  • 色々四苦八苦しましたが、何とか公開しました。

楽曲について

使用したゲーム機能

  • 使用した場所ごとに紹介
    • STARTボタン
      • image.png
      • フォーカスを合わせてクリックする(トリガーを引く)と楽曲が開始される
      • ゲーム機能
        • Interact Item Trigger
          • image.png
          • トリガーが発動するとKey「startbutton」が送信されるように設定
          • ゲームオブジェクト「TimelineManager」にアタッチされているSet Animator Value Gimmickが上記のKeyを受け取り、タイムラインを開始させて楽曲(ノーツや演出も含めて)を再生する。
    • STOPボタン
      • image.png
      • フォーカスを合わせてクリックする(トリガーを引く)と楽曲が停止し、初期状態へ戻る
      • ゲーム機能
        • Interact Item Trigger
          • image.png
          • トリガーが発動するとKey「stopbutton」が送信されるように設定
          • ゲームオブジェクト「TimelineManager」にアタッチされているSet Animator Value Gimmickが上記のKeyを受け取り、タイムラインを開始させて楽曲(ノーツや演出も含めて)を停止する。
          • 楽曲再生用のタイムラインとは別のタイムラインを読んで完全停止させている。
    • TimelineManager
      • image.png
      • 上記のSTARTとSTOPボタンに対応して、タイムラインを呼び出すゲームオブジェクト
      • 管理用オブジェクトなので実体はない
      • ゲーム機能
        • Set Animator Value Gimmick
          • STARTとSTOPのトリガーに対応して、「active」と「deactive」のAnimator ParameterをAnimatorへ送信
    • キセル(左右)
      • image.png
      • 左右の手でグリップを握ることで持つことができる
      • キセルの先端をノーツに当てることでノーツを消すことができる
      • ゲーム機能
        • Movable Item および Grabbable Item
          • 握って持てる機能の実装
        • On Collide Item Trigger
          • image.png
          • 衝突相手(ノーツ)へ「hitL (hitR)」を送信
          • 全体へ「distort」を送信
        • On Grab Item Trigger
          • image.png
          • キセルを握ったときのトリガーとして「grabL (grabR)」を送信
        • Play Audio Source Gimmick
          • image.png
          • 上記の「grabL (grabR)」を受け取り、握った時のサウンドを鳴らす
    • ノーツ(赤と青の三つ巴マーク)
      • image.png
      • キセルに接触したら蝶のパーティクルと音を発生して消える
      • ゲーム機能
        • Set Animator Value Gimmick
          • image.png
          • 蝶のパーティクルを発生
        • Play Audio Source Gimmick
          • image.png
          • 消えるときのタンバリンの音を再生
    • 地面から上がるパーティクル
      • image.png
      • ノーツが消えたときに、消えたノーツに応じて、赤と青のどちらかの色に変化する
      • ゲーム機能
        • Set Animator Value Gimmick
          • image.png
          • 消えたノーツからのKey「hitL(hitR)」を受け取ってアニメーションでパーティクルの色を変えている
          • このコンポーネントはノーツごとに複数アタッチしている。(左右8ノーツなので16つ分)
          • 各ノーツがキセルから「hitL(hitR)」を受け取って、そのノーツからこのパーティクルが「hitL(hitR)」を受け取るという横流しのような感じのことをやっているが、果たしてこの使い方が合っているのかわからない。。。(別の方法があるかも)
    • 地面の歪み
      • image.png
      • キセルが何かにヒットした場合にゆがむ
      • ゲーム機能
        • Set Animator Value Gimmick
          • image.png
          • キセルから送信された「distort」によってアニメーション再生
          • Globalを使っているので何にヒットしてもゆがむことになります。
    • ランクゲージ(左右)
      • image.png
      • ノーツを消したときにゲージが少しずつ溜まっていく
      • ゲーム機能
        • Set Animator Value Gimmick
          • image.png
          • 消えたノーツからのKey「hitL(hitR)」を受け取って、ゲージを少しずつ加算「add」していく
          • 地面から出るパーティクル同様、ノーツ分アタッチしている

clusterのゲーム機能以外の部分で補足

  • ベースとなったワールドについて
  • ゲーム開始時の緞帳(どんちょう)について
    • 画面全体を覆いたかったので、別のカメラを使用しています
      • image.png
      • Clear Flagsを「Depth only」にします
      • Field of Viewはすごく小さく「0.1」にしていますが、こうしなくてもいいかもしれません。
      • Depthを「0」以上にすることで前面に貼りついて見えます。
      • Target Displayは「Display 1」にします。(おそらくMain Cameraと同じにするということ?)
    • 別のカメラへ出力するCanvasを用意します
      • image.png
      • Render Modeを「Screen Space - Camera」にします
      • Render Cameraを上記で作成したカメラに設定します
      • Plane Distanceは「900」と非常に遠くしていますが、別にこの数値でなくてもいいかもしれません。
    • Canvas内の画像について
      • Imageコンポーネントで表示しています
        • image.png
        • Sprite Rendererを使いたかったのですが、実際使うと何か2重に重なって見えるような感じになってしまったのでやめました。
  • タイムラインのノーツについて
    • 左8ノーツ、右8ノーツを用意して、出したいときにActivation ClipをActiveにしています。
    • 各ノーツは更に4つまでゲームオブジェクト複製して用意しているので、同時に4つまで出せます。(逆に4つ以上出せない)
    • タイムライン画像
      • image.png

大変だったところ

  • ノーツを楽曲に合わせてタイミングよくTimelineに配置していくところ
    • 1つ1つほぼ手作業でした(400個ほどあった)
  • そもそも和風の雰囲気をどうやって作ればいいか。
    • これを考えるところが一番時間かかったかも。

焦ったところ

  • clusterのアップロードはとてもシンプルでやりやすかったですが、エラーで止まったときは完全に詰んでしまいました。(再アップロードしたらできたので助かりましたが。)

できなかったこと

  • できるかもしれないけど自分ができずに諦めたところを紹介します。
    • キセルを振る方向を判定する
      • Beat〇aberのような、いわゆる「切る方向」を決めることができませんでした
      • しかし、これはノーツに、方向に応じて成功と失敗のコライダーを付けてあげればできそうな気もする。
    • 歌詞の焦点が合いずらい
      • Cameraの設定を色々いじってみましたがあまり改善されなかったので、結局今の状態に落ち着きました。
      • VRで左右のカメラがどのように視差を設定しているのかよくわかっていない。
    • 同じ位置のノーツは連続4つまで
      • 連続して同じ位置へ短い間隔でノーツを出したい場合は連続4つまでにしました。
      • これは増やそうと思えばもっと増やせたのですが、作りが非常に大変になるため4つまでの制限にしました。
      • また、プレハブをタイムラインから生成して呼び出すことも試したのですが、なぜかギミックがうまく動かなかったので諦めました。(これができれば一番楽だったのだが。)

次回やりたいこと

  • キセルの振る方向を判定する
  • 複数人でプレイできるようなゲーム性
  • 振って当てる形式もいいが、歩いて踏む形式もやってみたい。
  • 軽量化をほとんど考えていなかったので次回は少し考えたい。(110MBもあった)
  • スマホで動作確認をしている暇がなかったので次回はやりたい。
  • ノーツの曲に合わせた微調整が大変すぎて丸2日くらいかかったので、もっと楽な方法を考えたい。。。

まとめ

  • ほとんど「Set Animator Value Gimmick」を使っている感じでした。
  • あとは、Unityのアニメーションで力業で動かしていった感じです。

お借りした素材

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

面の頂点 右回り Springhead OpenGL WebGL 左回り FBX DirectX の整理 Blender Unity UnrealEngine

ときどき忘れるのでメモ

面の頂点の指定順序の話

右手系 左手系 という呼び方は違和感があるので
右回り 左回り と呼ぶことにします
(右手系 左手系 はどちらかというと 3D の軸の向きに使う呼称だと考えます)
(軸は こちら が参考になります)
※軸(座標系 右手系 左手系)が違っていてさらに右回り左回りも違っていると結果的に元に戻る(正常に観える)ので間違いに気付かないケースあり
※回転行列の回転方向はまた違うので注意

右回り

  • Springhead
  • OpenGL
  • WebGL

左回り

  • FBX
  • DirectX

Matrixについて

右から掛けるか左から掛けるかと右回りか左回りかは無関係
どちからというと右から掛けるか左から掛けるかは vector が縦か横かと関連
Matrix のメモリ上の格納順も「列→行」「行→列」の違いがある(これも上のグループ分けとは独立)
ただし格納順の違いは vector に Matrix を掛ける過程で(右からか左からか)吸収されるというか「メモリ上の格納順は同じ」だったりする

UVについて

原点が左下か左上か
これも上の右回り左回りとは別に存在する

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

面の頂点 右回り 左回り の整理 Springhead OpenGL WebGL FBX DirectX Blender Unity UnrealEngine

ときどき忘れるのでメモ

面の頂点の指定順序の話

※結論 CW CCW で切り替えられるのでそちらを意識した方が良い

右手系 左手系 という呼び方は違和感があるので
右回り 左回り と呼ぶことにします
(右手系 左手系 はどちらかというと 3D の軸の向きに使う呼称だと考えます)
(軸は こちら が参考になります)
※軸(座標系 右手系 左手系)が違っていてさらに右回り左回りも違っていると結果的に元に戻る(正常に観える)ので間違いに気付かないケースあり
※回転行列の回転方向はまた違うので注意

右回り

  • Springhead

左回り

  • FBX

Matrixについて

右から掛けるか左から掛けるかと右回りか左回りかは無関係
どちからというと右から掛けるか左から掛けるかは vector が縦か横かと関連
Matrix のメモリ上の格納順も「列→行」「行→列」の違いがある(これも上のグループ分けとは独立)
ただし格納順の違いは vector に Matrix を掛ける過程で(右からか左からか)吸収されるというか「メモリ上の格納順は同じ」だったりする

UVについて

原点が左下か左上か
これも上の右回り左回りとは別に存在する

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

DOTween完全に理解するその4 DOPath編

前回:DOTween完全に理解するその3 UIアニメーション編

今回解説するアニメーション

今回はTweenの中でも特殊なアニメーション
DOPathについて解説します。

DOPathはオプションで様々な挙動をさせることができるので
その分覚えることはたくさんありますが、上手く使えばとても強力なアニメーションです。

開発環境
Unity:2019.4.0f1
DOTween:v1.2.335

DOPath/DOLocalPath

movePath1.gifmovePath2.gif

var doPath = transform.DOPath(path, duration);
var doLocalPath = transform.DOLocalPath(path, duration);

pathはVector3[]です。
目的座標(WayPoint)を指定して、そこに向けて移動するアニメーションを作成できます。
上のgifは全て同じ座標をpathとして指定しています。
SetOptionを使用することで終点から始点を繋げるかどうかを指定できます。(後述)
初期位置は自動でWayPointに含まれる為、追加したのは右上・右下・左下の3箇所です。

SetOption

doPath.SetOptin(closePath, lockPosition, lockRotation)

closePath=trueに設定すると「最後のWayPoint→最初のWayPoint」が繋がるようになります
またlockPositionやlockRotateionはそのままの意味で、
軸の移動や回転をAxisConstraintを使用して軸ごとに制限することができます。
AxisConstraintは「|」で繋ぐことで複数の軸に対して制限をかけることができます。

lockPosition = AxisConstraint.X;                    //座標のX軸を固定する
lockRotation = AxisConstraint.Z | AxisConstraint.Y; //回転のZ,Y軸を固定する

※lockPositionとlockRotationは今回使用していません。

PathType

DOPath生成時にどういったPathの使い方をするかを指定することができます

var doPath = transform.DOPath(path, duration, pathType);
PatyType 説明
Linear シンプルにWayPoint同士を直線で繋ぐ
CatmullRom WayPoint同士を曲線で繋ぐ
CubicBezier ベジェ曲線を生成する

CatmullRom

catmullRom.gif
上のgifはDOLocalPathdで同じPathを指定していますが、挙動が違うことが確認できます。

CubicBezier

bezier1.gif
通常のpath指定とは違い「WayPoint, ControlPointA, ControlPointB」と設定する必要があります。
dotween_path_cubicBezier.png
これは公式ドキュメントにある画像です。
ControlPointAはTransformの現在値が対象になります。

SetLookAt

他にDOPath特有のオプションとしてSetLookAt()があります。
このオプションが非常にクセが強く他の設定に影響を受ける為
しっかりと理解して使用する必要があります。
公式ドキュメントにも注意文が載っていますが、
SetLookAtはDOPath生成直後か、SetOptionの直後に設定しなければなりません。
間に他の設定が入ると挙動が保証されなくなるようです(未検証)

doPath.SetLookAt(Vector3, forwardDirection, up);   //指定した座標を見る
doPath.SetLookAt(Transform, forwardDirection, up); //指定したTransformの座標を見る
doPath.SetLookAt(float, forwardDirection, up);     //進行方向を見る

forwardDirectionとupは省略可能です。
forwardDirectionは正面方向を、upは頭上方向を設定可能です。
それぞれターゲットへの向きを計算する際に参照されます。

SetLookAt(Vector3/Transform)

この二つは単純に「設定されたターゲットの方向を向く」設定を行います。
lookAt2.gif

SetLookAt(float)

こちらがかなり曲者で「進行方向を見る」という表現が正しいのかはわかりませんが、
そんな感じなのです...
この挙動に関してはgifをみてもらうのが良いかと思います。

0を設定すると次のWaypointに向かう時にその方向に向きます。
1に近い値に設定すると進行方向とは逆の向きを向くようになりますが、
1にすると向きが変更されなくなってしまいます。
lookAt1.gif

PathMode

Tween作成時に指定できるPlayModeは上記のLookAtの挙動に影響を与えます。

var doPath = transform.DOPath(path, duration, pathType, pathMode);

PathModeの設定が個人的には非常に扱いが難しいと思っています。
DOPathの用途に合わせて正しいPathModeを設定する必要があります。

まずそれぞれの動きを見てみましょう

Full3D

pathmode1.gif
XYZ全ての座標移動をするPathを作成いてみました。
Full3Dは普通に3Dで動かす分にはほとんど問題ありません。
ただ2D的に動かす場合は他の2つのどちらかを使うことをお勧めします。
理由としてはデフォルトが正面方向がZ軸の正方向であることもありますが、
SetLookAt(0)を設定していた場合、思った通りに回転を行ってくれない場合があります。

TopDown2D/Sidescroller2D

pathmode2.gif
赤,緑,青のBOXをX,Y,Z軸に見立てて、PathMode以外同じ設定で動かしています。
3D(Full3D)は前述の通りZ軸がforwardDirectionとなっています。
注目して欲しいのは右から左へ移動している時のTopDownとSide(Sidescroller2D)です。
TopDown2DはZ軸のみの回転を行いますが、
Sidescroller2DはZ軸とY軸で回転を行い「Y軸が下を向かないような挙動」を行います

pathmode3.gif
単純に左右に移動する場合にその差が顕著にでます。

PathMode名のそのままの意味ですが、
TopDown2Dはトップダウン視点の2Dゲーム向けのアニメーションで、
Sidescroller2Dは横スクロールの2Dゲーム向けのアニメーションです。

PathMode 説明 デフォルトforward デフォルトup デフォルトで回転する軸
Ignore LookAtを設定していても何もしない なし なし なし
Full3D 向きを決める際にシンプルな回転を行う Z方向 Y方向 X,Y,Z
TopDown2D トップダウン式の回転を行う X方向 Y方向 Z
Sidescroller2D サイドスクロール式の回転を行う X方向 Y方向 Y,Z

まとめ

今回はDOPathのみを取り上げて解説を行いました。
特にSetLookAt(float)とPathMode周りはドキュメントを読んでも理解できず、
しかも検証自体サイズ1のBoxで見ていたせいで回転の性質に気づくのに時間がかかりました。

DOPathは特にPathTypeをCubicBezierにすると色々面白い挙動ができます。
シーシャルゲームでよくあるドロップがUIにカーブしながら飛んでいく動きなんかも簡単に作れるかと思います。

Easeを使って緩急をつけるのもいいですが、曲線も簡単にリッチに見えるのでいいですね。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unity上でPlayボタンを押すとオブジェクトのAlbedoが変わるスクリプト

やりたいこと

Fusion360で作成したオブジェクトと、Substance Painterで3DペイントしたテクスチャをUnityに取り込んで、Playボタンを押すとテクスチャが適用されるスクリプトを作成します。

流れ

  1. Fusion360でオブジェクトを作成して、FBXでエクスポートする
  2. RizomUVでUV展開する
  3. Substance Painterで3Dペイントして、Unity用にエクスポートする
  4. Unityでオブジェクトとテクスチャをインポートする
  5. Albedoを適用するスクリプトを作成する ← 今回の投稿の対象
  6. スクリプトとオブジェクトを紐づける ← 今回の投稿の対象
  7. スクリプトとテクスチャ画像を紐づける ← 今回の投稿の対象
  8. 実行ボタンを押すと、オブジェクトのAlbedoが変更される ← 今回の投稿の対象
  9. 実行ボタンを押すと、Albedoが変わる ← 今回の投稿の対象

詳細

3Dモデルやテクスチャの取込方法については、以下の投稿を参考にしてください。
Substance PainterでエクスポートしたテクスチャをUnityに取り込む

5. Albedoを適用するスクリプトを作成する

Hierarchyウィンドウの取り込んだオブジェクトをクリックし、InspectorウィンドウのAdd Component -> New Scriptを選択します。名称をtexture_changeに変更し、Create & addをクリックします。スクリプトが生成されました。
image.png

Assets内に生成されたスクリプトtexture_changeをダブルクリックし、Visual Studioを起動、以下のソースに変更し、保存します。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class texture_change : MonoBehaviour
{
    // Start is called before the first frame update
    // スクリプトから画像を扱う場合に Texture または Spriteという形式に変換する必要がある
    // クラス変数として Texture型のクラス変数 wood_dark_AlbedoTransparencyを定義する
    public Texture wood_dark_AlbedoTransparency;

    void Start()
    {
        GetComponent<Renderer>().material.mainTexture = wood_dark_AlbedoTransparency;
    }

    // Update is called once per frame
    void Update()
    {

    }
}

6. スクリプトとオブジェクトを紐づける

5で作成したスクリプトを3Dオブジェクトに関連付け(アタッチ)します。スクリプトを選択し、3Dオブジェクト(この例ではBody1)にドラッグ&ドロップします。
image.png

7. スクリプトとテクスチャ画像を紐づける

Unityでは変数のアクセス修飾子をpublicにすると、インスペクター上で変数の紐づけを行うことができます。
Hierarchyウィンドウのスクリプトを紐づけた3Dオブジェクト(この例ではBody1)をクリックします。
Inspetorウィンドウを見ると、スクリプトに記載した変数が表示されています。変数の右の丸をクリックし、表示したいAlbedo画像を選択します。
image.png
image.png

8. 実行ボタンを押すと、オブジェクトのAlbedoが変更される

image.png

image.png

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

nrealアプリを作りたい人がはじめに読む記事(随時更新中)

本記事について

本記事では、nrealアプリ開発に関して、機器セットアップ~アプリ開発、参考情報などを随時更新しています。個人的な備忘録のような記事になるか思いますが、これからnrealアプリの開発をはじめる方々の参考になれば幸いです。

開発環境

nrealの開発環境は、各ツールの最新版を組み合わせてもうまく動作しないことがある。
nrealがサポート、動作確認したバージョンの組み合わせで使用する方が吉。
以下は、デモアプリのビルド&実行まで動作できた組み合わせ。

# Unityバージョン NRSDKバージョン
1 2018.4.24f1 1.2.1

公式デモの動かし方

  • 基本的には公式クイックスタートに従って進めれば大丈夫。以下、補足。
    • Player Settingsの設定をする前に、Build Settingsでプラットフォーム Androidを選択し、Switch Platformをしておくこと。
    • 2020/7/13時点では、Unity 2018.4.x、NRSDK1.2.1を使用する前提の手順になっている。異なるバージョンを使用する場合は適宜読み替えること。動作しなかったらツールのバージョンを疑ってみるのが良い。

課題

  • NRSDK 1.3.1 でビルドしたアプリはエラー「Glasses connect error.Please connect the device correctly」が表示されて起動しない。

参考情報

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unity 学習三日目

セッション3 基本のミニゲームを作ろう!

昨日、ダウンロードしたデータをもとに使って早速チャレンジ

オブジェクト操作

①移動
②回転
③縮尺
変更したオブジェクトを元に戻すときは、inspect_transfome 歯車アイコン_Reset (オブジェクトが形を記憶しているね)

マテリアルとテクスチャー

Del:削除
Ctrl+z:元に戻す
Ctrl+y:やり直し
ショートカットキーは大体同じだよね・・・

テクスチャーはProject_+_texture
マテリアルは画像から作成…ほかの3Dソフトと同様だよね

スクリーンショット 2020-07-13 00.10.02.png

プログラミングに挑戦1

本格的になってきました
プログラムとは手順の指示書
C#がUnityで使われているプログラム言語
プログラミングをするのにVisual Studio が必要
インストール時にセットとしてインストールされているはずらしいが、入っていない…最新版ではインストールされないのか???

インストールとソフトの関連付けと動作確認までで30分使ってしまったのこで今日はここまで…。
プログラミングまで学びたかった(/ω\)

追記

最後のプログラム用アプリケーションがインストールされていなかった問題がちょっと不安
このチュートリアル動画が2018版を想定して作成されているため2020年度版では改良され対応した機能がついていたりするのでは?
とか思ってしまう
とりあえず動作確認と関連付けはできたので、明日以降プログラムを学習していきたい。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む

Unity 学習 3日目

セッション3 基本のミニゲームを作ろう!

昨日、ダウンロードしたデータをもとに使って早速チャレンジ

オブジェクト操作

①移動
②回転
③縮尺
変更したオブジェクトを元に戻すときは、inspect_transfome 歯車アイコン_Reset (オブジェクトが形を記憶しているね)

マテリアルとテクスチャー

Del:削除
Ctrl+z:元に戻す
Ctrl+y:やり直し
ショートカットキーは大体同じだよね・・・

テクスチャーはProject_+_texture
マテリアルは画像から作成…ほかの3Dソフトと同様だよね

スクリーンショット 2020-07-13 00.10.02.png

プログラミングに挑戦1

本格的になってきました
プログラムとは手順の指示書
C#がUnityで使われているプログラム言語
プログラミングをするのにVisual Studio が必要
インストール時にセットとしてインストールされているはずらしいが、入っていない…最新版ではインストールされないのか???

インストールとソフトの関連付けと動作確認までで30分使ってしまったのこで今日はここまで…。
プログラミングまで学びたかった(/ω\)

追記

最後のプログラム用アプリケーションがインストールされていなかった問題がちょっと不安
このチュートリアル動画が2018版を想定して作成されているため2020年度版では改良され対応した機能がついていたりするのでは?
とか思ってしまう
とりあえず動作確認と関連付けはできたので、明日以降プログラムを学習していきたい。

  • このエントリーをはてなブックマークに追加
  • Qiitaで続きを読む