Hakoniwa-tutorial-unity

3.4K Views

April 10, 24

スライド概要

この資料では、箱庭のUnityを利用する上で、Unityの基本的な使い方について情報を整理しています。
- Unityとは何か
- Unityエディタの画面構成
- 基本的な操作方法
- Unityで物理シミュレーションするための基礎知識

profile-image

TOPPERS/箱庭WG活動でUnityやらAthrillやらmROSやら触ってます。 最近は仕事の関係でWeb系の技術に注力しつつ、箱庭への転用を模索しています。 2023年8月1日:合同会社箱庭ラボに移動しました

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

箱庭(Hakoniwa) Unityの使い⽅ 合同会社箱庭ラボ 森崇

2.

はじめに • この資料では、箱庭のUnityを利⽤する上で、Unityの基本的な使い⽅につ いて情報を整理しています。 • Unityとは何か • Unityエディタの画⾯構成 • 基本的な操作⽅法 • Unityで物理シミュレーションするための基礎知識 • 本チュートリアル⽤のサンプルプログラムは以下で公開しています。 • https://github.com/tmori/unity-tutorial 2

3.

Unityとは何か • ユニティ・テクノロジーズ社が開発したゲーム開発プラットフォーム • 物理演算エンジンが搭載されています • 質量・速度・摩擦・⾵といった,古典⼒学的な法則をシミュレーションするコンピュータのソフトウェア • ※参照元︓ウィキペディア • Unityでできること • ロボット作れます • 物理的な法則に従ってモノを動かすことができます • ロボットの周辺環境も作れます 3

4.

Unityエディタの画⾯構成(1/2) Sceneビュー Hierarchy ビュー Inspector ビュー Project ビュー 4

5.

Unityエディタの画⾯構成(2/2) Gameビュー Main Cameraを通して移した世界 Console ビュー ここにログが出てきます 5

6.

基本的な操作⽅法 • 視点の操作 • 視点移動 • 視点回転 • ズーム操作 • ゲーム・オブジェクトの操作 • ゲーム・オブジェクト移動 • ゲーム・オブジェクト回転 • ゲーム・オブジェクト拡⼤・縮⼩ 6

7.

視点移動 マウス・ホイール押しながら右左 マウス・ホイール押しながら上下 7

8.

視点回転 右クリックしながら右左 右クリック押しながら上下 8

9.

ズーム操作 ズームイン ズームアウト 9

10.

ゲーム・オブジェクト移動 左クリックしながら移動 10

11.

ゲーム・オブジェクト回転 左クリックしながら回転 11

12.

ゲーム・オブジェクト拡⼤・縮⼩ 左クリックしながら拡⼤・縮⼩ 12

13.

Inspectorビューでもできます 13

14.

Unityで物理シミュレーションするための基礎知識 • ゲームオブジェクト • プリミティブな素材 • 衝突判定⽤のオブジェクト • 物理挙動 • RigidBody • Jointコンポーネント • ArticulationBody • 独⾃処理(Unityスクリプト)の追加⽅法 • Unityイベント関数の実⾏順序 14

15.

ゲームオブジェクト • Unity上のすべてのキャラやロボットはゲームオブジェクトで出来ています • 以下のTransform情報を持ちます • 名前 • 位置(x, y, z) • 回転(x, y, z) • スケール(x, y, z) 無⾊、透明です 15

16.

プリミティブな素材 1. Cube 2. Sphere Cylinder 3. Capsule 4. Cylinder 5. Quad 6. Plane Cube Sphere Capsule Quad Plane 16

17.

衝突判定⽤のオブジェクト • コライダの種類 • Boxコライダ • Sphereコライダ • Capsuleコライダ • Meshコライダ 17

18.

プリミティブな素材のコライダを⾒てみる 全オブジェクトの Mesh Rendererをオン 全オブジェクトの Mesh Rendererをオフ 18

19.

コライダによる衝突の様⼦ コライダなしの場合︓ コライダありの場合︓ 19

20.

物理挙動 • RigidBody • Rigidbody (リジッドボディ) はオブジェクトに物理挙動を可能にするためのメインコン ポーネントです。リジッドボディを加えた瞬間から、オブジェクトは重⼒の影響を受けるよう になります。さらに、1つ以上の Collider (コライダー) コンポーネントを加わえれば、オブ ジェクトは衝突の影響によって動くようになります。 20

21.

Jointコンポーネント • Joint (ジョイント) コンポーネントは、Rigidbody (リジッドボディ) を他の Rigidbody または空間の固定点に接続します。ジョイントはリジッドボディを 動かす⼒を加え、ジョイントの制限はその動きを制限します。ジョイントはリジッ ドボディに以下の⾃由度を与えます。 RigidBody Joint Jointコンポーネントの種類 RigidBody 箱庭での利⽤有無 Character Joint × Configurable Joint 〇 Fixed Joint 〇 Hinge Joint 〇 Spring Joint × 21

22.

Fixed Joint • SphereにFixed Jointコンポーネントをアタッチし、Capsuleと接続する Sphere Fixed Jointを付ける Capsule 22

23.

Fixed Joint 23

24.

Hinge Joint • リジッドボディを、他のリジッドボディや空間上の点に、共有された原点で 取り付け、その原点の特定の軸を中⼼に回転させることができます。ドア や指の関節を模倣するのに便利です。 回転位置 (Anchor) ジョイントする RigidBody 回転対象 RigidBody 回転方向 (Axis) 24

25.

Hinge Jointの例 回転位置 (Anchor) 回転方向 (Axis) ジョイントする RigidBody 回転対象 RigidBody 回転速度/⼒を決める パラメータ 25

26.

Hinge Joint 26

27.

物理挙動 • ArticulationBody • Articulation Body (連結ボディ) を使うことによって、ゲームオブジェクトを使ったロボッ トアームやキネマティックチェーンのような 物理的連結 を構築することができます。これら は、産業⽤アプリケーションのシミュレーションのコンテキストでリアルな物理動作を得るの に役⽴ちます。 • 連結ボディは、RigidBody や 通常のジョイント といった従来の構成で定義されるプロ パティを、1 つのコンポーネントで定義することができます。ただし、これらのプロパティは、 階層内のゲームオブジェクトの位置に依存します。 27

28.

プロジェクト設定を変更する必要あります 28

29.

論よりRUN! • RigidBodyをやめて、ArticulationBodyに変更する︕ Articulation Bodyをア タッチするだけ︕︕ 29

30.

ArticulationBody 30

31.

Fixed 31

32.

Hinge Jointと同じ設定したい場合 CubeをCylinder配下に移動 CylinderのArticulationBodyの接合部分および回 CylinderのArticulationBodyの接合部 転⽅向を編集 分および回転⽅向を編集 Joint Typeを Revolute にして、回転 設定する

33.

Revolute 33

34.

独⾃処理(Unityスクリプト)の追加⽅法(1/2) • Unityのゲームオブジェクトには、Unityスクリプト(C#)を追加できます シミュレーション開始 時に呼び出されます フレーム毎に呼び出さ れます 34

35.

独⾃処理(Unityスクリプト)の追加⽅法(2/2) 35 35

36.

Unityイベント関数の実⾏順序 • https://docs.unity3d.com/ja/2023.2/Manual/ExecutionOrder.html Start() FixedUpdate() Update() Initialization Physics Rendering Input events End of frame Game logic Pausing Decommissioning 36

37.

Unityイベント関数の実⾏順序 箱庭ロボットのセンサ/アクチュエータ 実装はFixedUpdate()内で実⾏ されます 37

38.

Unityイベント関数の実⾏順序 38

39.

Unityイベント関数の実⾏順序 39