Unity3d。 Unity 3D学生からの教訓(B09-B12)

こんにちは



次のリンクで以前のレッスンを見つけることができます。

レッスンB01-B03

レッスンB04-B08









基本レッスン09-コンテンツの追加






このレッスンでは、マテリアルを使用してオブジェクトにテクスチャを追加する方法について説明します。



Unity3dでゲームオブジェクトを使用する場合、マテリアルも使用する必要があります。 たとえば、テクスチャを持つマテリアルをキューブに追加します。

B0900



テクスチャをダウンロードします(* .png、256px x 256px、98.4KB)。



最初に、テクスチャをAssetsフォルダ(プロジェクトのルートフォルダ)に保存します。



マテリアルディレクトリを追加し(プロジェクトで「階層的な順序」を維持することが常に便利であることを覚えています)、ファイルバルブテクスチャに名前を付けます(拡張子* .png(元のレッスン* .psd)、注を参照)。

B0901



Unity3dに戻り、テクスチャが含まれるマテリアルフォルダがプロジェクトビューに表示されることを確認します

B0902



キューブを作成します。 テクスチャをキューブに追加するには、 プロジェクトビューからキューブにドラッグするだけです(マテリアルは自動的に作成されます)。 ただし、事前に設定して、 [作成]-> [マテリアル]を選択することもできます

B0903



それを電球と呼び、 Materialsフォルダに入れます

B0904



buldを選択し、テクスチャをプロジェクトビューからインスペクタービューの空の灰色の正方形( none(Texture 2D)とラベル付け)に転送するか、同じ正方形内のすべて選択をクリックして表示されるリストから選択します。

B0905



灰色の正方形の代わりに、テクスチャ付きのアイコンが表示されます。

マテリアルをキューブにドラッグします。 キューブはすぐにテクスチャリングされます。

B0906



インスペクタービューでマテリアルを選択するとき、 シェーダーを選択することもできます。 シェーダーに従って、最終的な外観が計算されます

B0907

PS:シェーダーについては個別に説明しますが、後ほど説明します。



また、マテリアルはタイル(モザイクテクスチャ)として構成できます。 x番目またはy番目の座標のタイル値が大きいほど、対応する側でより多く繰り返されます。 これがどのように機能するかを理解するには、xとyの値を10に設定します(値が変更されると、キューブのテクスチャがリアルタイムで更新されます)。

B0908



オフセットパラメータは、テクスチャを「円形」にシフトします。 それがどのように機能するかをよりよく理解するには、試してみてください。



追加資料
公式のUnity3dコンポーネントリファレンスからの資料情報



公式Unity3dスクリプトリファレンスのマテリアルクラスに関する情報







ご注意
Unity3dPSDに加えて、次の形式のインポートもサポートしています。

TIFF、JPG、TGA、PNG、GIF、BMP、IFF、PICT。

他のテクスチャマッピングと同様に、テクスチャの辺が2のべき乗(128、256、512など)の場合、(パフォーマンスのために)最も効果的です。 ただし、テクスチャを2倍にする必要はありません(たとえば、256x512は許容可能なテクスチャサイズです)。









基本レッスン10-オーディオの基本








このレッスンでは、オーディオソースコンポーネント(オーディオリソース)を再生し、スクリプトを使用してサウンドクリップを呼び出す方法について説明します。



Unity3dでサウンドを操作するには、2つのコンポーネントが必要です。





通常、 AudioListenerはカメラのコンポーネントです。 カメラを選択し、 インスペクタービューで確認します。

b1000



サウンドを聞くには、各シーンに少なくとも1つのAudioListenerが必要です。



空のGameObjectを追加し、それにAudio Sourceコンポーネントを追加します

b1001



インスペクタービューまたはスクリプトを使用して、オーディオクリップを追加できます。



プロジェクトには、モノラルとステレオの2つのオーディオファイルがあります。

b1002



モノラルは一般的に効果音に使用されます。 それだけのために、減衰または他の3D効果を使用できます。

音楽用のステレオ、それぞれ ステレオサウンドはそのまま暖まります。



[ プレビュー]ウィンドウで、選択したファイルを再生できます。

b1003



クリップ( GreenadeLaunch )をAudio Clipフィールドに追加します [ アウェイクで再生 ]オプションがオンの場合 、サウンドはシーンの開始直後に再生されます。

b1004



適切なタイミングで音声クリップを鳴らしたい場合は、スクリプトを作成する必要があります。 オーディオソースの [ オーディオクリップ]フィールドを空白のままにして、 PlaySoundsという名前のc#スクリプトを追加します 次のコードをスクリプトに追加します。

//     public AudioClip myClip; void Start () { //    audio.PlayOneShot(myClip); }
      
      







空のGameObjectにスクリプトを追加し、スクリプト内のmyClip変数の値をサウンドファイル( GreenadeLaunch )で初期化します。 今すぐ再生をクリックすると、再び音が聞こえます。



オーディオソースを使用せずにオーディオを再生できます。 Game SourceからAudio Sourceコンポーネントを削除し、 Start()メソッドの本文のコードを次のコードに置き換えます。

  AudioSource.PlayClipAtPoint(myClip, transform.position);
      
      







ここで、 PlayClipAtPointAudioSourceクラスの静的関数であり、対応するオーディオソース (この場合はmyClip )で新しいGameObjectを作成し、オーディオクリップを再生した後、このGameObjectを削除します。



スクリプトを保存し、 GameObjectにそれ含まれ ていることを確認します。myClipの値はGreenadeLaunchです

b1006



