【ゲームエンジン】Unity初心者質問スレBuild1

■ このスレッドは過去ログ倉庫に格納されています
1名前は開発中のものです。
垢版 |
2018/06/06(水) 10:45:19.46ID:3pAIyBsg
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。 プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

■注意事項
「アセットを買えば」「チュートリアルやれ」等禁止、初心者の質問疑問に初心者が答えるスレ、ググれじゃなく何のキーワードでググったらいいかを書く

次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
 http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
 http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
 http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
 http://unity3d.com/jp/unity/faq
・MSDN
 http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

関連スレ
【3Dゲームエンジン】Unity質問スレッド35
https://mevius.5ch.net/test/read.cgi/gamedev/1523771570/
2018/08/04(土) 20:34:14.45ID:Ter6X2ca
>>340
良いか悪いか。
仕様に基づいて、一番最適な設計を行って実装するのがプログラマだから、察するに現時点の貴方のレベルからすると、342さんも言ってるように、とにかく実装経験を積むことが近道になると思う。
2018/08/04(土) 20:47:00.20ID:s81iLtQ9
>>341
でもさ、公式のマニュアルに
https://docs.unity3d.com/ja/current/Manual/Prefabs.html
単に、プレハブアセットをプロジェクトビューからシーンビューにドラッグするだけで、プレハブのインスタンスを作成します。
プレハブのインスタンスとして作成されたオブジェクトは、ヒエラルキービューで青色の文字として表示されます(通常のオブジェクトは黒の文字で表示されます)。

て書いてあるのよ。
プレハブはシアライズされたファイルで、そのシリアライズされたファイルからインスタンスを作成するんだからデシアライズじゃないの?Unityではデシアライズとよばないの?
2018/08/04(土) 23:08:11.76ID:+VI6JuUR
>>336
君はスレタイ読めないのかな?
2018/08/04(土) 23:10:17.86ID:+VI6JuUR
>>344
呼び方とかどうでもいいのよ、動けば
議論したいなら他行くか、自分でスレ建ててそっちでやってね
2018/08/05(日) 00:07:41.56ID:iaL/bkNc
弟子realize

