teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

3

タグの追加

2021/02/16 15:09

投稿

aaa17983
aaa17983

スコア0

title CHANGED
File without changes
body CHANGED
File without changes

2

文章の大幅な訂正

2021/02/16 15:09

投稿

aaa17983
aaa17983

スコア0

title CHANGED
@@ -1,1 +1,1 @@
1
- Unity Pixel Per Unit が1の環境での物理挙動について
1
+ Unity Pixel Per Unit が 1 での RigidBody2Dによる物理挙動についてのご相談
body CHANGED
@@ -1,3 +1,73 @@
1
- ※途中送信してしまました。現在編集中です。
1
+ ※途中送信してしまった質問を編集しました。
2
+ 更新するのにかなり時間が掛かってしまってごめんなさい。
3
+
4
+ ### 前提・実現したいこと
5
+
6
+ 現在Unity2Dにて、ドット絵を使用したアクションゲームを制作しています。
7
+ かなり大雑把ですが、ゲーム全体のイメージとしてはカービィやマリオに近い感じです。
8
+
9
+ **前提:**
10
+ ・アンチエイリアスや圧縮を行いません
11
+ ・RigidBody2Dの使用
12
+ ・CinemachineBrainでの画面スクロールを使用します
13
+ ・画面サイズは 480 * 270 で、スプライトのサイズの基準は 30px * 30px です
14
+
15
+
16
+ **実現したい事:**
17
+ 題の通り、PixelPerUnit (今後は PPU と表記) を 1 に設定して、
18
+ RigidBody2Dによる物理挙動を行わせたいのですが、
19
+
20
+ PixelPerUnitを 1 に設定すると、
21
+ 目的の位置まで達するための物理挙動に使用するための数値を 30倍 にしなくてはならなくなり、
2
- しばらく間お目汚し失礼します。
22
+ 数値設定が非常に面倒です。
23
+
24
+ そこで、RigidBody2D (又はPhisics2D) 側に
25
+ **演算前に物理挙動に関係する全ての数値を 30倍 する**…
26
+ というような処理をさせることは可能でしょうか?
27
+
28
+ また、プレイヤーキャラの移動速度、敵キャラクターの移動速度の数値等々は
29
+ 全て ScriptableObject で管理しており、もしRigidBody2D側で処理をさせることが不可能ならば
30
+ ScriptaleObject でどうにか全てこなそうか、という事も検討しています。
31
+
32
+
33
+ ### 該当のソースコード
34
+
35
+ ```C#
36
+ public class PlayerController : BaseController
37
+ {
38
+ Rigidbody2D rigidBody2D;
39
+ PlayerData playerData; // プレイヤーキャラの移動に関するデータ(ScriptableObject)
40
+ /*
41
+ * public float MoveSpeed = 7.0f;
42
+ * public AnimationCurve DashCurve(float 0から1までの入力、0.0から1までの出力){}
43
+ */
44
+ InputManager inputManager;
45
+ /*
46
+ * public float MoveKey = Input.GetAxis("Horizontal");
47
+ */
48
+
49
+ /* ---- 省略 ---- */
50
+
51
+ void FixedUpdate()
52
+ {
53
+ /* ---- 省略 ---- */
54
+ rigidBody2D.velocity = new Vector2(inputManager.MoveKey * playerData.MoveSpeed, Physics2D.gravity.y);
55
+ /* ---- 省略 ---- */
56
+ }
57
+
58
+ ```
59
+
3
- by 投稿者
60
+ ### 試したこと
61
+
62
+ **ひとまずPixelPerUnitを30に設定して、
63
+ PixelPerfectCameraを利用しつつスクロールさせた **
64
+ →カクつきました。
65
+  キャラクターの1フレーム当たりの座標の移動量やVelocityはほぼ一定を保っていたようでしたが、
66
+  座標の数値に誤差が生じる事で、自然なスクロールにならずカクつきが起こりました。
67
+
68
+ こうした事から、PixelPerUnitを1にしようという発想に至りました。
69
+ (もし他に良い方法があれば助言してくださるととても光栄です。)
70
+
71
+ ### 補足情報(FW/ツールのバージョンなど)
72
+
73
+ バージョン: Unity 2019.4.20f1

1

2021/02/16 15:04

投稿

aaa17983
aaa17983

スコア0

title CHANGED
File without changes
body CHANGED
@@ -1,25 +1,3 @@
1
- ### 前提・実現したいこと
2
-
3
- ここに質問の内容を詳しく書いてください。
4
- (例)PHP(CakePHP)で●●なシステムを作っています。
5
- ■■な機能を実装中に以下のエラーメッセージが発生しました。
6
-
7
- ### 発生している問題・エラーメッセージ
8
-
9
- ```
10
- エラーメッセージ
11
- ```
12
-
13
- ### 該当のソースコード
14
-
15
- ```ここに言語名を入力
16
- ソースコード
17
- ```
18
-
19
- ### 試したこと
20
-
21
- ここに問題に対してたことを記載してください。
1
+ ※途中送信してしました現在編集中です。
22
-
23
- ### 補足情報(FW/ツールのバージョンなど)
24
-
25
- ここにより詳細な情報を記載ださい
2
+ ばらの間お目汚し失礼します
3
+ by 投稿者