[ 再生 ]をクリックし、シーンを読み込んだ直後に[ 一時停止 ]をクリックして、 One Shot Audioという名前の新しいゲームオブジェクトがシーンに表示されていることを確認します

b1007



追加資料
公式Unity3dスクリプトリファレンスからのAudioClipクラス情報



公式のコンポーネントリファレンス> Unity3dからのオーディオソースコンポーネント情報





基本レッスン11-接続の基本






このレッスンでは、固定ジョイント(固定ジョイント)とヒンジジョイント(スイベルジョイント)を使用して、「建物破壊ボール」にチェーンを作成する方法について説明します。



Unity3dで興味深い物理学を作成するには、 「ジョイント」を使用します これを説明するために、建物を破壊するためのボールのモデルを作成します。



元のシーンには、平面度(床) 、カメラ(メインカメラ) 、および光源(点光源)が含まれています。

まず、球体を作成し、それにRigidbodyコンポーネントを追加して、それをBallと呼びます。

Rigidbodyを追加して、円柱をシーンに追加します。 下の図に、円柱と球のサイズと位置を示します。 円柱の場合、 スケールは0.15、0.25、および0.15で、それぞれx、y、およびzの場合、円柱はボールの「エッジ」に「巻き上げ」られます(エッジが交差します)。

b1100



球体と円柱を接続するには、球体(ボール)を選択し、それに固定ジョイントコンポーネントを追加します Connected Body変数を値Cylinder.rigidbodyで初期化します このために、 Cylinder階層ビューからインスペクタービューConnected Bodyの反対側のフィールドにドラッグするだけで十分であることを思い出させてください。

b1102



Cylinderの名前を、ボールを固定するのに適した名前( Ballstemなど)に変更します。 Connected Body変数の値は自動的に変更されます。

b1103



プレイを押すと、シリンダーが取り付けられた状態でボールがどのように落ちるかがわかります。

b1104



次に、チェーンの移動セクションの作成を始めましょう。

カプセルを作成します( Chain1と呼びましょう)。その寸法はボールステムの寸法に似ており、 カプセルのすぐ上に配置され、オブジェクトの端が交差するようにします。 Chain1はまた、 rigidbodyコンポーネントと一緒になります

b1105



そして、 ボールステムヒンジジョイントコンポーネントを追加します。

接続されたボディでは、 Chain1.rigidbodyを初期化します

固定位置はオレンジ色の矢印で示されています。

b1106



チェーンの別のセクションが必要です。 Chain1を選択して複製します( ctrl + Dまたはcmd + D )。 名前をChain2に変更し、またChain1の最上部に移動します。 Chain1にヒンジジョイントを追加します。

BodyChain2.rigidbodyに 接続ました。

b1107



同様にChain3を追加します。



最後に、 HingeJointChain3に追加し、 Connected Bodyの値を設定しません この場合、オブジェクトは「自分自身」(より正確には、シーンの空の場所)にアタッチされます。

b1108



ボール、ボールステム、チェーン1、チェーン2、チェーン3選択し、それらを傾けます。

b1109



プレイをクリックして、チェーン付きボールの動きを確認します。



追加資料
公式のUnity3dコンポーネントリファレンスからのヒンジジョイントコンポーネント情報



公式のUnity3dコンポーネントリファレンスからのFixed Jointsコンポーネントに関する情報



公式のUnity3dスクリプトリファレンスからの共同クラス情報









基本レッスン12-仮想軸を使用して入力する






このレッスンでは、矢印(矢印キー)を使用して、「軸」(軸)を使用して左右に移動する方法を説明します。



今回はステージ上に飛行機(床) 、カメラ(メインカメラ) 、光源(ポイントライト) 、空のgameObjectがあります。



別の入力オプションは、 「軸」(軸)の使用です。

入力マネージャーを開きます(編集->プロジェクト設定->入力)軸を展開してから、 水平を展開します。

b1200



いくつかのデフォルトパラメータを見てみましょう。

パラメータ 価値 解説
負のボタン 負の方向に移動するためのキー
ポジティブボタン そうだね ポジティブな方向に進むための鍵
Altネガティブボタン a 負の方向に移動する代替キー
Alt正ボタン d 正の方向に移動するための代替キー
種類 キーまたはマウスボタン 特定の軸に沿って移動するための入力タイプ(この場合はX)
X軸 移動するオブジェクトの軸




この移動(水平)を使用するには、 InputクラスのGetAxis()メソッドが必要です。



小さなコメント
さらに、メソッドが静的であることを毎回示さないために、次の規則が導入されています。

  1. 「クラスメソッド」が記述されている場合、 静的であると見なされます。
  2. 「オブジェクトメソッド」が記述されている場合、メソッドは特定のオブジェクトに属します。






C#スクリプトを追加し、 GetAxis.csを呼び出して記述します。

  private float horiz; void Update () { horiz = Input.GetAxis("Horizontal"); Debug.Log(horiz); }
      
      







空のgameObjectにスクリプトを追加し、[ 再生 ]をクリックします 左/右矢印(またはa / d)を保持すると、 ステータスバーhoriz変数の値がどのように変化するかが表示されます

b1201



この変数の値は、-1から1に変化します(押されたキーに依存)。 キーを放すとすぐに、 horizは再び0になります。



Debug.Log()の直後に、Update()に別のコード行を追加します

  transform.Translate(new Vector3(horiz, 0.0f, 0.0f));
      
      







シーンを実行して矢印をクリックします-gameObjectがX軸に沿って移動し始める様子がわかります。

b1202



追加資料
公式のUnity3dスクリプトリファレンスからの入力クラスに関する情報



公式Unity3dマニュアルのさまざまなデバイスからの入力に関する情報




All Articles