[過去ログ] 【ゲームエンジン】Unity初心者質問スレBuild3 (1002レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
202(2): [safe] 2020/01/23(木)06:19 ID:xz19b8uw(1) AAS
こんな早朝に人いるかな?
Rigidbody2D.AddForceを使ってジャンプさせているんだけど
rigidbody2D.AddForce(Vector2.up * 数値);って感じで。
しかしこれではジャンプ力(高さ?頂点?)を決めてやれるだけで
ジャンプそのもののスピードはいじれない。
ぽい〜んってジャンプじゃなくて
ヒュンッとしたジャンプをさせたいんですが良い方法あります?
省1
203: 2020/01/23(木)08:02 ID:BeWKcfCr(3/5) AAS
>>202
C++時代みたいが良ければ Update() で Transform に毎フレームに加える数値を増やせば出来るよ。
AddForce は
204: 2020/01/23(木)08:04 ID:BeWKcfCr(4/5) AAS
AddForce では加える力を決めれるだけで、それで高さ?頂点?を決めれるわけじゃない。
205: 2020/01/23(木)08:32 ID:BeWKcfCr(5/5) AAS
あと多分 質問の状況からすると rigidbody.velocity += Vector3.up + 調整値 で、
FixedUpdate() で、物理フレーム毎に調整値をいじる方が望みの動作を得られる気がする。
でも、それが物理挙動かと言われれば違う気がするし、それなら素直に Transform の数値増減でいいじゃんとも思う。
この辺りどうなんだろうね?
rigidbody.AddForce だけでまともなゲームのジャンプになるの?
206: 2020/01/23(木)08:43 ID:sYrsRPW1(1/2) AAS
ジャンプの仕方が目標みたいだから、rigidbodyを極めてもよし、transformでコントロールしてもよし。
好きな方で。
addforceなら、velocityに、加えてgravity値をコントロールするとか試行錯誤だね。がんばれ。
207: 2020/01/23(木)09:05 ID:o31+m3nu(1/2) AAS
キャラクターとかはキネマティックにして物理エンジンに任せずに自分で動かした方が思った通りの動きになるんだよね
208: 2020/01/23(木)10:00 ID:KLj1RF1a(1) AAS
物理計算サイトが検算するのに捗る
自分でスプレッドシートつくる方が身につくけど
209: 2020/01/23(木)13:04 ID:rlCEa5FQ(1) AAS
>>202
単純にジャンプの速度を上げたいってだけなら、重力を大きくするか、
特定のキャラクターだけそうしたいならRigidbodyのGravityScaleを大きくするとかかな。ただしこれだと落下速度も速くなっちゃうけど。
一時的に物理計算を無視して完全に制御したいなら、transformよりも
Rigidbody.MovePositionを使って動かす方がいいかも。
これなら周りのオブジェクトに物理的な影響を与えながら移動できるし、
fixedupdate内で書くことになるので
省2
210: 2020/01/23(木)17:48 ID:9HsMMURI(1) AAS
おっぱいも物理エンジンよりも手で揺らした方がイキイキしている気がする
211: 2020/01/23(木)17:51 ID:sYrsRPW1(2/2) AAS
それは物理エンジンが…あ、いやなんでもない。
212(1): 2020/01/23(木)20:32 ID:o/nrz+aB(1/2) AAS
AnimationControler みたくステートマシーンをグラフィカルに編集できるアセットってないっすかね?
AnimationControler と StateMachineBehaviour がありゃステートマシンでやるようなこと何でもできるじゃないのって思ってたけど、
Time.timeScale=0 したら setTrigger しても状態遷移しないし、
やっぱりステートマシンのすべてを AnimationControler に任せるのは無理があるのかなとか思って。
なければ State パターン でハードコーディングすべきなのかなやっぱり。
213(1): 2020/01/23(木)20:40 ID:o31+m3nu(2/2) AAS
>>212
animator.updateMode = AnimatorUpdateMode.UnscaledTime;
214: 2020/01/23(木)21:43 ID:o/nrz+aB(2/2) AAS
>>213 うお、そんなオプションが…。解決しました。感謝です。
215(1): 2020/01/24(金)04:03 ID:+Fsi074W(1/11) AAS
すみません、変な質問なんですが Input.GetAxisRaw("Horizontal")
この処理をキーを離さずに一度リセットして認識し直させる方法はありませんか?
、、というのも「ある状況」になるとキーを押しっぱなしのままだと
Input.GetAxisRaw("Horizontal")が認識されない状態になるバグがあり、
一度でもキーを放して押し直すとちゃんと認識されるようになるんです。
その原因がどうにもわからないので、その状況になれば毎度リセットさせたいな、と。
具体的に言いますと
省13
216: 2020/01/24(金)07:02 ID:9g9ZzaxQ(1/3) AAS
バグっぽいと言うのはどこの情報ですか?
217(1): 2020/01/24(金)07:54 ID:1mzH9O5r(1) AAS
>>215
普通に考えてリスタートの処理の仕方に問題があるかと。
ゲームオーバーで最初に戻るにしても、インプット関数としては、ゲームオーバーしようがしまいが関係ない。なら、リスタートまでに何か影響のある処理を入れてしまっている事が考えられる。
例えば、start()に取得し直しとか書いてるけど、startをまた呼び出してるの?すまん、私はそんな表記はした事ないから異常に見えました。
218(1): 2020/01/24(金)12:14 ID:JiuRt8jn(1) AAS
プレイヤーオブジェクトをDestroyしてる説
219: 2020/01/24(金)16:44 ID:YxoFqWNA(1/2) AAS
おこなの?
220: 2020/01/24(金)21:18 ID:lHO70wOG(1) AAS
質問です
編集ソフト間ではテクスチャやマテリアルをFBXに同梱するのは珍しくありませんが、Unity上ではあまり見かけません
単にUnityではFBX内のデータを編集できないから邪魔という理由かなと思っていますが、他にも理由があるのでしょうか?
221(1): 2020/01/24(金)21:48 ID:+Fsi074W(2/11) AAS
>>217
説明が難しいんですが頑張りますね
>普通に考えてリスタートの処理の仕方に問題がある
確かにその通りです
でも別にまだ作り始めですから複雑なことしておらず
Input.GetAxisRaw("Horizontal")で左右移動
Input.GetKey("space")でジャンプ。
省18
222: 2020/01/24(金)21:50 ID:+Fsi074W(3/11) AAS
ちなみにプレイヤーが死んだ時、プレイヤー作成時に
Input.GetKeyとInput.GetAxisRaw
を記載したりはしておりません。
そもそもInput.GetAxisRaw("Horizontal")の入力を阻止することなんて
こちらがどうこうできるものでは無いはずなんです
で、例えば
int x = Input.GetAxisRaw("Horizontal")としてやって、
省6
223(1): 2020/01/24(金)22:41 ID:9g9ZzaxQ(2/3) AAS
いやそのスクリプトがデストロイしてるオブジェクトについてたらダメじゃね
って話しじゃないか
224(1): 2020/01/24(金)23:07 ID:rtAyfksW(1/2) AAS
リスタートを実装しているなら、わざわざDestroyしなくてもいいんでは?と思うけど
仮にUnityの不具合で
instaniateされたゲームオブジェクトが継続中のHorizontalを受け付けないのだとしても、Destroyせず最初のプレイヤーのゲームオブジェクトを使い回せばいいんでは
225(2): 2020/01/24(金)23:07 ID:+Fsi074W(4/11) AAS
>>223
おっしゃりたいことはわかります。
もしそういう仕様(デストロイしたオブジェクトに書いてた場合は一度放さないと機能しない)、
なら
ジャンプをせずに(Input.GetKeyを使わずに)
死んでリスタートした場合は
押しっぱなしのInput.GetAxisRaw("Horizontal")が
省2
226: 2020/01/24(金)23:18 ID:9g9ZzaxQ(3/3) AAS
>>225
リスタートすると言うことは新たなオブジェクトだよね
新しいスクリプトなんだから動いて当然だと思うけど
なんなら明日簡単なサンプル作って検証してみようかね
227: 2020/01/24(金)23:18 ID:+Fsi074W(5/11) AAS
>>224さんのレスも考慮させて頂いて
一度デストロイ方式を辞めてみましたが
やはり同じ症状でした。
228(1): 2020/01/24(金)23:24 ID:7QzIJzpr(1) AAS
>>225
リスタートってどんな処理してるの?
シーンの読み込み直し?
まったく関係ないゲームオブジェクトのUpdateで監視しててもそうなるの?
229: 2020/01/24(金)23:27 ID:+Fsi074W(6/11) AAS
むむ、これは、、本当にバグなのかもしれません。
今、限りなくソースをそぎ落としていってるんですが
それでもその症状が出ます。
ほんと、プレイヤーのスクリプトでやってることは
x = Input.GetAxisRaw("Horizontal");
if(x==0){
//止まる処理
省13
230: 2020/01/24(金)23:30 ID:+Fsi074W(7/11) AAS
>>228
シーンの読み込み直しです。
void RestarScene(){
Scene thisScene = SceneManager.GetActiveScene();
SceneManager.LoadScene(thisScene.name);
}
231: 2020/01/24(金)23:37 ID:+Fsi074W(8/11) AAS
これは、、、、今
大変なことが発覚しました。。。
232(1): 2020/01/24(金)23:39 ID:YxoFqWNA(2/2) AAS
>>221
1. 方向キー(←押しっ放し)
2. スペース
3. スタート
これで最初の方向キーの入力が消えるってことなら、
安物のキーボードはそこまでの同時入力に対応していないからなとしか
Unityの問題でなくパソコンの仕様だよ
233: 2020/01/24(金)23:40 ID:+Fsi074W(9/11) AAS
このバグの発動条件が
左右キーを押しっぱなし中に「ジャンプした」あと死亡したらと思っていたんですが
違いました。
なんと、左右キーを押しっぱなし中に
「キーボードの他のボタン(どれでも)を押した」あと
死亡したらでした!!!
なんと、ゲームで使ってないキーを押しても、この症状が出ます!!!
省1
234(2): 2020/01/24(金)23:42 ID:rtAyfksW(2/2) AAS
シーンを移動するとInputがリセットされる件
で検索
url貼ろうとするとNG食らうので
235: 2020/01/24(金)23:45 ID:+Fsi074W(10/11) AAS
>>232
>これで最初の方向キーの入力が消えるってことなら
いや、私の説明を誤解してます。
2. スペース
の後も「1. 方向キー(←押しっ放し)」は生きてます。
そのままその方向に歩いていくし、放せば止まります。
ただ、1.を押しっぱなしのままで歩いて敵に当たったりして死亡したあと
省3
236: 2020/01/24(金)23:55 ID:+Fsi074W(11/11) AAS
>>234
検索して拝見しましたが
非常に勉強になるブログでした。
しかし自分のケースと少し違う気がしますがどうですか?
なぜなら、自分のケースは
確かに二つ目のキー入力をしますが
その後、その二つ目を放して、シーンを移動します。
省14
237: 2020/01/25(土)00:44 ID:lrP57LvS(1/6) AAS
これはもう熟練者様に確認してもらいたいので
シンプルにしたものをパッケージ化しました。
これで症状を確認していただけませんでしょうか。
外部リンク:ux.getuploader.com
まずは
ゲーム開始して、右キーを押しっぱなしで死んでください。
リスタートしても右キーを押しっぱなしです。
省13
238: 2020/01/25(土)00:47 ID:lrP57LvS(2/6) AAS
ちなみにバージョンは2018.4.11f1です
239(1): 2020/01/25(土)09:41 ID:6e7MKbrk(1/3) AAS
とりあえずもっとシンプルにして修正したよ
外部リンク:thuploader.orz.hm
恐らく原因はLoadSceneでしょ、シーンロードするという事はそれまで居たシーンは
リセットされると思う、だから入力が利かなくなるんじゃないかな
とりあえず同シーンリスタートしたら問題なく出来た
それから、コライダーとか整理した方がいいかな同じオブジェクトに二つ付いてたり
場所かぶっていたり、なんか無駄がおおかった
240: 2020/01/25(土)09:43 ID:6e7MKbrk(2/3) AAS
あ、ちなみに制作は
2019.2.17f1で取り込み確認、パッケージ化
2019.2.5f1でも確認
2018年バージョンは当方もうすててたので、未確認
でも特にバージョン違いの事してないから問題ないと思います
241(2): 2020/01/25(土)09:53 ID:6e7MKbrk(3/3) AAS
>>293
>恐らく原因はLoadSceneでしょ、シーンロードするという事は
すまん、これ原因究明してないから、これが原因かどうか不明なので
ちょい出かけるからまた戻ったらシーン展開でも症状確認してみるわ
242: 2020/01/25(土)10:51 ID:lrP57LvS(3/6) AAS
>>239
ありがとうございます
修正感謝します
確認してみます!
>シーン展開でも症状確認してみるわ
はい!もちろん修正されたものを見て自分でも原因を考えてみますが
ぜひとも宜しくお願いします。
243: 2020/01/25(土)11:51 ID:52iKK3mn(1) AAS
優しいスレ
244(1): 241 2020/01/25(土)13:15 ID:AAVfnYWp(1) AAS
画像リンク[png]:i.gyazo.com
こんな感じでリスタートでLoadSceneしてみたら、症状でましたね
LoadSceneAsyncでも同様なので、やはりシーンロードするとバッファが詰まるのでしょかね
とりあえず途中経過です
なぜLoadSceneでキー2つ目押でなるのかについてはなんか大変そうだな根本原因掴むのは
245(1): 2020/01/25(土)13:30 ID:4hPFEDML(1) AAS
>>234 の記事がそのまんま答えじゃない?
この記事によると「シーン遷移時にInputはリセットされる」というのが仕様で
今回の場合「シーン読み込みしてるのに横移動入力が拾えてた」というのがむしろバグらしい
で、ちょっと試してみたけど
Inputを拾うオブジェクトをDontDestroyOnLoadにして破棄しないようにしても
普通にシーン遷移を行うとInputはリセットされてしまうようなので
どうしてもシーン読み直しで、かつInputを継続して拾いたいなら
省6
246: 2020/01/25(土)14:50 ID:rO5N4tZX(1) AAS
シーンごとのリセットは
アクションゲームなら必須に近いし
ゲーム制作に支障が出そうな仕様だなぁ
247(1): 2020/01/25(土)20:13 ID:lrP57LvS(4/6) AAS
>>244
>やはりシーンロードするとバッファが詰まるのでしょかね
>>245
>シーンの読み込み直しなしでリスタートを実装する
その様子だとロックマン系のアクションゲームとかでよくある
プレイヤーが一画面分ずつ画面切り替え(切り替わり後、敵が定位置から発生)で
移動する場面などのときに
省11
248: 2020/01/25(土)20:13 ID:lrP57LvS(5/6) AAS
で、今パッと思いついたのはグローバルな変数に
シーン切替前の瞬間の方向キーの値を確保しておいて
切り替え後の最初だけのその方向キーの値を
入れ込んでやるって感じにしてやれば、、どうでしょう??
とりあえずそういうノリで一度打開できるか試してみます。
249: 2020/01/25(土)20:16 ID:lrP57LvS(6/6) AAS
>>241さん、修正パッケージありがとうございます
原因究明はともかく修正したソースを見せていただき
なるほどーって感じでこちらは大変勉強になりました。
250: 2020/01/25(土)20:16 ID:AC7xcaw6(1) AAS
AA省
251(1): 2020/01/25(土)20:45 ID:JCoOqUSR(1) AAS
>>247
お前が言ってるロックマンのパターンでは
シーンをわけんなってことだよ
252(1): 2020/01/25(土)21:10 ID:7xtf6OfK(1) AAS
Input.GetButtonDown
InputGetButtonUp
でいかんの?
253: 2020/01/25(土)22:10 ID:aeB2xTib(1/2) AAS
3Dの坂道だけど、
normalVector = collision.contacts[0].normal; で取れる値が、
坂メッシュの下から接触する時と、坂メッシュの上から接触する時に違うのはなぜだろう?
下から接触は登れるが、上から接触は"上れない"
254(1): 2020/01/25(土)23:07 ID:aeB2xTib(2/2) AAS
自己解決した。
CollisionEnter 一回では法線の正確な値が取れなかった…
255: 2020/01/26(日)00:40 ID:2uuxF2Qq(1/3) AAS
>>254
イイね!
256(2): 2020/01/26(日)03:45 ID:wmtOSy96(1) AAS
>>252
InputGetButton
期待してやってみましたがダメでした。
>>251
ということですよね
sceneをまたぐと入力が切られること自体クソ仕様なのか
自分がこのタイミングでscene遷移を利用することがクソ思考なのか
省4
257(1): 2020/01/26(日)07:48 ID:Fvh37rHc(1/2) AAS
Unityエディタ上からGameObjectに対してEventTriggerを追加するのではなく、スクリプトからGameObjectに対してOnPointerClickを追加するには、どのようにすればよいのでしょうか?
GameObjectに対して、コライダーを追加して、下記の様にIPointerClickHandlerをインプリメントしたスクリプトを追加しても、OnPointerClick()が呼び出されません。
どの様にすれば良いでしょうか?
class Boo : MonoBehaviour,
IPointerClickHandler,
{
public void OnPointerClick(PointerEventData eventData)
省3
258: 2020/01/26(日)08:17 ID:ckFKG1Im(1/6) AAS
>>257
自分用Unityメモ:EventTriggerにスクリプトからEventを追加する
外部リンク:kasatanet.はてなblog.com/entry/2017/11/19/233426
はてな部分はローマ字で
259: 2020/01/26(日)09:40 ID:2uuxF2Qq(2/3) AAS
>>256
うん、もちっとがんばってね。
あと、down upは、そのままじゃだめだよ。押されたら保管、その値を参照して処理。
260(1): ◆uBR9Xpjlnk 2020/01/26(日)10:26 ID:DH9o2bCr(1/2) AAS
StaticなクラスからGameObjectを生成しようとしてるんですがGameManager.Instantiateしてるんですが問題ありますか?
そもそもStaticなクラスから生成しようとしてること自体が間違いですかね?
261: 2020/01/26(日)10:37 ID:ckFKG1Im(2/6) AAS
>>256
再度修正しました
とりあえず2押に対応しました
ソース整理してないので醜いかもですが
一応、流れとしてはStartシーンをベースにして
sampleシーンをロード、アンロードします
これで入力値はずっと取れるようです
省1
262(1): 2020/01/26(日)11:03 ID:ckFKG1Im(3/6) AAS
>>260
>GameManager.Instantiate
このGameManagerってのが何かよく分からないけど
Instantiateのマニュアル
外部リンク[html]:docs.unity3d.com
staticのマニュアル
外部リンク[html]:docs.unity3d.com
省4
263: 2020/01/26(日)15:48 ID:b+yLlRNB(1/3) AAS
アイソメトリックタイルで2Dドット絵のクォータービューのマップタイルを配置して、ドットキャラを落としたところ
タイルより少し浮いた位置に落ち、キャラが倒れてしまいました
タイルには2Dタイルマップコライダー キャラには2Dリジッドボディと2Dカプセルコライダーを設定してます
正確に1タイル上に着地するにはどうすればいいでしょうか
264(1): 2020/01/26(日)16:06 ID:ckFKG1Im(4/6) AAS
画面ないからなんとも言えんが
とりあえず公式ブログのプロジェクトでも見てみるとかどう
タイルマップの等角 2D 環境
外部リンク:blogs.unity3d.com
265: 2020/01/26(日)16:41 ID:b+yLlRNB(2/3) AAS
>>264
ありがとうございます、キャラが倒れるのは回転を固定にチェックを入れていなかったからでした
こちらの動画が参考になりました、頑張ってみます
266: ◆uBR9Xpjlnk 2020/01/26(日)16:57 ID:DH9o2bCr(2/2) AAS
>>262
説明が足りなくてすいません。
Monobehaviourを継承してない(できない)StaticなクラスでInstantiateをしようとしてるんですけどGameManagerクラスはMonobehaviourを継承してるかつどこからでも呼び出せるからGameManager.Instantiate()といった感じでやってるんですよね。
267(1): 2020/01/26(日)18:36 ID:3Sh7JjJE(1) AAS
canvasのtextってもしかして全部再描画してるんですかね?
縦文字スクリプト作ってoutlineつけてフェードイン&フェードアウト作って
ノベルゲームみたいに一文字ずつ出るようにしたら50文字ぐらい読み込むとどんどんと重くなります
もしかしてcanvasって一行一行ずつ作った方がいいんですか?
268: 2020/01/26(日)18:52 ID:2uuxF2Qq(3/3) AAS
文字だけじゃなんとも。
269(1): 2020/01/26(日)20:48 ID:b+yLlRNB(3/3) AAS
この画像の赤ラインまで枠を縮めたいのですが、コライダーエディットのような項目が見当たらず、任意に動かせません
どうすればできますか?壁まで歩けてしまいます
画像リンク[png]:dotup.org
270: 2020/01/26(日)20:58 ID:ckFKG1Im(5/6) AAS
>>269
さっきの公式ブログにさ
「衝突タイルを配置したら、Tilemap Collider コンポーネントを衝突のタイルマップに追加します」
ってあるのよ
回り道かもしれないけど、まずは公式のプロジェクトダウンロードしてやってみたらどうかな、色々と勉強になると思うよ
271: 2020/01/26(日)21:03 ID:ckFKG1Im(6/6) AAS
>>267
フェードアウト、インがどう作られてるのか?
一文字づつ出力がどんなスクリプトか?
まるで情報がわからないのに助言できないので、とりあえず
Unityにおける文字の描画と比較検証
外部リンク:creator.game.cyberagent.co.jp
272(1): 2020/01/26(日)22:38 ID:Fvh37rHc(2/2) AAS
OnMouseDown()はタッチにもクリックにも反応しますが、クリックのみにしか反応しないようにするにはどうすれば良いでしょうか?
273: 2020/01/27(月)09:58 ID:Lnpc9jzQ(1) AAS
>>272
Input.touchCount が 0以上なら指タッチ、そうでないならマウスって判定でいいんじゃね
274: 2020/01/27(月)10:23 ID:yuGD/LWP(1) AAS
downが呼ばれてtouchが0ならマウスじゃないの?
275(1): ◆uBR9Xpjlnk 2020/01/28(火)07:35 ID:JSvWE+67(1/6) AAS
SceneとGameでフォントがおかしいのってどうやって直すんですか?
画像リンク[jpg]:i.imgur.com
276(1): 2020/01/28(火)08:03 ID:i1aGfgqT(1/3) AAS
すみません、例えばこんな感じでそのオブジェクトが消滅直前にSEを鳴らそうと
audioSource.PlayOneShot(deadSE);
Destroy(this.gameObject);
してもSEが鳴らずにオブジェクトが消滅してしまいます。
あとでサウンドオブジェクトはシングルトンで作るつもりでいるのですが
今は自分のオブジェクトが鳴らすSEは自分にアセットしたスクリプトにて処理させようと思ったんですが
もしかしてDestroy()直前に命令したら鳴らずに消滅するのでしょうか?
省1
277: 2020/01/28(火)08:05 ID:i1aGfgqT(2/3) AAS
ちなみに、Destroy()の直前じゃないところに記載した場合はそのSEが鳴ります。
呼び出したあとにオブジェクトが消滅するんだから音は鳴るだろって思ってるんですが
278(1): 2020/01/28(火)08:26 ID:UXt784Vm(1) AAS
Destroyでスピーカーごと消してるから鳴るもんも鳴らなくなる
279: 2020/01/28(火)08:38 ID:i1aGfgqT(3/3) AAS
>>278
なるほどそりゃそうですよね
ありがとうございます!
280(2): 2020/01/28(火)08:54 ID:FwIKyioN(1/5) AAS
>>275
それだけの情報じゃ全くわからん
フォントは何か?
キャンバス設定はどうか?
カメラ設定はどうか?
出来ればプロジェクトアップしてくれると直ぐ見れると思う
>>276
省2
281: ◆CfpuGKKDJA 2020/01/28(火)09:05 ID:JSvWE+67(2/6) AAS
>>280
外部リンク:6.gigafile.nu
お願いします!
282: ◆uBR9Xpjlnk 2020/01/28(火)09:08 ID:JSvWE+67(3/6) AAS
あっできたかも
上下前次1-新書関写板覧索設栞歴
あと 720 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.026s