[過去ログ] 【3Dゲームエンジン】Unity質問スレッド33 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
215: 2017/12/28(木)23:00 ID:mH5YII84(8/8) AAS
>>187 >>200

全部1フレーム内での出来事だったのか

>>186 >>200

呼び出される順序の問題で、物理演算をまたいでしまうと、
その時点で1フレーム分の内容のズレが出ちゃうのが真相か・・・
216: 2017/12/29(金)09:19 ID:K0u5BC7r(1) AAS
>>214
それはワープになるからな
MovePosition使えば大丈夫だよ
217
(2): 2017/12/29(金)23:42 ID:qixlPtWp(1) AAS
初心者です。
2Dでジャンプアクションゲームを物理演算で製作中です。
ようやく左右への移動ができるようになったところです。
(Input.GetAxisをvelocityに代入しています)
ジャンプの際に、お聞きしたい事があるのですが、
まず地面に接している判定をどうするのか、
ジャンプはvelocity変更でよいのか、AddForceの方がよいのか、
ボタンを押している時間に応じてジャンプを高くしたい
(無制限に高くではなく、ジャンプ力には上限を設けたい)
などを詳しく解説してあるサイトとかありますでしょうか?
あるいは、ジャンプ動作のスクリプトに、定石・セオリーみたいのはあるのでしょうか?
218
(1): 2017/12/30(土)00:35 ID:5n68sL0m(1) AAS
AddForceの方がいいよ、単純にジャンプだけだったら変わんないかもしれないけど他の動作と重なったときに融通がきかなくなる
設置してるかどうかはコリジョンを見れば良いんだよ
ジャンプ系の処理は定石化してるから、Youtubeでしっかり頭に叩き込んだほうが良いよ
数値の上限については、ちゃんとC#らしい書き方ができるといいね
219
(1): 2017/12/30(土)09:26 ID:sj8HSsvd(1) AAS
UNITYの定石としては、アセットを買うことですね
220
(1): 2017/12/30(土)14:20 ID:LpYIXbLi(1) AAS
"物理演算"でやるならVelocityは基本使っちゃだめよ
物理演算を無視した移動だから見た目が物理っぽくなくなるよ
キャラの操作制御はInput.GetAxisでもいいがCharacter Controllerを使えばisGroundというパラメーターで地面との接点判定できるよ
221
(1): 2017/12/30(土)16:10 ID:DH75+pHx(1) AAS
>>217
初心者向けに
2D platformerというジャンプアクションゲームのアセット(無料)がある

外部リンク:www.assetstore.unity3d.com

あとはggれば解説してるとこがあったはず
222: 217です 2017/12/30(土)23:14 ID:6xEuTupH(1) AAS
この時間しかレスできず、大変すみません。
皆さん、いろいろアドバイス下さり、ありがとうございます。

>>218さん
>>220さん
velocityは直接変えない方がよいんですね。
AddForceでImpuseモードで変更することにしました。

>>219さん
>>221さん
アセットは魅力的に思っていましたが、導入方法が分からなかったのと、
基本有料と思って、二の足を踏んでいました。
無料のジャンプアセットあるのですね。ためになりました。

>>220さん
Character Controllerは3D専用の機能かと思って触っていませんでした。
これから勉強します。
223: 2017/12/31(日)11:58 ID:YEuDj3bX(1/3) AAS
物理演算を使って、物理法則に則ったゲームを作成するのか、

物理演算を使って、既存型のゲームを作成するのか、
(コライダーは利用するが、動きは非物理)

物理演算を使わずに、既存型のゲームを作成するのか
(旧来のゲームシステム)
224
(1): 2017/12/31(日)12:40 ID:YEuDj3bX(2/3) AAS
positionの直接変更は、コライダーへの衝突計算が乱れる危険性あり

MovePositionによるposition変更は、velocity変更に基づいているので、
比較的安全にコライダーとの衝突計算がなされる

velocity変更を行わずに、全てAddForceで行った方が、
より自然な物理演算になるけど、velocityを0にするのが難しくなる