低能特有の神経質な悪臭が半端ないな
なんなんだこのゴミ
2018/08/05(日) 00:15:41.23ID:9xb2C49y
>>347
そのゴミが建てたスレに来て何言ってんの
349312
垢版 |
2018/08/05(日) 01:31:28.80ID:CyFJgm7j
>>334
とても勉強になる回答内容に感激しました。
私はその昔ながらのmain()ループのやり方で生きて来たクチなので
Unityのマニュアルやチュートリアルに目を通し(熟読はしていませんが、
非常に困惑しているところだったんです。
ステップアップ先生の話を聞いた限り、仮にUnityでFCマリオを制作するとしても、
昔ながらのmain()ループのやり方をUnityで実行するより、
本来はUnityモデルを覚えて作った方が"ラク"だよ、ということですよね?
例えば当たり判定〜のくだりは確かにそっちの方が確実にラクなのが理解できますし。
それとも「いや、FCマリオくらいのゲームしか作る気ないなら、
この先Unityを覚えて制作せずとも、>>333のUnityの中で擬似main()ループで作る方が断然ラクだよ」とかですか?

というのもmain()ループのやり方が染み付いてしまっている私自体、
ゲームの処理には中心となるがループを置いて、
そこからすべての流れを構想してしまうオツムなんです。
Unityモデルは全オブジェクトが個々で処理され、バラバラに存在している感じ?というか
各オブジェクトや処理に非常にふあふあしていると感じました。
もちろん自分のUnity理解度がまだ足りないせいなのは重々承知してますが
アセットやツールで解決するそれぞれの処理がブラックボックスすぎて、
初心者としてはそれらの応用が難しい。
アニメーション描画も、正直配列に各画像を入れ込んでフレームで回す方がラクなのに、
AnimationEventを使ってメモリを動かしてイベントの制作をしなければならない?のも余計ややこしく感じます。
結局、ソースだけで解決できないエンジンなので例えFCマリオであっても
Unityを覚えないと作れないことにちょっと面食らっています。
それらもステップアップ先生のおっしゃる通り
3Dや中〜大規模のゲーム作成も想定されたUnityだからこその仕様なのだと理解しましたが
どうなんでしょうか、私が2Dオンリーのゲーム制作目的であっても
Unityモデルで制作方法を覚えた方があとあと必ずラクになりますか?
変な相談ですみません。
350まあ、人それぞれやな先生
垢版 |
2018/08/05(日) 02:07:48.11ID:bE8Y0pws
まあ、人それぞれやな
2018/08/05(日) 03:32:42.76ID:IZ2haYgx
自分のやり方でやってみれば
unityでも十分できると思うよ
一元管理のほうがコード書きやすいし
チュートリアルみたいなコードは手練れてないと無理じゃね
2018/08/05(日) 04:35:33.53ID:PSh59YKG
>>349
mainループ式は、シングルスレッドとかシングルタスク的な動きを連想させるけど
Unity式は、マルチスレッドとかマルチタスクとか非同期的みたいな動きだから慣れていないと取っつきにくいだろうね。
どちらかというと、Webのサーバークライアントプログラムの扱いに似てるかもね。
これは慣れだよ。
最初は四苦八苦かもしれないけど
旧式でもゲームを作れる技量があるのなら、触っている内に必ず非同期的な作りにも慣れる。
慣れるとメリットの多さに気づける。

Unity式のやり方を覚えた方が絶対に得だよ。
作れる物の幅も広がるしステップアップに繋がる。
そしてソースが非常に簡略化する時が多い。
例えば動きを実現するのにmainループ型では30行必要だった処理が1行で済むなんてこともあるよ。

最初から全てをUnity式のやり方にする必要はなくて
慣れてるmainループ式で作り、Unity式にしたほうが便利そうな部分だけそっちにする感じでいいんじゃないかな?
実際のゲーム作りも、ほとんどが「main()ループ式 + Unity式のハイブリット型」になると思う。
main()ループ式だけとか、Unity式だけという作りにはならないと思うよ。
他の人はどうなのかは知らないけど自分の場合は必ずゲーム全体を管理するmainループ的なスクリプトが存在するよ。

mainループはゲーム全体の状態をコントロール(ゲーム中なのか?ゲームオーバーなのか?などの状態)したり、
ラジコンを動かすプロポ代わりとなり、各GameObjectに実装した関数へ「待機」とか「アクションAの動きを実行せよ」とか指示をだして操作してるようなイメージ。
各GameObjectには渡された引数で色々な動作をするように記述したC#スクリプトをアタッチさせておき、指示を受けて動くロボット的なイメージ。

人によっては"GameMain"に相当する部分を"GameMgr(ゲームマネージャー)"みたいな名称にしてるかもね。
2018/08/05(日) 07:32:27.22ID:7w+AZmvn
>>346
俺には初心者がそれなりにマニュアル読みつつ、独自解釈のエラそうな知ったかを追い出そうとしてるように見えるけど?
2018/08/05(日) 09:16:54.78ID:1CW9jcvb
さすがお盆休みだなぁ。
2018/08/05(日) 09:22:07.75ID:1CW9jcvb
>>348
初心者スレなんていう公共的なスレタイ付けといて言うセリフじゃないぞ。個人的なスレにしたいならもっとスレタイ考えろ。
初心者スレはお前が立てなくてももっと普通の奴が立てるからでしゃばんな。
2018/08/05(日) 11:17:58.00ID:9xb2C49y
>>355
夏やなぁ
通常質問スレが36間でいっても初心者スレ建たなかったんだよなぁ
2018/08/05(日) 11:56:29.79ID:s2ZX6Afg
ネトゲじゃないんだから雑談や初心者質問スレなんか需要無いんだよ。
次は復帰者スレでも建てるの?
2018/08/05(日) 15:59:20.45ID:Zg/i6Juh
ヘックスマップ作りたいんだけど
こういうマップチップてプレハブ並べて作るの?
359312
垢版 |
2018/08/05(日) 16:09:57.60ID:CyFJgm7j
>>352
昔ながらのゲーム制作方法を交えてアドバイスして頂けること
非常にわかりやすく助かります。ありがたいです。
そのため、どうしてもこの機会にアドバイスを受けたいのですが
シンプルに説明しますと、私のやってきたことは
ゲームマネージャーを作り、そこですべてを把握させ、
各オブジェクトは属性を振り、配列に入れ、属性同士でコリジョン判定。
真になった場合に相手を見てそれぞれの処理をする
(厳密には、プレイヤーなどは専用にコリジョン判定を回したり)。
各マップチップとの判定も同じで、ブロックごとに属性を振り配列に入れ込んで判定します。
シーン遷移についてもシーンマネージャーを作り、マネージャーより命令がくれば指定のシーンに飛ぶ、それだけです。
サウンドもシーン遷移の要領でサウンドマネージャーを作り、命令がくれば切り替える感じです(SEは各オブジェクト内で鳴らします)。
もちろんこれらはご存知かと思いますが、ソースは多かれどこんなシンプルなものでしたので
今はUnityの方が面倒に感じて、参っております。
理解度が低いのはもちろん、ご指摘を受け、全部Unityのやり方でやろうとしていたせいだと思いますし、
確認してみたチュートリアルが昔ながらの作成方法では無い説明ばかりなのも弊害のひとつですし、
あとネットで探す場合3Dの方の情報とこんがらがっているのも弊害といえます。

私の様な時代錯誤なゲーム制作者が、初Unityで試しにFCマリオみたいな
2Dアクションゲーム(もちろん簡単なレベルに落とします)を制作してみるとして、
どこの処理を「Unity式のハイブリット型」を選ぶのがベターなんでしょうか。
古きも新しきも理解し、両方の比較ができるステップアップ先生
どうか教えて頂けませんでしょうか。
360名前は開発中のものです。
垢版 |
2018/08/05(日) 19:46:20.43ID:HJil90QJ
オープンワールド的な大きなterrainにするために(見えるように)キャラとかオブジェクトのScaleを0.1にするとかお前ら的にはアリ?ナシ?
terrain分割系のアセット使うのは無しの方向で
terrain自体のサイズは実質2000x2000くらいが限界なんだよなぁ
2018/08/05(日) 22:20:17.60ID:1CW9jcvb
何ここ、壮大な自演スレ?
2018/08/05(日) 22:41:53.80ID:9xb2C49y
>>361
そだよ
だから、でしゃばんな
2018/08/05(日) 23:12:55.61ID:9xb2C49y
>>358
六角形のスプライト用意してタイルマップでいけるんじゃないかな
2018/08/05(日) 23:27:14.09ID:vRj4lIfD
>>358
この質問お願いします
2018/08/05(日) 23:28:36.82ID:UInf7wuX
>>358
アセットがあればヘックスマップも作れると思いますよ
2018/08/06(月) 01:10:06.69ID:shQcteCQ
>>363
>>365
ありがとう
調べてみます
2018/08/06(月) 01:30:05.16ID:b1K9g2Lf
>>366
最新のUnityになってからかどうかわかりませんが
自分のUnity2018.2.2f1の環境だと、2D ObjectにHexagonal TileMap
というのがあって
こんな感じ
https://i.gyazo.com/b0fc26516bf806e40e323a15c1314ba0.png
https://i.gyazo.com/72ac988887f2427e0d21ed7f5348fd3b.png
ちょっと配置しただけなので隙間とかあるけど、調整すればいけるんじゃないかな
2018/08/06(月) 05:22:26.33ID:rSQN2TxT
>>359
説明を見てる限りだと結構Unity式で出来てるように感じるよ?
"属性"の部分を"レイヤー機能"に置き換えれそうなくらいじゃないかな。
既にレイヤー機能を使っているようなら気にしないでくださいな。

自分もUnity式はまだまだ発展途上であり完璧に理解してるわけではありませんよ。
またそれが面白いのです。

FCマリオを作るとしたら自分は以下をUnity式でやると思います
・当たり判定全般はUnityのコライダーとレイヤー機能に任せる(プレイヤー⇔マップ、プレイヤー⇔アイテム、プレイヤー⇔敵、敵⇔敵、敵⇔マップ)
・Sceneファイル1つにつき1ステージとファイルを分けて、ステージ遷移はSceneファイルの変更で行いたい
・Unityエディッタ上で直接マップ構成や敵の配置をやってしまい、別途BGエディッター見たいなものを使用しない
・つまりmainループ式だと行う必要があった背景などの画面スクロール処理は一切不要。カメラ移動に任せる。
これ以外はmainループ式でやるかな?
当たり判定部分は物理エンジンを使うか否かで多少変わってくるかもです。
実際に作ってみるとこのように行かない場面も多々出てくるかもしれませんが。
うまくまとめればUnityエディッタ=ちょっと複雑なマリオメーカー的な気分で作れちゃうかもしれませんね。
2018/08/06(月) 07:24:48.60ID:kCqrej/c
画像付きで解説優しい!
2018.2にアップデートしたらヘックスタイルマップが追加されました
物凄くタイミングが良かった
ありがとうございます!
2018/08/06(月) 20:49:47.90ID:elMC6huJ
>>359
横からだが、俺自身も昔ながらのゲーム開発からUnity開発へ移行した口だけど、結局のところ昔ながらのことをしないとパフォーマンス稼げないことが多々出てくるから、どっちのやり方も知っていいとこ取りをするのがベストだと思っている

あとチュートリアルはお作法というより機能や出来ることの説明がメインだから、設計という意味ではあまり参考にならないかと
371名前は開発中のものです。
垢版 |
2018/08/06(月) 23:48:58.31ID:pjnXk9Sd
>>368
ありがとうございます!
モチベーションが上がって来ました。
それを参考に私も頑張ってみます。

>>370
>機能や出来ることの説明がメインだから

そうなんですよ、Unityモデルでの昔ながらの作成方法な
設計の参考になるものが皆無なんで、困ってます。
2018/08/07(火) 05:33:02.72ID:qUQ4iHYs
シーンに空のオブジェクト置いてfixedupdateを
mainループとみなしてそこからすべて操作するだけ
2018/08/07(火) 07:23:29.46ID:7twjrWhc
unityでそのままの方法でできるんだから悩む必要ないぞ
スクリプトをプレイヤーにつけるか敵につけるか空のオブジェクトにつけるかの違いだから
チュートリアルみたいに分散させるとどこに書いたかわからなくなって混乱の元になるし
一箇所に集めて配列管理でいいんじゃね
374名前は開発中のものです。
垢版 |
2018/08/07(火) 11:30:26.00ID:fUL+ini3
エディタ拡張やってる人いますか?
inspectorに何かを表示したりそこにオブジェクトを生成するような簡単な処理はできるようになったんだけど、そこから先のやり方が全くわからない
例えば、既存のterrainの上部のボタンみたいなものを作って独自の機能を自作したりシーン上でクリック等の操作をできるようにしたりする方法教えてください
2018/08/07(火) 15:03:44.07ID:XJ39evIU
>>374
http://anchan828.github.io/editor-manual/web/index.html
2018/08/07(火) 15:17:47.36ID:XJ39evIU
>>374
スマホだとわかりにくいけど、目次からweb版(無料)が見られるよ。探せなければpcで。それだけできてるなら6.10、17.2あたり見ればヒントになると思うよ。
377名前は開発中のものです。
垢版 |
2018/08/07(火) 17:12:34.80ID:fUL+ini3
>>376
ありがとう
ボタン設置やハンドルの表示は分かるんだけど、例えばシーン上のどこかをクリックしたらその座標にオブジェクトを生成するとして、それだけなら出来るんだけど他のオブジェクトをクリックしたときに、そのオブジェクトを選択したことになってしまうんです
terrainで編集中だとシーン上で他のオブジェクトをクリックしたとしても、そのオブジェクトが選択されたりしないよね?
まずは、シーン上でオブジェクトをクリックしても選択しないようにしたい
単純に「シーン上でオブジェクトを選択不可にする方法」ってのはぐぐったら出てきたんだけど、スクリプト込の記事がないんだよね

あとは、例えばterrainならterrainDataいじってterrainの新しい機能を作りたいと思ってるんですけどね
2018/08/07(火) 19:10:53.89ID:qu27Ep4Q
https://i.imgur.com/amXVxen.jpg
https://i.imgur.com/twb7p6A.jpg
https://i.imgur.com/sPHv2uG.jpg
https://i.imgur.com/PcvppLs.jpg

ど素人質問&画像直撮りですみません
マウスクリックでスプライトのアニメーションを変えるスクリプトらしいんですがイマイチよく分かりません
一番最初、「Animator」で記述すると「」がc#では使えないと出たり
その横のanimeDataが「フィールド'PlayerMove.animeData'は割り当てられません」と出ます
初歩的なことで申し訳ないのですが教えていただきたいです
2018/08/07(火) 20:07:03.30ID:iOrv/KJ+
>>378
解説本はその解説本が対応しているバージョンのUnityで行いましょう
2018/08/07(火) 20:21:33.60ID:3KKwqbLg
>>378
一番最初というと
[SerializeField]「Animator」 animeData;
という部分ですね
恐らくで申し訳ないがこれは
animeDataというAnimator型の変数を定義していると思うので

[SerializeField]
Animator animeData;
でいいかと思います
その次のfloat定義も
float minPoint = -2; てなってますし。
381名前は開発中のものです。
垢版 |
2018/08/07(火) 20:32:48.91ID:4Dd8RRWT
>>372
すみません、空オブジェクトのUpdateでは無く、
FixedUpdateである方が良い理由を教えてください。
2018/08/07(火) 21:09:14.11ID:qu27Ep4Q
>>379
>>380
回答ありがとうございます
参考にしつつ手順の漏れがないか最初からやり直してみます
2018/08/07(火) 21:19:26.85ID:7twjrWhc
[SerializeField]ってことはインスペクタでanimeDataを指定しないといけない
たぶんぴーたんをドラッグドロップするんだろう
2018/08/07(火) 21:33:22.06ID:iXlByqKN
>>381
フレームレート60に設定するとfixedupdateは秒間60回呼ばれる
updateは何回呼ばれるか決まってない
昔のゲームプログラムはフレームレート固定だったので
昔風に書くならfixedupdateがおすすめ
2018/08/07(火) 21:55:56.43ID:iXlByqKN
>>381
https://youtu.be/Ju4ILgpuVHE?t=836
この動画を見るとfixedupdateがよくわかる
2018/08/07(火) 21:57:34.60ID:XJ39evIU
>>381
大体固定だからじゃない?でも多分両方必要だとおもうよ。
2018/08/07(火) 23:36:06.98ID:0e3nA05E
>>384
でも、描画フレームとは同期できないから使い勝手悪いぞ
素直にUpdate使う方が楽
2018/08/07(火) 23:41:08.87ID:0e3nA05E
>>384
もうひとつ付け加えると、FixedUpdateはスレッドで動いてるわけじゃないから、Update(描画フレーム)が処理落ちすると、1フレームに複数回呼ばれるし、その逆もまたしかりなので、結構めんどくさいよ
2018/08/07(火) 23:56:38.80ID:FHXvAGCS
>>381
Updateで昔ながらの60fpsをやるなら、まずコードのどこかでApplication.targetFrameRateに60を設定する

メニューからQuality SettingsのVSync CountをDon’t Syncにする

同じくメニューからTime ManagerのMaximum Allowed Timestepを1/60にする

これでほぼほぼUpdateが60fpsになるはず
390名前は開発中のものです。
垢版 |
2018/08/08(水) 04:20:11.17ID:ROW+RPaT
>>387 >>388
え、、、じゃあUpdateの方がいいんですかね
fixedupdateはPhysics(Physics2D)系以外を呼ぶなって書いてもありました。

>>389
じゃあUpdateの方がいいんですかね

どうすればいいのか頭が混乱してます。
とりあえず、作ってみないと、、
簡単なものから組み立ててみます。
2018/08/08(水) 05:50:12.43ID:NV2Fm/zi
unityでこれって正解はそうそうないからな
みんな自分がうまく行く方法を教えるから意見がぶつかり合う
んで一番割りを食うのはそれを見て学ぶ初心者ってことだなw
2018/08/08(水) 06:49:31.17ID:tYWBz4xV
専門学校でゲームプログラムやってて、卒業後から最近まで業務システムやってたって人がいるんだけど、昔ゲームプログラムやった人はUnityは結構混乱するらしいな。
そのおっさんはゲームと思わない事がコツとか言ってる。
Unityでやるなら昔の事は忘れた方がいいみたいな気がするわ。
2018/08/08(水) 07:13:12.39ID:Fn8D11Bz
Unityがデフォで提供する可変フレームレートの仕組みのところで、そんなにやり方が分散するとは思えんな

https://docs.unity3d.com/Manual/ExecutionOrder.html
↑ここの下の方の流れ図を見てみ
FixUpdateはUpdateよりも実行される頻度が多い(FixUpdateの所で矢印がぐるぐる回っている)
Updateは描画(Rendering)前に呼ばれる

Updateには描画時のみに必要な処理を書く。つまり、描画コマ落ち時には呼ばなくても良い処理を書く。例えば条件に応じて色合いを変えたりとか。
Updateが固定フレームで呼ばれるようにするのは愚の骨頂だぜ
公式が何のためにわざわざUpdateを分離してくれたと思ってるんだw

>>392
上のWebページの図の流れは、FixedUpdateがフレーム当たり何回も呼ばれる所以外、昔からのゲームの流れそのものなんだが
2018/08/08(水) 07:13:57.49ID:Fn8D11Bz
×FixUpdate
○FixedUpdate
><
2018/08/08(水) 07:28:28.35ID:tYWBz4xV
>>393
やだなぁ、そんなに上から目線で言わなくても、俺よりみんなの方が出来る人達なのはわかってるって。
昔ながらだと、メモリ配置どうなってんの?から始まるみたいだし。
396名前は開発中のものです。
垢版 |
2018/08/08(水) 07:41:24.90ID:dtdVOklI
393が言ってる通り、updateら辺はお決まりだべさ
updateの頻度に関してはupdateのが多い場合がある、ってか、60fps行ってたら、デフォのfixed updateより遥かに頻度は高い。
問題は用法で、 updateはベストエフォートで実施されるから時間が適当。
例えフレームレート固定にしても、結構適当で1秒辺り処理される回数も結構適当。
一方fixed updateはバチっと固定秒を監視してるから固定秒間隔で実施出来る。んで、一秒辺りに処理される回数は決まってる。
1秒辺り何回やっても良い事務処理は updateで。
1秒辺り変化して欲しい量の加算や力の積み上げに関する処理はfixed updateでやると正確な回数処理されるって所かな。まあ、addforceとpositionの加算はfixed updateでやっとけばok
2018/08/08(水) 09:45:47.13ID:IIyUr7UN
>>396
嘘教えるなって!
Updateの処理が重いとfixedUpdateは待たされるから固定秒間隔なんかで来ない
じゃあ、fixedUpdateがなんのためにあるかっていったら物理演算のためだよ
Unityに入ってる物理エンジンはある時点でのスナップショットで判定してるから経過時間が等間隔じゃないと正しく判定できないから擬似的にその状況を作ってくれてるだけ
398名前は開発中のものです。
垢版 |
2018/08/08(水) 10:38:49.37ID:ROW+RPaT
うおおおおおおおおおおおおおおおおお
、、、結局、誰の認識が正しいのですか!?
2018/08/08(水) 10:42:47.13ID:aE2PPNXc
>>397
俺ら初心者スレの猛者達がFixedUpdateを遅らせるような事する訳ないだろ。
2018/08/08(水) 10:52:05.94ID:sLCgEPxI
>>398
固定フレームレートでやりたいなら、自分で時間見てやりなさい、ってとこかな。Unity公式で紹介されてたなんかの弾幕ゲーはそうやってたよ。
2018/08/08(水) 11:02:40.16ID:GGilygSJ
>>398
知識披露したいだけの奴らだから無視してればいい
バグがでて必要になったら覚えりゃいいだけ
2018/08/08(水) 11:20:11.17ID:IIyUr7UN
>>399
実際にUpdateが処理落ちしてるときにFixedUpdateが呼ばれる間隔を計測してみ
等間隔なんかで来てないから

あと余談だけど、昔のゲームはVシンクに同期して作ってるのが多いから処理落ちするとスローモーションみたいになるけど、FixedUpdateだとフレームスキップしたようになる
2018/08/08(水) 11:54:42.55ID:kbto8gV2
>>398
手っ取り早く、>>389でいいよ。
他のやり方は、他の仕様との兼ね合いとか考慮する事もあるので。
2018/08/08(水) 11:56:20.94ID:3sTNJ/OU
>>398
習うより慣れろ精神で、まず作りましょ
んで何か不具合、またわからないことが出てきたら、具体的に聴けばいいかと
2018/08/08(水) 12:01:33.22ID:u0RnB40v
操作に対して移動を優先するか
遅くしてもグラフィックを描画するかはゲームの設計思想の問題
どっちが正解とかない
2018/08/09(木) 08:13:03.25ID:e+UL/kpA
この方の最新ツイート(8/8付)動画の40秒以降のぐるぐる回りながら形が戻っていく動き、どうやって作るんですか?

https://twitter.com/Makan_Gilani
https://twitter.com/5chan_nel (5ch newer account)
407名前は開発中のものです。
垢版 |
2018/08/09(木) 08:34:57.79ID:3chL1kmW
>>406
パーティクルで、発生位置がメッシュかな。パーティクルはオブジェクトな。
透明なスキンメッシュのオブジェクトがアニメしてて、メッシュの頂点から発生させてるって所か。
最近だとvelocityに回転つけられるんで、それも合わせりゃいいかと
2018/08/09(木) 09:06:55.46ID:PMvEwNv2
>>406
Houdiniでも使ったんかと思ったがProcedural Animationsだけで作ったと書いてある
スクリプトでtransformの制御だけで作ったようだね
恐れ入るよw
2018/08/09(木) 22:10:26.06ID:IWEFStf3
>>407
>>408
ありがとうございます、やれるだけやってみます。
410名前は開発中のものです。
垢版 |
2018/08/10(金) 20:49:30.40ID:FesHIFfD
Raycastについて質問です。
rayを飛ばして当たったオブジェクトの情報を取得することは出来たのですが、ヒットしない場合、指定したY座標に到達した時のXZ座標を取得するにはどうすればいいですか?
例として高い位置(動的)から斜め下にrayを飛ばしてYが0の地点のXとZを取得したいです。
2018/08/10(金) 21:49:03.65ID:bTEggd1E
>>410
さくっと考えてみた

d = レイの始点.y ÷ レイの向き.y
p = レイの始点 + レイの向き × -d

これで出来たりしないかな?
2018/08/10(金) 22:05:26.37ID:FyfoKJKo
でっかい地面、四角をおく。
レイと似たようなほっそ長ーい、オブジェクトを用意してそれをカメラの子供にして、z軸をレイと同じ方向で座標調整。
あとは、このオブジェと地面の交点をコリジョンのコンタクトポイントで取得すれば出来上がり。
2018/08/10(金) 22:37:17.53ID:/+Zaq+IX
3次元空間の方程式で解けるんじゃないかね
高校数学だな
覚えてないが
2018/08/10(金) 22:40:39.62ID:bTEggd1E
まあ、もともとレイキャスト使ってるわけだし、素直に平べったいでかいボックスコライダー敷いて、それとの交点拾った方が楽かもね
2018/08/10(金) 23:03:35.77ID:/+Zaq+IX
現在地(X0,Y0,Z0) 直線の方向(l,m,n)
X=X0-l*Y0/m
Z=Z0-n*Y0/m
あってるかどうかは知らん
2018/08/10(金) 23:14:06.24ID:AiF2ZNWr
>>415
411と一緒じゃね?
2018/08/10(金) 23:42:56.79ID:/+Zaq+IX
411の式がなにを書いているのかよく理解できない
418410
垢版 |
2018/08/10(金) 23:45:08.91ID:0EV31+6P
410ですありがとうございます
最初412のようなこと考えたんですが、とてつもなく大きくしないとヒットしない場合が出てくるのでやめて、タンジェント使って実現できました
ですが、逆にy0座標を入れた変数の方を基準として操作してもう1つの方も動くようにしましたごめんなさい
419名前は開発中のものです。
垢版 |
2018/08/11(土) 03:36:04.42ID:w1AtvJPI
Plane.Raycastとかはどう?
420名前は開発中のものです。
垢版 |
2018/08/13(月) 01:22:28.89ID:hVLDMUb5
スクリプトから生成したオブジェクトにアタッチしてるスクリプトのstart()内でtransform.positionに値を入れるのが効かなくて、update()内でやると効くというような現象が起たのでググったら1件バクという記事があったんですが、そんなバグありますか?
スクリプトの読み込み順は生成元を優先にしてます
解決法わかる方いましたらよろしくおねがいします
2018/08/13(月) 02:35:54.68ID:h8PoyRSx
まずスクリプトを書けよ
2018/08/13(月) 03:53:13.25ID:J+8KZvgr
startのあとにどっかで上書きしてるんでしょ
423名前は開発中のものです。
垢版 |
2018/08/13(月) 04:28:58.13ID:SqAPnHqn
生成元のInstantiateの直後に生成元でそのオブジェクトのtransform.positionに入れると効くので上書きはしてないと思うんですよね
両方それぞれのメソッドでDebug.Log入れて見てみたんですけど、ファイル実行の優先順位を設定してても、その中のメソッドの処理のタイミングがバラバラで上手くいってない気がしました
がまだ解決はできてません
2018/08/13(月) 04:44:09.64ID:nyffuRFH
バグという記事のurlよければください
再現できるか確認してみたいと思います
2018/08/13(月) 05:27:12.92ID:h8PoyRSx
抽象的なこと書かれても誰もどうすることもできんぞ
自分で解決しろとしか
2018/08/13(月) 08:56:25.52ID:Z2oDd47O
Startの綴りが間違ってるとかそんなんだったら笑う
2018/08/13(月) 11:48:28.22ID:de0S85/j
俺は親オブジェクト指定してなくてローカル座標のつもりがワールド座標になってたりその逆だったりならたまにある。
2018/08/13(月) 12:58:04.92ID:SGRWJO+v
・unityで、コンビニで買えるプリペイドで購入する方法ありますか?
・DynamicBone ですが、フリー版で似た機能を使えるプラグインとかありますか?
2018/08/13(月) 16:08:51.42ID:CIIJAnZJ
ありますん
2018/08/15(水) 14:53:35.61ID:e1D8QaXW
>>428
https://panora.tokyo/61196/
431名前は開発中のものです。
垢版 |
2018/08/16(木) 08:17:34.80ID:Rx2cVzvB
2000x2000とかの大きなterrainだと、遠くの山が描写されず、近づくと表示されて気持ち悪いんですが、描写される距離を設定で変えたりできますか?
木や草を描写する距離などはterrainの設定から出来るんですが、terrainそのものの描写する距離を変える設定が見つかりません
2018/08/16(木) 09:49:16.59ID:37AyipWF
テレインのインスペクターの、far、miniだったか?の値を変える。
2018/08/16(木) 09:49:59.45ID:37AyipWF
farが遠くが、どこまで見えるかの値。
434名前は開発中のものです。
垢版 |
2018/08/16(木) 15:57:21.93ID:Rx2cVzvB
テレインのインスペクターって、インスペクター上の歯車マーク(terrain settings)のところですよね?
そのfarがないんですよね
unityのバージョンは20182.2f1です
2018/08/16(木) 19:22:49.41ID:37AyipWF
>>434
カメラのインスペクターだった。
2018/08/17(金) 18:04:21.11ID:/P5tUkj4
剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて
2018/08/17(金) 20:11:32.08ID:ni8AyJER
出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?
2018/08/17(金) 21:06:12.39ID:jjg/SVIP
コライダーって出したり引っ込めたりするもんなのか?
2018/08/17(金) 21:13:36.99ID:53TbFepx
コライダを消せばいいやん。(false)
440436
垢版 |
2018/08/17(金) 22:51:55.49ID:Cl208u38
プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour {

void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);

Debug.Log("hit Object");

}

}
441436
垢版 |
2018/08/17(金) 22:52:26.80ID:Cl208u38
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます

public GameObject AtariHantei;
void Update()
{

//アタック

if (Input.GetMouseButtonDown(1))
{

this.animator.SetTrigger("AttackTrigger"); //アニメ再生

audioSource.PlayOneShot(AttackSE, volumeSE); //AttackSE

AtariHantei.SetActive(true); //コライダon


}
2018/08/17(金) 23:27:49.09ID:jjg/SVIP
詳しくはわからんけど根本的にやり方間違ってそうな気がするな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況