- 1 名前:名前は開発中のものです。 mailto:sage [2020/01/11(土) 14:28:59.18 ID:wPvGtAaQ.net]
- ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止 初心者が親身になって初心者に教える。 又ググレの場合、何のキーワードでググるのか書いてね ●リンク ・Unity(日本公式サイト) unity3d.com/jp ・マニュアル docs.unity3d.com/ja/current/Manual/index.html ・チュートリアル unity3d.com/jp/learn/tutorials ・スクリプトリファレンス docs.unity3d.com/ja/current/ScriptReference/index.html ・FAQ unity3d.com/jp/unity/faq ・MSDN msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。 ※前スレ 【ゲームエンジン】Unity初心者質問スレBuild2 https://mevius.5ch.net/test/read.cgi/gamedev/1557293737/
- 150 名前:名前は開発中のものです。 mailto:sage [2020/01/18(土) 22:36:12.99 ID:sRYPYeXb.net]
- >>148
君のゲームの仕様わからんからなんともw まぁ、そんなところでいいんじゃないかな。 あとはそれをもとに、こんな動きしてしまうけどこういう動きにしたいどうすれば?と聞けば良いかと。
- 151 名前:名前は開発中のものです。 mailto:sage [2020/01/18(土) 23:47:19.34 ID:X4kcE6Zm.net]
- >>148
それはAIではない
- 152 名前:名前は開発中のものです。 [2020/01/19(日) 00:06:48.70 ID:310P+bV6.net]
- んじゃAIの定義を是非
- 153 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 01:05:02.78 ID:EOHxfdla.net]
- >>150
ありがとう、[索敵]⇔[追跡]⇔[攻撃] の超基本が実装出来た。 "無" から作成したおバカな敵AIだけど、フィールドで彼が徘徊している姿を見て、 とてもゲームらしくなった気がした。 また、索敵判定にスフィアコライダーをトリガーで使ってるけど、円じゃなくて扇形で判定出来れば、 後ろから敵に気づかれずに近づくとか出来るけど、複雑じゃなく簡単な扇形判定方法はないんだろうか? あと UniRx が有能過ぎた、もうこれなしで作れる気がしない。
- 154 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 02:32:04.52 ID:TBz8d+il.net]
- >>153
メッシュコライダに扇型を入れる
- 155 名前:名前は開発中のものです。 [2020/01/19(日) 05:57:07 ID:sNg7suvy.net]
- タイルパレットを使って、ステージを作ってる時のScene画面なんですが
この右下の窓が邪魔なんです。これを消すなり動かすことは出来ないのでしょうか? ただでさえ小さなScene画面なのにこれが心底邪魔でイライラします、、、 https://download1.getuploader.com/g/zipcodezipcode/219/tilemap.png
- 156 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 07:36:19.91 ID:VcE2c620.net]
- まずscene画面を大きくすればいいんじゃないか
- 157 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 09:47:15.38 ID:pFV/J70z.net]
- >>153
扇形はスフィアなりサークルコライダーの中に入ったら、自分と敵の角度を出して判定すればいいんじゃない?
- 158 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 11:41:02.55 ID:EOHxfdla.net]
- >>154
メタセコで扇型のメッシュ作ってメッシュコライダーに設定したら、 やりたかったことが、いとも簡単に実現出来た! ありがとう、最良の解決案だった。 >>157 んー 二つのベクトルの角度の計算とかちょっと直ぐには思いつけなかった。 でもサンキュー
- 159 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 19:47:41.79 ID:EOHxfdla.net]
- 敵AIの実装はひとまず出来て納得した。
次は爆弾の処理を作ろうと思う。 メタセコで爆弾の3Dモデル作ってプレハブ化したところ。 プレイヤーが爆弾を持って運んで、置いたら(投げたら?)爆発する感じかな。 そして、爆弾を爆破させたら破片を飛ばして、その破片が当たったオブジェクトが 破壊される感じ。 でも、文章で書く処理の想定と、実際のコーデイングに "差" があるとなかなか難しいよね。 爆弾の破片は ”破片用” のプレハブを作成して多数クローン?してリジッドボデイを飛ばそうと思うけど、 そんな感じの処理でいいのかな?
- 160 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 20:29:29.66 ID:TBz8d+il.net]
- それは流石に色々できるから正解は無い。
それでどうぞ。
- 161 名前:名前は開発中のものです。 [2020/01/19(日) 20:46:35.85 ID:5MKiJb2W.net]
- >>159
そう言うのに手裏剣使うのもアリ?
- 162 名前:名前は開発中のものです。 mailto:sage [2020/01/19(日) 21:15:28.29 ID:EOHxfdla.net]
- >>160
サンキュー、絶賛実装中。 >>161 手裏剣ってなんだ? と思ったらパーティクルシステムのことなのね。 今回はパーティクルは使わないつもり、ってか使ったことない。 爆弾がn秒後に爆発して破片オブジェクトを飛ばすとこまで出来た。 プレイヤーが持ったまま爆発したら、キャラの IK がそのままになるので、 爆弾側からの強制パージが必要だった。
- 163 名前:155 [2020/01/19(日) 21:29:25.22 ID:sNg7suvy.net]
- え、まさかレスがもらえないとは思えませんでした。
消す方法は無いってことでいいですか?
- 164 名前:名前は開発中のものです。 [2020/01/19(日) 23:06:24.48 ID:7w1DRTId.net]
- 無いんじゃね
まぁアセットだからソースいじればできっかもだけど
- 165 名前:155 [2020/01/19(日) 23:16:04.05 ID:sNg7suvy.net]
- そうですか、自分はノートパソコンでやってるんで
scene画面を大きくするという解決方法じゃラチがあかんのです。 うーん、残念です。 皆さんありがとうございました。
- 166 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 04:40:22.99 ID:KMQ3boOi.net]
- 何インチのノート使ってるんだ……?まさかそっちがそもそも小さいとは思わんかったわ
- 167 名前:名前は開発中のものです。 [2020/01/20(月) 06:26:23.40 ID:3GyQd84/.net]
- デュアルディスプレイという選択肢
- 168 名前:155 [2020/01/20(月) 10:27:29.13 ID:PqKPcOnL.net]
- >>166
13インチです^^;スペックは問題無いんですが 画面は小さいの買ってしまってたんで、、 Unityで作りたいゲームがファミコン風だったんで いけそうだと思ってるんです。 話しついでにもうひとつだけ相談させてほしいのですが 自分はファミコン風(256×240)という解像度低いゲームを制作しています。 ドット絵が崩れないように現在すべての画像のPixels Per Unitを「1」にしているんです。 こうすると低解像度(16×16のプレイヤーキャラとか)の画像たちが ゲームビューをいくらズームアップしても崩れないんです。 しかしそのこと?で別の困ったことがあるんですが ピクセル移動を想定した数値を入れると まるで1ミリずつの移動みたいに牛歩ってしまうんです。 (ジャンプもちょびちょびしか動かない)。 本来、16の幅しかないプレイヤー画像なんで 毎フレーム5も入れてやるとスムーズに進むように見えるはずが 現状毎フレーム50を入れてやらないとスムーズに見えません。 なぜ十倍もの値にしないといけないのかわかりません。 ファミコン風のゲーム制作を独学でやろうとしてる状態なんで これが正解なのかもわからず、、、同じ苦労を分かち合える人もおらず 不安なんですが、 16×16の画像に対して、 この何倍もの数値を入れなきゃスムーズな移動にならないのは どうしてでしょうか? Pixels Per Unitを「1」にしたせいだとするなら Pixels Per Unitの値とは本来何を想定して決めるものなのでしょうか。 お手数かけてもうしわけないのですが 本当に困っていまして、そこら辺のこと教えていただけると助かります。
- 169 名前:155 [2020/01/20(月) 10:29:30.00 ID:PqKPcOnL.net]
- >>167
>デュアルディスプレイ それもありですね、、 13インチであまりに支障がある場合は 検討したいと思います。 ありがとうございます。
- 170 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 10:59:54.15 ID:/eP03yfp.net]
- 13インチで開発とか苦行すぎるだろw
- 171 名前:155 [2020/01/20(月) 11:12:39 ID:PqKPcOnL.net]
- >>170
そんなこと凹むこと言わないで(^^;)
- 172 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 11:14:33 ID:3OCzu0qv.net]
- >>168
Pixel per unitは一般的にはタイルのサイズにする。 スーパーマリオで言うとブロック1個分。 そうすると、座標がキリのいい数字になるのでなにかと便利だから。 そして、ドットが崩れないようにレンダリングしたい場合は、package managerからインストールできる2D Pixel Perfectを使うといいかもしれない。
- 173 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 11:33:00.35 ID:hAo3BM7z.net]
- >>168
>Pixels Per Unitの値とは本来何を想定して FPSって分かる? FramePerSecond 秒あたりのフレームだよね じゃPPUは、字の通りでUnitあたりのピクセルの数となる ユニットはScene画面に出てる四角い枠の事、 PPUが通常100になってるけど、これは1unitあたり100ピクセル表示すると意味 ちなに1unitがゲーム内でどんな長さになるかは公式参照、それが動くスピードにも関係する https://docs.unity3d.com/ja/2017.4/Manual/BestPracticeMakingBelievableVisuals1.html で、こんな2つの画像があったとしよう https://i.gyazo.com/03716835d21c56b66700822772f00111.png これをそのまま100で取り込むと見得ないほど小さくなる、1にすればめちゃ大きくなるし、当然2つの画像は違う大きさのままになる これを同じにするためにPPUをそれぞれ16、32にする、すると https://i.gyazo.com/ceddb8fa4ae37c991d362757f64ab4f8.png このように同じ大きさで収まる訳 こんなんで分かるかな?
- 174 名前:名前は開発中のものです。 [2020/01/20(月) 11:37:29.53 ID:w54rhdgo.net]
- にじむ場合はFilterModeをPoint(のFilter)に変更するといいよ
- 175 名前:155 [2020/01/20(月) 12:33:25.92 ID:PqKPcOnL.net]
- >>172
ありがとうございます、>>173のレスも考慮した上で PPUは「1」だったのを「8」にしました。 妥当でしょうか? 実は2D Pixel Perfectもすでに導入したんですが 使い勝手がまだ微妙で、、、詳しく解説してくれてるページが そんな無くて、、 >>173 ありがとうございます。 めちゃくちゃわかりやすく理解が進んだ感じがしました。 一応理解したまとめを報告しますと 1unit=sceneviewに見えるグリッドの1マス PPU=グリッドの1マスに収まるピクセル数 つまり、各画像に設定するPPUは この画像はそのPPUを想定したサイズにする、ということ。 なので各画像のサイズを任意に決めれる。 ということでよろしいでしょうか? >>174 ありがとうございます。 調べてすでにそうしております。
- 176 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 12:35:27.37 ID:vt7bcNpw.net]
- >>170
個人製作で規模小さけりゃ気にならないです。 個人差ですかね。
- 177 名前:155 [2020/01/20(月) 12:36:10.56 ID:PqKPcOnL.net]
- 昨日の質問と違い
ありがたいレスをいくつも頂けて、 泣きそうです。 三人様、ありがとうございます。
- 178 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 12:55:49.34 ID:vt7bcNpw.net]
- 泣きそうだと?中途半端な奴め、泣け!w
- 179 名前:155 [2020/01/20(月) 12:56:15.91 ID:PqKPcOnL.net]
- すみません、調べてもわからず解決してないことが他にもあって、
どなたかこれ原因わかりませんか?(^^; https://download1.getuploader.com/g/zipcodezipcode/220/maincamera.png これは自分のメインカメラのインスペクタなんですが Sizeの項目、どのブログを拝見しても 「想定する画面サイズの半分の数値(画面の横幅が400なら200)を入れましょう」 って書いているのに、自分はここの数値をいじれないんです。 数値を変えても決定すると元の数字(ここでは画像にある7)に戻るんです。 この項目に矢印をあてて左右のドラッグでも数値は動きません。 なぜですか? 皆さん、当たり前のようにここの数値は任意で決めれるみたいに書いてあるので 非常に困惑しております。。。
- 180 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 13:22:23.52 ID:w54rhdgo.net]
- >>179
まっさらな新規のプロジェクトでもダメですか?
- 181 名前:名前は開発中のものです。 [2020/01/20(月) 13:29:27.18 ID:w54rhdgo.net]
- もし180の状態で大丈夫なら、CinemachineBrainが悪さしていると考えられます
当方。2019.2.17f1ですが、まっさらな状態では全く問題なくsize変更できるので そちらの環境問題か、もしかしたらエディターのバージョンによるバグか難しいとこです もしまっさらな状態でも同じ症状なら、エディターのバグも考えられるのでバージョン合わせてこちらでも確認してみますのでバージョン教えてくれると助かります バグと確認できたら、それはもうunityさんに報告するしかないような・・・
- 182 名前:155 [2020/01/20(月) 23:15:35.35 ID:PqKPcOnL.net]
- >>181
レスありがとうございます。 さきほど仕事から帰り確認が遅くなりました。 まさに181さんのご指摘通りでした、、、 「Cinemachine Brain」のチェックを外すと なんと数値が好き放題変更できました。 「悪さしている」とのことですが、、これはどういうことでしょうか Cinemachine Brainはチェックを外したままでいいのでしょうか? それとも、Cinemachine Brainを削除してインストールし直した方がいいとかですか?
- 183 名前:名前は開発中のものです。 mailto:sage [2020/01/20(月) 23:23:06.93 ID:FXjCh/jh.net]
- オート操作にBGMをくっつけて簡単なデモを作ってるのですが毎回毎回微妙に音ズレがしてしまいます
フレームを30に固定しても駄目でした、何か重い操作があるとBGMと同期がとれなくなってしまうみたいですが どうにかして同期を取る方法はないでしょうか?
- 184 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 00:42:25.80 ID:xWdssdmX.net]
- >>183
デモならタイムライン使うのが楽でいいんじゃない? もしくはゲーム時間の進行をaudio sourceのtimeから作るようにすればズレないんじゃないかね
- 185 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 10:33:07.11 ID:4lKB/S8y.net]
- >>182
アセット関連なんで作者に聴くのがいいと思うけど https://blogs.unity3d.com/jp/2018/07/17/cinemachine-for-2d-tips-and-tricks/ とりあえずカメラはViutualCameraの設定を変えるんじゃないかな? 何が原因か突き止めるには、プロジェクトを単純化するに限るので まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるかですね
- 186 名前:155 [2020/01/21(火) 12:35:35.08 ID:MXzB69W0.net]
- >>185
>まっさらなプロジェクトにCinemachineBrainだけ入れてみてどうなるか これを試してみようと思います。 なんにせよ原因を当ててくださったので非常jに助かりました。 ありがとうございます。
- 187 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 16:25:37.81 ID:q2cUKp57.net]
- クォータービューのマップを作ろうと
自分で打ったドットタイル32×32(png)をタイルパレット(isometric)にDDしても表示されないのですが何故ですか? assetsには表示されてます
- 188 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 16:33:51.87 ID:q2cUKp57.net]
- すいません解決しました
- 189 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 18:04:38.26 ID:yyMJ8NI+.net]
- mac版バージョン2018.4.11f1
unityにautosave機能を追加したいんだけど 有志配布のものはすべて2018には対応せず… 良いのない? 二時間頑張ったのがパー、もう嫌だorz
- 190 名前:名前は開発中のものです。 mailto:sage [2020/01/21(火) 18:15:08.15 ID:yyMJ8NI+.net]
- あった
解決しました
- 191 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 11:09:38.22 ID:tfrN0HGP.net]
- \ ,
、 | ヽ / \ | x|ー/‐- 、 r‐、 , -―\l_ /`ヽー==ミx、 \ r勺人__ / / !| \ 丶 l:|;;/;;;;___;;} /:/ / / / 从 {丶 \ :\弌;;;;/ // l:/ / / 〃/l/ヽ \\-‐\:::.....lハ: 〉;;三;;( / / /| | l|-|‐-、\ト ィ==y!:::::/l::| {又又} x%フ广l ー=彡イ:::/::. ,.::|::..::Vィ==ミ 、 \ ノ/! |/‘7¬イ /%゚// |:::l|::::|::|/乂:::::ヾ _, -―1/l|ノ}/ / / //゚// |:::i|::人| l |≧ァ`` ヘ/ | 八 | / / /ヽ_彡 ' 乂l' \/ / ゝ、 \ _,ノ / \/ / / / /丶{ `≧ァーく( _,> '´ / Xニ⊇:′ / /⌒ ¬f工¨| /、 \ ./ r「’| / / ||__」 レ=≦、 / /「| | l| / /l , -―ァ≠¨l | ;/ |\,_/ /}又又i「 - 、 / / /,,;| /,; 〃ヽノ/, |/ ∠_ ‘7¬イ \ / / _ /,,;;;l>'´,,,;;;; / / /^l/ /;;;/ `Y | \ 丶 / / 〈 〈>'´; .;;;;;;;;;;;;;;;;;;;;;;/_/ // /`≧'‐ 、ヽ 〉 丶 | ,':/i ∧_〉,,;;;;;;;;/´ ̄ ̄´ / /ヽ\ `>-'^\ ヽ | /' | ∨,,;;;;;;;;;/ / / o:} } || | l | ,: | \;;;;;;;| /\./ / .// || | | / | | \| \ x/ .// || / /' 爪 弾 く は 荒 ぶ る 調 べ ! キ ュ ア メ ロ デ ィ ! スイートプリキュア♪の北条響
- 192 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 11:41:29.44 ID:fkmqYQ67.net]
- htmlが流行っていた時期、タグのコピペとちょっとした改変でホームページを作ってました
unityド素人でもそんな感じでゲーム作れます?本に書いてある通りの丸コピーではなく コンセプトはスクリプトを書かないゲーム作りです!
- 193 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 12:04:57.58 ID:Gjke/PAp.net]
- 無理
- 194 名前:名前は開発中のものです。 [2020/01/22(水) 16:38:52 ID:jAdrPsCn.net]
- 2020でブループリントみたいなやつ入ってくるんじゃなかったっけ
- 195 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 20:26:41.16 ID:FnFWF1+H.net]
- ブループリントはほぼスクリプトなんだわ…
関数がノードにパッケージングされてるだけでやってる事は変わらん
- 196 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 22:53:26.09 ID:r+2nxT98.net]
- UniRx 使い始めたら、Awake()、Start() の中に処理が集中するんだけど、
そもそもゲーム開発ではメソッド毎のテストなんての書かない感じ? てか Unity 開発では ユニットテストとかのテストFWはない? Visual Studio のクラスビューでメソッドが Awake()、Start() しかない スクリプトが増えてきて不安になる…
- 197 名前:名前は開発中のものです。 [2020/01/22(水) 23:20:39.00 ID:6KrHfY+K.net]
- Test Runnerと呼ばれる機能がUnityにはあります
ぐぐっただけなので内容までは知らん
- 198 名前:名前は開発中のものです。 mailto:sage [2020/01/22(水) 23:41:51.51 ID:9P6fyKWd.net]
- UniRxって何が良いの?
jQueryみたいなもんでGCが致命的になるゲーム開発だと地雷でしかないと勝手に思ってるけど
- 199 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 00:09:52.21 ID:BeWKcfCr.net]
- >>197
ありがとう、自分でも探してみたけど、Unity Test Runner が 公式にあるみたいなんで試してみる。 >>198 むしろ自分が初心者だからこそ UniRx が凄く便利だと感じる。 例えば、Transform の位置情報を加減することと、 Rigidbody に力を加える動きを書こうすると、 それぞれ、Update() と FixedUpdate() に分散して書くと思けど、 UniRx なら Start() の中に両方書けるので分かりやすい。 また、普通にプレイヤーコントローラのスクリプトとか書いたら、 Update() と FixedUpdate() の中身が "if 分岐” だらけになると推測するけど、 UniRx なら、コードから "if 分岐” がなくなりスッキリ分かりやすくなった。 でも確かにGCパフォーマンスは心配。
- 200 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 00:35:20.23 ID:BeWKcfCr.net]
- あと UniRx だと、何秒後に とか、何フレ後に とか、何回とか、ゲームに必要な処理が簡単に書ける。
おそらく、まったくのプログラム初心者は UniRx から始めた方が良いとさえ思える。 自分は既に書いてしまった膨大なコードを UniRx を使用するコードにリファクタしつつあるけど、辛い… 誰か最初に教えといてくれよと思った。 まあ Unity初心者の個人的な感想だけどね。
- 201 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 01:04:15.17 ID:k7QW6u8C.net]
- >>199
UniRxのTriggersをメインで使ってるってことね
- 202 名前:名前は開発中のものです。 mailto:safe [2020/01/23(木) 06:19:45.63 ID:xz19b8uw.net]
- こんな早朝に人いるかな?
Rigidbody2D.AddForceを使ってジャンプさせているんだけど rigidbody2D.AddForce(Vector2.up * 数値);って感じで。 しかしこれではジャンプ力(高さ?頂点?)を決めてやれるだけで ジャンプそのもののスピードはいじれない。 ぽい〜んってジャンプじゃなくて ヒュンッとしたジャンプをさせたいんですが良い方法あります? C++時代なら毎フレームに加える数値を増やせばよかっただけなんですよねえ
- 203 名前:名前は開発中のものです。 mailto:sage [2020/01/23(Thu) 08:02:49 ID:BeWKcfCr.net]
- >>202
C++時代みたいが良ければ Update() で Transform に毎フレームに加える数値を増やせば出来るよ。 AddForce は
- 204 名前:名前は開発中のものです。 [2020/01/23(Thu) 08:04:53 ID:BeWKcfCr.net]
- AddForce では加える力を決めれるだけで、それで高さ?頂点?を決めれるわけじゃない。
- 205 名前:名前は開発中のものです。 mailto:sage [2020/01/23(Thu) 08:32:54 ID:BeWKcfCr.net]
- あと多分 質問の状況からすると rigidbody.velocity += Vector3.up + 調整値 で、
FixedUpdate() で、物理フレーム毎に調整値をいじる方が望みの動作を得られる気がする。 でも、それが物理挙動かと言われれば違う気がするし、それなら素直に Transform の数値増減でいいじゃんとも思う。 この辺りどうなんだろうね? rigidbody.AddForce だけでまともなゲームのジャンプになるの?
- 206 名前:名前は開発中のものです。 mailto:sage [2020/01/23(Thu) 08:43:29 ID:sYrsRPW1.net]
- ジャンプの仕方が目標みたいだから、rigidbodyを極めてもよし、transformでコントロールしてもよし。
好きな方で。 addforceなら、velocityに、加えてgravity値をコントロールするとか試行錯誤だね。がんばれ。
- 207 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 09:05:35.69 ID:o31+m3nu.net]
- キャラクターとかはキネマティックにして物理エンジンに任せずに自分で動かした方が思った通りの動きになるんだよね
- 208 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 10:00:04.83 ID:KLj1RF1a.net]
- 物理計算サイトが検算するのに捗る
自分でスプレッドシートつくる方が身につくけど
- 209 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 13:04:24.91 ID:rlCEa5FQ.net]
- >>202
単純にジャンプの速度を上げたいってだけなら、重力を大きくするか、 特定のキャラクターだけそうしたいならRigidbodyのGravityScaleを大きくするとかかな。ただしこれだと落下速度も速くなっちゃうけど。 一時的に物理計算を無視して完全に制御したいなら、transformよりも Rigidbody.MovePositionを使って動かす方がいいかも。 これなら周りのオブジェクトに物理的な影響を与えながら移動できるし、 fixedupdate内で書くことになるので 「普段は物理無視したいけど爆風に巻き込まれた時は物理に従う」 みたいな実装が楽だよ。
- 210 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 17:48:04.91 ID:9HsMMURI.net]
- おっぱいも物理エンジンよりも手で揺らした方がイキイキしている気がする
- 211 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 17:51:59.32 ID:sYrsRPW1.net]
- それは物理エンジンが…あ、いやなんでもない。
- 212 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 20:32:46.84 ID:o/nrz+aB.net]
- AnimationControler みたくステートマシーンをグラフィカルに編集できるアセットってないっすかね?
AnimationControler と StateMachineBehaviour がありゃステートマシンでやるようなこと何でもできるじゃないのって思ってたけど、 Time.timeScale=0 したら setTrigger しても状態遷移しないし、 やっぱりステートマシンのすべてを AnimationControler に任せるのは無理があるのかなとか思って。 なければ State パターン でハードコーディングすべきなのかなやっぱり。
- 213 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 20:40:25.80 ID:o31+m3nu.net]
- >>212
animator.updateMode = AnimatorUpdateMode.UnscaledTime;
- 214 名前:名前は開発中のものです。 mailto:sage [2020/01/23(木) 21:43:00.61 ID:o/nrz+aB.net]
- >>213 うお、そんなオプションが…。解決しました。感謝です。
- 215 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 04:03:03.22 ID:+Fsi074W.net]
- すみません、変な質問なんですが Input.GetAxisRaw("Horizontal")
この処理をキーを離さずに一度リセットして認識し直させる方法はありませんか? 、、というのも「ある状況」になるとキーを押しっぱなしのままだと Input.GetAxisRaw("Horizontal")が認識されない状態になるバグがあり、 一度でもキーを放して押し直すとちゃんと認識されるようになるんです。 その原因がどうにもわからないので、その状況になれば毎度リセットさせたいな、と。 具体的に言いますと プレイヤーが死んだら即定位置からリスタートする状況のゲームがあって 移動方法はInput.GetAxisRaw("Horizontal")からキー入力を受け取るんですが プレイヤーが死んだ時に例えば右キーを押しっぱなし(「+1」を受け取り続ける)で死んだとして 押していた右キーをそのまま押したままリスタートを向かえますと 開始直後右入力を認識してない(Input.GetAxisRaw("Horizontal")で受け取る値は0のまま)状態となってしまうんです。 ですが一度キーを放して押し直すと「+1」を受け取るのです。 これだけ聞くとよくあるソースミスと思われるでしょうが、ちょっと Input.GetAxisRawのバグっぽいんですよね。 とりあえず、プレイヤーが死んでリスタートされる時に 例えばvoid Start()の中に(Input.GetAxisRaw("Horizontal")を 取得しなおす処理を書いてやりたいんです。 これが不思議なことに(Input.GetAxisRaw("Horizontal")を書いただけじゃ 取得しなおしてくれないんですよね、、、、
- 216 名前:名前は開発中のものです。 [2020/01/24(金) 07:02:28.39 ID:9g9ZzaxQ.net]
- バグっぽいと言うのはどこの情報ですか?
- 217 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 07:54:41 ID:1mzH9O5r.net]
- >>215
普通に考えてリスタートの処理の仕方に問題があるかと。 ゲームオーバーで最初に戻るにしても、インプット関数としては、ゲームオーバーしようがしまいが関係ない。なら、リスタートまでに何か影響のある処理を入れてしまっている事が考えられる。 例えば、start()に取得し直しとか書いてるけど、startをまた呼び出してるの?すまん、私はそんな表記はした事ないから異常に見えました。
- 218 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 12:14:44.83 ID:JiuRt8jn.net]
- プレイヤーオブジェクトをDestroyしてる説
- 219 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 16:44:42.21 ID:YxoFqWNA.net]
- おこなの?
- 220 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 21:18:19.49 ID:lHO70wOG.net]
- 質問です
編集ソフト間ではテクスチャやマテリアルをFBXに同梱するのは珍しくありませんが、Unity上ではあまり見かけません 単にUnityではFBX内のデータを編集できないから邪魔という理由かなと思っていますが、他にも理由があるのでしょうか?
- 221 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 21:48:57.86 ID:+Fsi074W.net]
- >>217
説明が難しいんですが頑張りますね >普通に考えてリスタートの処理の仕方に問題がある 確かにその通りです でも別にまだ作り始めですから複雑なことしておらず Input.GetAxisRaw("Horizontal")で左右移動 Input.GetKey("space")でジャンプ。 バグが起きるのは方向キーを押しっぱなしで一度でもジャンプしたあとに (その方向キーを押しっぱなしのまま)死亡してリスタート後もその方向キーを 押しっぱなしのままでいると Input.GetAxisRaw("Horizontal")が認識されない状態になるというものです。 あと、>>218さんの言う通り、 プレイヤーオブジェクトをDestroyしたあとリスタートしています。 ちなみに方向キーは押しっぱなしでも一度もジャンプせずに死ぬと その方向キーを押しっぱなしのままリスタートしても Input.GetAxisRaw("Horizontal")が認識され 開始後キャラクターは押している方向に進むんです。 つまり Input.GetAxisRaw("Horizontal")が入力状態のまま Input.GetKey("space")を入力し、 Input.GetAxisRaw("Horizontal")の入力を解除しないまま リスタートすると 押しっぱなしのInput.GetAxisRaw("Horizontal")は仕事をしてくれなくなる 状況です。 (で、一度入力を放すと正常になる)
- 222 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 21:50:33.57 ID:+Fsi074W.net]
- ちなみにプレイヤーが死んだ時、プレイヤー作成時に
Input.GetKeyとInput.GetAxisRaw を記載したりはしておりません。 そもそもInput.GetAxisRaw("Horizontal")の入力を阻止することなんて こちらがどうこうできるものでは無いはずなんです で、例えば int x = Input.GetAxisRaw("Horizontal")としてやって、 xに入る値の動きをデバッグして見ていますが 死ぬ前は右が押されている間「1」が入り続けるんですが 死んだあとDestroyされ右キー押し続けている状態でも「0」が入ってきます で、そのあとリスタートするわけですが 死ぬ前から押し続けていた右キー押してる間はずっと0のままなんですよ これはおかしいと思いませんか?
- 223 名前:名前は開発中のものです。 [2020/01/24(金) 22:41:41.98 ID:9g9ZzaxQ.net]
- いやそのスクリプトがデストロイしてるオブジェクトについてたらダメじゃね
って話しじゃないか
- 224 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:07:02.42 ID:rtAyfksW.net]
- リスタートを実装しているなら、わざわざDestroyしなくてもいいんでは?と思うけど
仮にUnityの不具合で instaniateされたゲームオブジェクトが継続中のHorizontalを受け付けないのだとしても、Destroyせず最初のプレイヤーのゲームオブジェクトを使い回せばいいんでは
- 225 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:07:28.97 ID:+Fsi074W.net]
- >>223
おっしゃりたいことはわかります。 もしそういう仕様(デストロイしたオブジェクトに書いてた場合は一度放さないと機能しない)、 なら ジャンプをせずに(Input.GetKeyを使わずに) 死んでリスタートした場合は 押しっぱなしのInput.GetAxisRaw("Horizontal")が 開始後そのまま機能してるのがおかしいと思いませんか? 要はジャンプしてから死んでリスタートした場合だけ機能しないんです。
- 226 名前:名前は開発中のものです。 [2020/01/24(金) 23:18:30.20 ID:9g9ZzaxQ.net]
- >>225
リスタートすると言うことは新たなオブジェクトだよね 新しいスクリプトなんだから動いて当然だと思うけど なんなら明日簡単なサンプル作って検証してみようかね
- 227 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:18:50.47 ID:+Fsi074W.net]
- >>224さんのレスも考慮させて頂いて
一度デストロイ方式を辞めてみましたが やはり同じ症状でした。
- 228 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:24:37.56 ID:7QzIJzpr.net]
- >>225
リスタートってどんな処理してるの? シーンの読み込み直し? まったく関係ないゲームオブジェクトのUpdateで監視しててもそうなるの?
- 229 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:27:42.92 ID:+Fsi074W.net]
- むむ、これは、、本当にバグなのかもしれません。
今、限りなくソースをそぎ落としていってるんですが それでもその症状が出ます。 ほんと、プレイヤーのスクリプトでやってることは x = Input.GetAxisRaw("Horizontal"); if(x==0){ //止まる処理 } else if(x>0){ //右へ移動処理 } else if(x<0){ //左へ移動処理 } if(Input.GetKeyDown("space") ){ ジャンプ処理 } だけなんです。 リスタート後、xにすでに値が入らなくなるので 自分の移動処理やその他のスクリプトは関係無いはずです。
- 230 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:30:48.57 ID:+Fsi074W.net]
- >>228
シーンの読み込み直しです。 void RestarScene(){ Scene thisScene = SceneManager.GetActiveScene(); SceneManager.LoadScene(thisScene.name); }
- 231 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:37:49.39 ID:+Fsi074W.net]
- これは、、、、今
大変なことが発覚しました。。。
- 232 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:39:22.19 ID:YxoFqWNA.net]
- >>221
1. 方向キー(←押しっ放し) 2. スペース 3. スタート これで最初の方向キーの入力が消えるってことなら、 安物のキーボードはそこまでの同時入力に対応していないからなとしか Unityの問題でなくパソコンの仕様だよ
- 233 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:40:43.33 ID:+Fsi074W.net]
- このバグの発動条件が
左右キーを押しっぱなし中に「ジャンプした」あと死亡したらと思っていたんですが 違いました。 なんと、左右キーを押しっぱなし中に 「キーボードの他のボタン(どれでも)を押した」あと 死亡したらでした!!! なんと、ゲームで使ってないキーを押しても、この症状が出ます!!! これはどういうことでしょうか???????????
- 234 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:42:33.68 ID:rtAyfksW.net]
- シーンを移動するとInputがリセットされる件
で検索 url貼ろうとするとNG食らうので
- 235 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:45:43.21 ID:+Fsi074W.net]
- >>232
>これで最初の方向キーの入力が消えるってことなら いや、私の説明を誤解してます。 2. スペース の後も「1. 方向キー(←押しっ放し)」は生きてます。 そのままその方向に歩いていくし、放せば止まります。 ただ、1.を押しっぱなしのままで歩いて敵に当たったりして死亡したあと 再スタート後に利かなく(Input.GetAxisRawが左右を認識しない)なってるんです。 押しっぱなしのままなら、です。 説明が難しい。。。
- 236 名前:名前は開発中のものです。 mailto:sage [2020/01/24(金) 23:55:45 ID:+Fsi074W.net]
- >>234
検索して拝見しましたが 非常に勉強になるブログでした。 しかし自分のケースと少し違う気がしますがどうですか? なぜなら、自分のケースは 確かに二つ目のキー入力をしますが その後、その二つ目を放して、シーンを移動します。 つまりシーンをまたぐ時はキー入力は1つなんです。 そのブログのケースと違う気がするのですがどうですか? あと、もひとつ言いますと ゲットキーの設定関係なく、 二つ目のキーはパソコンのどのボタンでも 押したら発生します。。。 つまり、 Input.GetAxisRaw("Horizontal") で右方向キーを入力したまま パソコンの「w」だの「s」だのどこでも押したあと (それこそ"Horizontal"では受け付けてない上キーとかでも) 右方向キーを入力したまま死亡して シーンをやり直すと 右方向キーを入力が利いてない状態でスタートするんです。
- 237 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 00:44:13.23 ID:lrP57LvS.net]
- これはもう熟練者様に確認してもらいたいので
シンプルにしたものをパッケージ化しました。 これで症状を確認していただけませんでしょうか。 https://ux.getuploader.com/zipcodezipcode/download/221 まずは ゲーム開始して、右キーを押しっぱなしで死んでください。 リスタートしても右キーを押しっぱなしです。 そしたらリスタートしてもプレイヤーは右に進むはずです。 そりゃそうです、右キーを押しているからです。 次に、 右キーを押しっぱなしで死ぬのは一緒ですが その途中に、パソコンのキーボードをどれかひとつ、押してください。 そっちは押しっぱなしでは無く、一度押すだけです。 この間も右キーの方は押しっぱなしです。 で、そのまま死んでください。 すると、リスタート後、プレイヤーは先ほどとは違い 右に進まないんです。右を押している限り、移動はできません。 右を押しながらジャンプはできますが、右を押している限り、移動はできません。 この症状の原因を知りたいです。 👀 Rock54: Caution(BBR-MD5:669e095291445c5e5f700f06dfd84fd2)
- 238 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 00:47:53.82 ID:lrP57LvS.net]
- ちなみにバージョンは2018.4.11f1です
- 239 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 09:41:49.47 ID:6e7MKbrk.net]
- とりあえずもっとシンプルにして修正したよ
https://thuploader.orz.hm/miniup/?mode=edit&id=6302 恐らく原因はLoadSceneでしょ、シーンロードするという事はそれまで居たシーンは リセットされると思う、だから入力が利かなくなるんじゃないかな とりあえず同シーンリスタートしたら問題なく出来た それから、コライダーとか整理した方がいいかな同じオブジェクトに二つ付いてたり 場所かぶっていたり、なんか無駄がおおかった
- 240 名前:名前は開発中のものです。 [2020/01/25(土) 09:43:38.51 ID:6e7MKbrk.net]
- あ、ちなみに制作は
2019.2.17f1で取り込み確認、パッケージ化 2019.2.5f1でも確認 2018年バージョンは当方もうすててたので、未確認 でも特にバージョン違いの事してないから問題ないと思います
- 241 名前:名前は開発中のものです。 [2020/01/25(土) 09:53:45.45 ID:6e7MKbrk.net]
- >>293
>恐らく原因はLoadSceneでしょ、シーンロードするという事は すまん、これ原因究明してないから、これが原因かどうか不明なので ちょい出かけるからまた戻ったらシーン展開でも症状確認してみるわ
- 242 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 10:51:31.73 ID:lrP57LvS.net]
- >>239
ありがとうございます 修正感謝します 確認してみます! >シーン展開でも症状確認してみるわ はい!もちろん修正されたものを見て自分でも原因を考えてみますが ぜひとも宜しくお願いします。
- 243 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 11:51:30.29 ID:52iKK3mn.net]
- 優しいスレ
- 244 名前:241 mailto:sage [2020/01/25(土) 13:15:17.01 ID:AAVfnYWp.net]
- https://i.gyazo.com/37810d926641f9d4739c15f70e690d53.png
こんな感じでリスタートでLoadSceneしてみたら、症状でましたね LoadSceneAsyncでも同様なので、やはりシーンロードするとバッファが詰まるのでしょかね とりあえず途中経過です なぜLoadSceneでキー2つ目押でなるのかについてはなんか大変そうだな根本原因掴むのは
- 245 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 13:30:42.22 ID:4hPFEDML.net]
- >>234 の記事がそのまんま答えじゃない?
この記事によると「シーン遷移時にInputはリセットされる」というのが仕様で 今回の場合「シーン読み込みしてるのに横移動入力が拾えてた」というのがむしろバグらしい で、ちょっと試してみたけど Inputを拾うオブジェクトをDontDestroyOnLoadにして破棄しないようにしても 普通にシーン遷移を行うとInputはリセットされてしまうようなので どうしてもシーン読み直しで、かつInputを継続して拾いたいなら >>234 の記事にあるようにLoadSceneでLoadSceneMode.Additiveで読み込むしかなさそう。 ただ、もし自分だったら ・シーンの読み込み直しなしでリスタートを実装する ・リスタート時に方向キーから指が離れるような演出にする ・気にしない のどれかにすると思う
- 246 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 14:50:49.41 ID:rO5N4tZX.net]
- シーンごとのリセットは
アクションゲームなら必須に近いし ゲーム制作に支障が出そうな仕様だなぁ
- 247 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 20:13:13 ID:lrP57LvS.net]
- >>244
>やはりシーンロードするとバッファが詰まるのでしょかね >>245 >シーンの読み込み直しなしでリスタートを実装する その様子だとロックマン系のアクションゲームとかでよくある プレイヤーが一画面分ずつ画面切り替え(切り替わり後、敵が定位置から発生)で 移動する場面などのときに 方向レバーの入力がいちいち途切れて スムーズなキャラの移動みたいなんができないって ことですよね? まだ試してないのでなんとも言えませんが、、、 というかscene遷移って それこそタイトル画面からゲーム画面にいったりするところでも使いますし シーン遷移のたびいちいち方向レバーからの入力を途切れさせるって仕様自体 どうなんでしょうか、、、なんかテンポ悪い気がするんですが、、 これだけ痒いところに手がとどくUnityにおいて GetAxisRawに対してscene遷移時の細かな設定ができないとは、、・ できそうなもんですが、、、
- 248 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 20:13:46 ID:lrP57LvS.net]
- で、今パッと思いついたのはグローバルな変数に
シーン切替前の瞬間の方向キーの値を確保しておいて 切り替え後の最初だけのその方向キーの値を 入れ込んでやるって感じにしてやれば、、どうでしょう?? とりあえずそういうノリで一度打開できるか試してみます。
- 249 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 20:16:17 ID:lrP57LvS.net]
- >>241さん、修正パッケージありがとうございます
原因究明はともかく修正したソースを見せていただき なるほどーって感じでこちらは大変勉強になりました。
- 250 名前:名前は開発中のものです。 mailto:sage [2020/01/25(土) 20:16:32 ID:AC7xcaw6.net]
- /i/|ii!//|!/!i/´i/ .|i |/ノ i\i!゙、:iヽ|:::| ヽ 'i ! ヾi |'!ヽ::::||::::::/:::::::::::::::::::::ヽ
i i 川i!ハ/" _! | │ 川 ヾ:ii ゙'∨ | ゙ヾiヽヽ;||:::::i'::::::::::::::::::::::::: ノ ノ/リ,,,,,,二三テ=''" ヽノ ル |ノノヽヾ ノ 、,,,ノ,、 iヽ:::||:::::i':::::::::::::::::::::::::::: /  ̄ ´~~゙'''' ゙''‐- ..,, ,, ‐' `゙ヾミッ、,, ヽ::|::::/:::::::::::::::::::::::::::: ,,イ| i' i" `'‐=' `'|/i!:::::i:::::::::::::::::::::::: i | :::::::ヽ::::ヽ::::::ヾ:: ゙、 l 〃::::: i//::::ハ::::::::::::::::::i::: i i \\\\\ヽ ) ヽ ′′′ / /:::::/:::::::::::::::::::|:::: ! | i ,,ィノ < :::: : /:::::/:::::::::::::::::::/:::: i! i i! /i/ ,r''''‐y'''.;、 \ /:::::/:::::/::::::::::::/::::: ゙i! | i /⌒' 、 Y:::::::::''::;;;;'.;.Y'⌒゙i /::::::/::::::/::::::::::::/::::/i i i ゙! ん、,,__ヽノ:::::::::::::::::::;;;;;{,__,,,r'' /:::::::/::::::/::::::::::::/::::// ゙、ii! ゙| i ノ ゝ;;;:::::::::::::::::::;ノ 。 `i //:::::/:::::/::::::::::::/::::::/::: ヾ!トl ゙i? i 。l '゛.. ‐ー:::::i | //::::::/::::::/::::::/:::/:::::i!:::::: iiミ! ハ i l ,,,,::: :::;;;;;...{ ° ゙、 //::::://::::/::::::/:::::/::::i::::ii:: i!ヾ!i ゙、! , ' |::: ::::ヽ ..} |゙ヽ......,.,.,.,,,///://::://::::/::::://::::i::::リ:: !ヽヾi i゙、 ___,,,/ }:: : ;;;::: ::::::::} レWノ'レi/、//::/:://:/:::/::/:::ハ:i |::
|

|