AddForceでvelocityを0にしようと逆方向に力を与え続けると、
逆向きの加速度がついてしまうので、基本的にはDragで減速せざるを得ない
225
(1): 2017/12/31(日)13:07 ID:YEuDj3bX(3/3) AAS
2Dで地面との接触判定を行うのであれば、

・IsTouching,IsTouchingLayers
 他のコライダーやレイヤーとの接触を検出する方法
 (全方向からの接触を検出してしまう)

・Physics2D.OverlapArea,Physics2D.OverlapBox
 配置した矩形が接触したコライダーを検出する方法
 (OverlapAreaとOverlapBoxは矩形の設定方法が異なる)

・Physics2D.Linecast
 配置した線分が接触したコライダーを検出する方法
 (RayCastとは異なり、直線ではなく長さを持つ線分)

・Physics2D.BoxCast,Physics2D.RayCast
 放射した直線が接触したコライダーを検出する方法
 (BoxCastはRayCastの先端が矩形)

IsTouching系は、Collider2D.(自分との判定)とPhysics2D.(2者間の判定)がある

Cast系は投射方向を指定できるが、投射前に接触していると検出されないのが難点

LineCastやRayCastは線のため太さがなく、幅を持つコライダーでは複数本が必要

OverlapBoxと違って、Physics.CheckBoxは、2Dでは使えない
226: 2017/12/31(日)18:15 ID:/rN76OKL(1) AAS
簡単にお金が稼げる方法興味ある人だけ見てください。

グーグル検索⇒『来島のモノノリウエ』

WQFIUEMH6C
227: 2018/01/01(月)00:44 ID:j7kcIBAU(1/6) AAS
斜面に球を置いたとき、コロコロと転がっていくか、転がらずに滑っていくかは、摩擦設定で変わるのですか?
228
(1): 2018/01/01(月)01:03 ID:6abiTkqK(1/2) AAS
変わるよ
ただし物理計算のタイムアウトも関係してくる
一定時間経過するとタイムアウトになり何か刺激がくるまで動かなくなる
229: 2018/01/01(月)12:16 ID:ljD1K3gw(1/4) AAS
IsTouchingLayersをつけたbox型のコライダーを足元に付けておけば、
足元だけで地面のレイヤーとの接地判定できるよ

キャラクタ全体をIsTouchingにしちゃうと、
横のブロックに触れただけでも接地に判定されちゃうから・・・
(逆に、壁登りや三角飛びするなら、これでもよいけど)
230: 2018/01/01(月)12:30 ID:ljD1K3gw(2/4) AAS
>>225
LineCastは判定線の長さが限られているから、直下だけの判定できるけど、
RayCastだと判定線の長さが伸びるから、下方向(距離無関係)の判定になっちゃうよ

>>224
1フレームで見れば、velocityの直接変更も、AddForce(Impulse)も同じだけど、
velocityの直接変更は、ボタン押下中、毎フレーム呼び出されても同じ値が代入されるのに対して、
AddForce(Impulse)は、ボタン押下中、毎フレーム呼び出されて加算されてどんどん加速するからね

AddForceで、gravityと同じ値で逆方向に加速すると、重力が相殺されて、速度が保存されるよ
231: 2018/01/01(月)12:32 ID:PNv1Z/iK(1) AAS
なぜ皆さんはこんな無駄なことに時間を費やすのか?
アセットを買えばすぐに解決するのに
232: 2018/01/01(月)15:25 ID:ljD1K3gw(3/4) AAS
>>217
ちなみに、自分の場合は、2Dでジャンプ機能を実装する際は、

Startでint t = 100,float v = 1.0fをセット

Updateでボタン入力と接地を監視
@入力あり
 t >= 0なら、Jump()へ飛んで、その後にt = t -1
A入力なし
 接地ありなら、t = 100へ
 接地なしなら、t = 0へ

Jump()
 t = 100なら、AddForce(mass * v * Vector2.up, ForceMode2D.Impulse)
 そうでない場合は、AddForce (mass * (t/100) * (- Physics2D.gravity))

最初のフレームで上向き初速v = 1.0をつけておき、
次のフレームからは重力加速度の相殺を線形的に減じていき、
t = 100フレームで重力加速度の相殺が消える仕組み

ボタン入力がない場合は、接地時はt = 100に戻して、
非接地時はt = 0をセットして連続での再ジャンプを防止
233
(1): 2018/01/01(月)15:36 ID:ljD1K3gw(4/4) AAS
接地判定は、足元に別コライダーを接地しておいて、IsTouchingLayersでも良いけど、

Startで、public LayerMask layerを宣言して、layerに地面のレイヤーを指定しておき、

キャラクタの足元に、縦厚みd×横幅x-dの判定枠を作って、
V2center = position - (キャラの縦サイズy/2) * Vector2.up
V2size = new Vecto2(キャラの横サイズx - d, d)

if (Physics2D.OverlapBox(V2center, V2size, 0, layer) == true)で
layer = 地面のレイヤーとの接地判定すると、コライダーを追加する必要はなくなるよ
234: 2018/01/01(月)18:00 ID:j7kcIBAU(2/6) AAS
>>228

変わるんですね

unityは、静止摩擦係数、動摩擦係数とか、滑り摩擦、転がり摩擦とかも設定できるんですか?
235
(2): 2018/01/01(月)18:03 ID:j7kcIBAU(3/6) AAS
Debug.DrawLineだと、Lineしか引けないんですけど、

Boxを描画したり、Circleを描画したりしたいんですけど、どうすれば良いんでしょうか?
236
(1): 2018/01/01(月)18:45 ID:6abiTkqK(2/2) AAS
静止摩擦係数、動摩擦係数だけです
237: 2018/01/01(月)20:01 ID:j7kcIBAU(4/6) AAS
>>236

摩擦係数は2種類設定できるんですね!
238
(1): 2018/01/01(月)20:58 ID:Ep+lOIal(1) AAS
>>235
cube作るなりplane作るなりすればいいんじゃないの?
239: 2018/01/01(月)21:03 ID:yWvNMSX7(1) AAS
アセットガイジ死ねや
240
(2): 名無し@キムチ 2018/01/01(月)21:18 ID:SQPXIuv2(1) AAS
>>238
cubeやplaneだと立体的になっちゃうから、
あくまでBoxを描画したり、Circleを描画したりして、テキストを補足する説明図っぽくしたいんじゃないかと忖度するが・・・w
ほら、数学の説明でよくあるやつ。>>235はああいう感じにしたいのではなかろうか?

Circleは難しいけど、まずcubeやplaneをつくって、
そのぴったり表面にシリンダーをすごく細くラインみたくしたものを置いて子オブジェクトにする。
次に3Dテキストを置いて子オブジェクトにする。
ラインとテキストをレイアウトしたら、cubeやplaneの面をカメラにぴったり向けてカメラの子オブジェクトにする。
最後にcubeやplaneを透明にすれば、カメラをどこに向けてもついてくる数学っぽい説明の出来上がりw
241: 2018/01/01(月)21:57 ID:j7kcIBAU(5/6) AAS
>>240の言うように、あくまで2Dでの画面への描画を考えてました

もともとは、Physics2D.OverlapCircleとかPhysics2D.OverlapBoxの判定枠をシーンビューに描画したかったのでした
Physics2D.LineCastの判定線はDebug.DrawLineで描画できたのですが・・・・・・
242: 2018/01/01(月)21:59 ID:j7kcIBAU(6/6) AAS
>>240

3Dオブジェクトで、擬似UIみたいにできるんですね!
とても勉強になりました
243
(1): 2018/01/02(火)00:14 ID:D2TESPw/(1) AAS
回転で不可解な挙動と思ったら、角速度は上限設定あるのね

3Dオブジェクトは角速度の上限が7みたい

どおりで、回転速度があがらないわけだww

2Dオブジェクトも角速度の上限あるんかな??
244
(3): 2018/01/02(火)07:20 ID:ItKV58jV(1/6) AAS
Unityでゲーム制作を始めようとしましたが、
2DのScene画面を3Dに切り替えようとすると、
高い確率でフリーズしてしまいます。スペック不足なのでしょうか。
スペックは

macmini
2.5GHz intel core i5
16GB 1600MHz DDR3
Intel HD Graphics 4000 1024MB
OS X 10.9.5

ですが、しょぼすぎますか
1-
あと 758 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ

ぬこの手 ぬこTOP 0.018s