【ゲームエンジン】Unity初心者質問スレBuild1at GAMEDEV
【ゲームエンジン】Unity初心者質問スレBuild1 - 暇つぶし2ch253:名前は開発中のものです。
18/07/21 02:10:26.26 p4e4X/of.net
しっかり考えてちゃんとしたもの作って出さないと
GooglePlayは簡単には回収できないよ

254:名前は開発中のものです。
18/07/21 04:47:48.99 sXvBSliU.net
個人アプリ開発者の9割はその年間2500円も稼げないけどね

255:名前は開発中のものです。
18/07/21 08:02:15.02 PiBb+geA.net
そもそも自称開発者は、アプリを完成させ、リリースすることすら・・・

256:名前は開発中のものです。
18/07/21 10:33:31.64 Wf3Uoe2X.net
それはお前が出来てないだけ。皆そうだと思っていれば幸せなんだろうな

257:名前は開発中のものです。
18/07/21 18:00:40.90 EggmhhQD.net
ソーシャルゲームが流行る前はしょぼい物作って�


258:澀ooglePlayのリストに出るから余裕で回収できたけどね。 今はリリースされたことすら知られないから…。



259:名前は開発中のものです。
18/07/26 04:46:43.92 kNQ25ubs.net
始めたばっかだけどunityで適当に画像入れてsave projectして、入り直したら画像じゃなくて何か別の物に変換されててlayer編集が効かなくて心折れそう、誰か助けてクレメンス

260:弟子
18/07/26 05:42:19.49 fev1xFrc.net
さすがにそれじゃエスパーさえわからんで
なにがSSとか無いのん?

261:名前は開発中のものです。
18/07/26 07:19:48.83 H78k3yRK.net
左が初期の画像、変わったのが右側って感じ
うまく貼れてなかったらスマソ
URLリンク(imepic.jp)

262:弟子
18/07/26 07:32:26.89 fev1xFrc.net
>>249
右みるとトランスフォームが子供になってるようだけど
手順としては、シーンに画像を張って、セーブしただけですか?
もし可能ならプロジェクトごとアップできます?

263:名前は開発中のものです。
18/07/26 08:05:18.50 1mgpo5S/.net
>>250
そうです、貼ってセーブしただけです。
プロジェクトは仕事から帰ったら揚げます(社畜)
本体の設定に問題ある感じですかね?

264:弟子
18/07/26 21:17:51.66 fev1xFrc.net
一応画像をアセットにドラッグし、そのごヒエラルキにドラッグして
セーブした画面です
URLリンク(i.gyazo.com)
特に変化しないようです
自分はUnity2017.3.1f1を使ってます

265:名前は開発中のものです。
18/07/27 05:07:03.51 u+ao3S/Q.net
Unity 2018.2を使っているのですがunityの設定はどこでできますか?
ちなみに画像のバージョンはUnity 4.2.0 です
URLリンク(i.imgur.com)

266:名前は開発中のものです。
18/07/27 05:10:40.64 u+ao3S/Q.net
いい忘れてました自分はWindowsを使っています

267:弟子
18/07/27 09:03:28.71 +juP2VsI.net
>>253
>unityの設定はどこでできますか?
Unityの何の設定でしょうか?
>いい忘れてました自分はWindows
画像はどうみてもMacですが、人の画像でしょうか?

268:名前は開発中のものです。
18/07/27 09:27:51.68 u+ao3S/Q.net
>>253
解決しました
>>255
再生中に周りの色を変える設定をしようとしたのですがeditのところでできました

269:名前は開発中のものです。
18/07/27 11:27:25.50 PHzeq30F.net
>>255
その程度もエスパーできないのかよ

270:弟子
18/07/27 13:05:22.56 +juP2VsI.net
>>256
無事に出来て良かったです

271:名前は開発中のものです。
18/07/27 23:23:17.09 xl4o2aTS.net
>>252
結局本体再DLして解決しました
付き合ってくれてありがとうございます…

272:弟子
18/07/27 23:33:40.12 +juP2VsI.net
>>259
無事に解決してなによりです!
また何かあればお気軽に!

273:名前は開発中のものです。
18/08/02 14:10:27.16 8NS2VTtG.net
すみません、Unity独特なプレハブについて
どういうもので、具体的にはどういう使い方ができるのか、
わかりやすく教えてくれませんか?
これではわかりません。
URLリンク(unity3d-com-jp-learn-tutorials.s3.amazonaws.com)

274:名前は開発中のものです。
18/08/02 14:26:45.67 YQXK/fNI.net
例えばシューティングなどで同じ敵を100体出したいとする
シーンに1体作ってあとはコピペで99体作ったとする
作ってる最中にこの敵に変更を加えたくなってきたとする
例えばタグをEnemyに変えたいとか
そうするとこの場合だと100体全てを修正しないといけなくなる
一方プレハブから100体作った場合だと
プレハブ本体を修正するだけでシーン中の100体が修正される
とかね

275:THE・シンプル先生
18/08/02 14:50:49.16 MarJrTds.net
>>261
プレハブはクローンだと思えばいい。
本体(オリジナルとも言う)のコピー品さ。
利点は大量に画面に表示した時に処理落ち(スロー再生状態)になりづらい。
ワンピース海賊無双というゲームをパクって作った場合
プレハブを使って作ると同じ物が作れるが
プレハブを使わないで作ると処理落ちが激しく遊べる状態ではない。

276:名前は開発中のものです。
18/08/02 15:11:17.76 8NS2VTtG.net
>>262 >>263
レスありがとうございます。
directX、C++からUnityに乗り換えた者なんですが
プレハブってのは、
敵のクラスをインスタンスしたものだというイメージでいいんでしょうか?
それとも、敵のクラスを定義したもので
あとでシーンの中でプレハブをインスタンス化させるのでしょうか?

277:THE・シンプル先生
18/08/02 20:25:19.20 MarJrTds.net
>>264
敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。
作成タイミングは自由。
シーンの中で動的にプレハブを作成する事も可能。
エディット画面で事前にプレハブを作成して配置して置く事も可能。

278:名前は開発中のものです。
18/08/02 22:16:19.04 IKwT233P.net
>敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK。
こんなに堂々と嘘をつく奴も珍しいなw
素直にマニュアル見とけよ
URLリンク(docs.unity3d.com)

279:名前は開発中のものです。
18/08/03 00:07:19.01 YqXFTdeb.net
クラスかインスタンスかの二択なら
クラスだろ

280:THE・シンプル先生
18/08/03 04:00:21.11 gwkzOX1I.net
>>266
説明に間違いなし。
名前の通り初心者にシンプルに説明するのが目的で細かい説明は全てカットしてる。
初心者には自信を持って
『敵味方関係なくあらゆるクラスをインスタンス化したものがフレハブという認識でOK』
この説明を推す。

281:THE・ステップアップ先生
18/08/03 04:11:45.63 gwkzOX1I.net
>>266-267
中級者以上の知識がある人達には
ゲームオブジェクト自体もクラスと説明すれば分かってもらえるかと。
ソースコード上で行うインスタンス生成を
Unity的な言葉に直したものがプレハブと呼ぶにすぎない。
相当細かく説明すると厳密には違うかもしれないけどね。

282:名前は開発中のものです。
18/08/03 07:25:47.78 UvI2T87H.net
Instantiateなんてもんがわざわざあのになんでインスタンスにこだわるん?
プログラミングの知識あるならシーンに設置したオブジェクトがインスタンスって方がわかりやすいぞ
シーン内に個別に設置(インスタンス)したオブジェクトの値を変更してもプレハブ(クラス)には影響がないが
プレハブ(クラス)の値を変更したら個別に設置(インスタンス)したものにも影響がある
インスタンスからクラスに無理やり影響を与えるのがApply

283:名前は開発中のものです。
18/08/03 07:26:59.37 /74BHbXn.net
ほーんじゃあプレハブからクローンしたゲームオブジェクトはなんなんですかね
あれこそインスタンスじゃないんですかね

284:名前は開発中のものです。
18/08/03 08:42:46.93 Z5jah2NB.net
プレハブはプレハブでいいじゃないか。いちいち既知の概念に置き換えないと理解できないの?

285:名前は開発中のものです。
18/08/03 08:57:39.72 8Qhd0PCF.net
再利用しやすくするものくらいの認識でいいんじゃね?

286:名前は開発中のものです。
18/08/03 09:13:10.67 Tb6IvIdd.net
博識のある方達は、やはり呼び名とか拘らないといけないんですね大変ですね。
私なんかは、インスタンスとか未だに理解していません、できてません。
ただスクリプトで複製したり、親子入れ替えたり消したり、ここに置いときゃいい、ぐらいの知識で十分作れてますから、初心者レベルは楽で良いですよ。

287:名前は開発中のものです。
18/08/03 09:29:06.72 Z5jah2NB.net
あえて言うとプレハブはインスタンスのスナップショットな。instntiateはクラスのインスタンス化とはまた違った仕組みだし。無理矢理他言語の経験持ち込まずに、素直にマニュアル読んだが利口。

288:名前は開発中のものです。
18/08/03


289:10:05:56.53 ID:Z5jah2NB.net



290:名前は開発中のものです。
18/08/03 10:12:09.26 Z5jah2NB.net
>>268
惜しい、インスタンスを保存したもの、だったら合格点。

291:名前は開発中のものです。
18/08/03 10:52:55.93 +s2o5GnK.net
盛り上がってますね。
プレファブはテンプレート化されたファイルですよ。
クラスをインスタンス化したものと言うのはメモリ展開されたクラスです。不正解。
プレファブはキャッシュされる前のファイルです。
まあ、キャッシュして書き換える事も出来ますが、どこぞのボッキングが、アセット書き変わった言って嘆いてましたんで、注意が必要です。

292:弟子
18/08/03 11:30:14.45 M8FCr8g3.net
ここ初心者用に建てたスレなんで議論とか他でやって

293:名前は開発中のものです。
18/08/03 11:58:41.31 udevAjot.net
初心者は議論なんかするなってか
そりゃ永遠に初心者やな

294:名前は開発中のものです。
18/08/03 13:15:54.04 +vZr26Ym.net
>>279
お前には自分で立てた専用スレがあんだろ。あ、ここもでしたね、失礼しました。

295:名前は開発中のものです。
18/08/03 13:27:05.32 +vZr26Ym.net
匿名かつ初心者ばっかりだからこそ出来る、このいい加減な議論。楽しいじゃないか。

296:名前は開発中のものです。
18/08/03 14:04:55.92 lMgrnDzV.net
まあ、弟子さんも十分初心者なんで、議論みて行って下さいな。
アレですよ?ここで、出てきたキーワード、分からなかったら、ググると良いですよ~

297:弟子
18/08/03 14:08:09.19 M8FCr8g3.net
スレチなマウンター共は
【質問以外なんでもOK】Unity雑談スレッドその1
スレリンク(gamedev板)
で遊んであげるからここにこないでね、迷惑だから

298:名前は開発中のものです。
18/08/03 14:10:34.37 KvMBRbxy.net
昨日からの酷い流れを見て感じたけど
初心者同士で馴れ合ってても百害あって一利なし
正しい知識を習得するのが大事
調べ物は公式マニュアル見る習慣を
最低限公式チュートリアルの初級(英語版)はやったほうがいい

299:名前は開発中のものです。
18/08/03 14:27:57.12 lMgrnDzV.net
紙パンチに興味持てんわ
285さんのは正論ですね。
でも超概要として、こういうやり合い見るのも有りじゃないすかね。
自分も知らない事結構出てくるし。

300:名前は開発中のものです。
18/08/03 15:13:38.43 euFxSDg2.net
ここはクソコテ弟子が初心者相手にマウント取るために立てたスレなんで
初心者以外が質問、回答すると通報されてしまいますよ。

301:名前は開発中のものです。
18/08/03 17:18:58.52 XE8vIJkM.net
決まったobjectの当たり判定内にいるかつボタンを押したときのスクリプトが組めません、、&&を使えばいいという知識でやったところコンパイルエラーが出てしまいました。名前の一致などは確認済みですこんなタイミングですが教えてもらえると助かります。、、

302:名前は開発中のものです。
18/08/03 17:26:14.84 Tb6IvIdd.net
エラー文とその行を貼れ。
まずはそれからだ。テンプレ

303:名前は開発中のものです。
18/08/03 17:32:30.72 XE8vIJkM.net
if (collision.gameobject.name == "Perfect")&& (Input.GetKeyDown(KeyCode.LeftShift));
{
Destroy(gameobject);
}
の部分です。エラーは多いんですが
・`UnityEngine.Collision' does not contain a definition for `gameobject' and no extension method `gameobject' of type `UnityEngine.Collision' could be found. Are you missing an assembly reference?
・Only assignment, call, increment, decrement, await, and new object expressions can be used as a statement
・The name `gameobject' does not exist in the current context です

304:名前は開発中のものです。
18/08/03 17:36:02.42 Tb6IvIdd.net
collision.gameobject.name をログ出力できるかやってみ?

305:名前は開発中のものです。
18/08/03 17:37:26.76 Tb6IvIdd.net
ちな、&&は全角じゃないよね?

306:名前は開発中のものです。
18/08/03 17:43:20.14 XE8vIJkM.net
ログ出力がなにかいまいちわかってなくて、、すみません。
&&は半角にしてもビジュアルスタジオ上で無効ですと書かれてしまいます

307:名前は開発中のものです。
18/08/03 17:52:35.95 y6ZFjsSR.net
Unityの「シリアライズ」というのは、インスペクタみたいなのに表示できるようにする為などに、データをUnity内部機構が読み込める独自様式に変換するという意味だろ
プレハブはあくまで型と初期値の定義であって、プレビュー時や実行時にシーンに生成されて初めてメモリ上に占有領域が確保されて情報が記憶される(メモリ上オブジェクトとしてインスタンス化される)
だからUnityプロジェクト中のヒエラル木も、厳密には型と初期値の定義でしかなく、インスタンス化されたメモリ上オブジェクトではない
Unityゲームオブジェクトやプレハブのインスタンス化は、Unity内部様式向けにシリアライズされた型と初期値の定義の情報に基づいて「デシリアライズ」することで行われる
あと日本語の解説ページは分かりにくい
さらにあと「スナップショット」は通常、システム全体の一時的状態を指すから、システムの構成要素(プレハブ)に使うのはニュアンスがずれてる

308:名前は開発中のものです。
18/08/03 17:53:09.72 s8alTO1O.net
>>293
if文の最後にセミコロンあるよね。
それをまず消してみて。

309:名前は開発中のものです。
18/08/03 17:54:46.53 XE8vIJkM.net
消しました。特に変化なしです

310:名前は開発中のものです。
18/08/03 17:56:40.41 s8alTO1O.net
>>294
俺もそれ思った。スナップショットだとvmを思い浮かべてしまうわ。
ストレージの技術感のが高いよな

311:名前は開発中のものです。
18/08/03 19:05:27.40 Tb6IvIdd.net
>>290
Debug.Log (collision.gameobject.name);
で、何が表示されるか?

312:名前は開発中のものです。
18/08/03 19:12:48.91 Tb6IvIdd.net
>>290
if( (collision.gameobject.name =="Perfect")&&(Input.GetKeyDown(KeyCode.LeftShift)))
{
Destroy(gameobject);
}
こうかな?

313:名前は開発中のものです。
18/08/03 20:24:49.31 XE8vIJkM.net
>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね?
いただいたプログラム打ちましたが駄目でした、、一応全文載せてみます
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class judgePerfect : MonoBehaviour
{
void Update()
{
if ((collision.gameobject.name == "Perfect") && (Input.GetKeyDown(KeyCode.LeftShift)))
{
Destroy(gameobject);
}
}
}

314:名前は開発中のものです。
18/08/03 20:25:58.25 BofVo0Am.net
gameObjectじゃないの?

315:名前は開発中のものです。
18/08/03 20:28:13.30 Tb6IvIdd.net
>>300
>>>299 単純にDebug.Log (collision.gameobject.name); を空のスクリプトに打てばいいんすかね?
で、これで表示された内容は?

316:名前は開発中のものです。
18/08/03 20:33:47.70 Tb6IvIdd.net
>>301
これですね。

317:名前は開発中のものです。
18/08/03 20:38:06.67 XE8vIJkM.net
このプログラムに関する項目じゃないオブジェクトの詳細のようなものが追加されました

318:名前は開発中のものです。
18/08/03 20:46:54.61 BofVo0Am.net
collisionが唐突にでてきてるけど根本的に間違ってるんじゃね
OnCollisionEnterもつかってないし

319:名前は開発中のものです。
18/08/03 20:56:53.50 g4hffkLt.net
>>294
プレハブが型と初期値の定義なんてどこに書いてあるよwww日本語と英語には書いてないから、あとは俺が読めない韓国語か?
gameObjectとコンポーネントのSerialized dataだって書いてあんだろ。

320:名前は開発中のものです。
18/08/03 21:11:35.02 g4hffkLt.net
>>305
俺もそれ思った。

321:名前は開発中のものです。
18/08/03 21:13:54.44 y6ZFjsSR.net
ohiohiまた威勢のいい○○が沸いてきやがった
すぐ韓国とか言い出す糖質ッぷりには失笑を禁じえないな
>Serialized data
そのdataの中身は何なんだ?噛み砕いて言ってみろ、二等兵見習い

322:名前は開発中のものです。
18/08/03 21:57:13.


323:06 ID:g4hffkLt.net



324:名前は開発中のものです。
18/08/03 22:40:26.78 y6ZFjsSR.net
>ゲームオブジェクト
>コンポーネント
これらはとどのつまりはクラス。
クラスとは何か?

325:名前は開発中のものです。
18/08/03 23:17:18.29 5oCXpdg6.net
アプデしたらいつも調子悪くなる

326:名前は開発中のものです。
18/08/04 04:54:34.40 nYTIxyUA.net
基本的にゲームプログラミングでは
シーン内で生み出す敵とか大抵配列に入れ込んで管理しますよね?
for文でその配列の要素回して抜き出したり。
でもUnityの2Dシューティングとかのチュートリアルを確認してみると
次々と生み出された敵を配列に入れ込む処理が見当たりませんが
これ、個々のオブジェクトの把握はどうやってるんですか?

327:名前は開発中のものです。
18/08/04 05:19:51.58 uwGBYqQ5.net
>>310
なるほど、型か!ってなんねーよww
シリアライズって意味わかってんの?クラスを保存じゃなくてインスタンスを保存だろ。
ヒエラルキー上のインスタンス群をシリアライズして保存するんだから、どちみちハズレなのよ。

328:名前は開発中のものです。
18/08/04 06:49:36.83 jfygBgbK.net
おまえら日本語で話せよ

329:名前は開発中のものです。
18/08/04 07:35:21.25 uwGBYqQ5.net
>>312
7.2は読んだか?

330:名前は開発中のものです。
18/08/04 09:43:45.62 8h4ounWr.net
>>313
わかったわかった
お前の人生は大ハズレだな
インスタンスについて基本的な理解が不足してるぞ
ヒエラル木も結局は型定義と初期値に関するシリアライズされたデータの集まりで、プレビュー時や実行時に初めてインスタンス化されてるんだよ

331:名前は開発中のものです。
18/08/04 10:32:45.75 uwGBYqQ5.net
>>316
プレハブの話だよ、ヒエラルキーからゲームオブジェクトをドラッグしてプレハブ作成した時点でヒエラルキー上のはプレハブインスタンスになるだろ。
そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。
このプレハブソースを型だったて言い張るのは無理があると言う話だ。だからどんな意味で型と言ってるか聞いたんだ。雛形って意味なら俺も納得。

332:名前は開発中のものです。
18/08/04 10:36:45.24 uwGBYqQ5.net
>>317
あ、ヒエラルキー上のプレハブインスタンスはソースと変更の参照でOOPで言うインスタンスじゃないのはわかってるから。

333:名前は開発中のものです。
18/08/04 10:41:25.18 uwGBYqQ5.net
>>317
>そしてプロジェクトビューのプレハブ自身はヒエラルキー上のプレハブインスタンスがデシリアライズされる前のデータ、プレハブソース。
ヒエラルキー上のプレハブインスタンスが、実行時やプレビュー時にデシアライズ、と付け加えとく

334:名前は開発中のものです。
18/08/04 10:55:45.37 8h4ounWr.net
>ヒエラル木
デバッグ時にはモニタできるから、「シリアライズされた初期値およびデバッグ実行時の現在値」という表現が良いのか
しかしなぜ「シリアライズ」という言葉を使うんだろうか
ヒエラル木を構成する連続した要素の一つに組み込むという意味なのか

335:名前は開発中のものです。
18/08/04 11:19:34.99 qIP9aSz0.net
>>320
お前ら何でプレファブの中身見て見ないの?
YAMLで書かれたファイルだって一発で分かるだろ、つまりシリアライズされて保存されてるファイルって事だよ。
一方ヒエラルキーに見えてるのもファイル。
再生実行した時だけ、メモリに展開されてる。
わかった?

336:名前は開発中のものです。
18/08/04 13:22:29.52 8h4ounWr.net
1000回日本語文章読んでもバカには無理w

337:名前は開発中のものです。
18/08/04 13:36:44.18 ASd5/j6X.net
>>321
へー、ヒエラルキーに表示されているのはシーン上のオブジェクトのリストじゃなくてファイルなんだぁ。
ファイルシステムのどこにそのファイルがありますか?またシーンビューで編集しているときはメモリ上にはなくてディスク上にあるんですか?
公式のマニュアルとは違う説明で混乱しそうです。

338:名前は開発中のものです。
18/08/04 13:52:20.56 qIP9aSz0.net
>>323
右上のケバDebugにするとLocalIdentifierInfileってでてくんだろ。
隠蔽されてるが、あるんだよ。それアクセスされると色々ぶっこわれるからな。

339:弟子
18/08/04 13:55:14.77 +VI6JuUR.net
初心者スレでマウント取りたいのは分かるから巣に帰って
ちゃんと新しいの作ったからさ
【3Dゲームエンジン】Unity質問スレッド37
スレリンク(gamedev板)

340:名前は開発中のものです。
18/08/04 14:04:46.49 qIP9aSz0.net
初心者に分かるように言ってんじゃん。
紙パンツスレ飽きちゃったんか?あっちで吠えてろよ

341:名前は開発中のものです。
18/08/04 14:29:50.67 jfygBgbK.net
おまえらの話は誰にも通じてないし役にもたってないぞ

342:弟子
18/08/04 14:41:43.17 +VI6JuUR.net
>>326
YAMLとは?
シリアライズとは?
ケバdeaugとは?
初心者なんでまったく訳わかんないですわ

343:名前は開発中のものです。
18/08/04 14:43:13.78 yHEIRFFR.net
>>324
それってシーンファイルに書いてある識別IDじゃない。んでシーンを保存するまで0だよ。保存する前のヒエラルキーはどう説明するのさ。

344:名前は開発中のものです。
18/08/04 14:45:18.52 yHEIRFFR.net
>>328
初心者スレで聞いてみれば。

345:名前は開発中のものです。
18/08/04 14:50:04.55 cpg8UDOV.net
>>328
知らなくても作れるけどな。

346:名前は開発中のものです。
18/08/04 15:05:56.25 qIP9aSz0.net
>>329
Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。
シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。
未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。
保存前のヒエラルキーは見た目だよ、ドラフト扱いな。
もう少しEditorとUnityEngineの違い分かった方がいいな。

347:THE・シンプル先生
18/08/04 15:07:18.36 KOItUBKr.net
>>312
自分で工夫する事で昔の「main()ループ」に近い物が作れる。
①:空のゲームオブジェクト(Empty)を適当な位置に作る。名前は仮に"GameMain"としておく。
②:次に適当な場所に"GameMain.cs"と仮の名前でC#スクリプトを作る。
③:②を①にアタッチ
④:②の中にprivate属性などGameObject型の動的配列の"元だけ"を宣言 → 例:GameObject[] Enemy;
⑤:②の"start()"などで実際に必要な数の配列を作成 → 例:Enemy = new GameObject[3];
⑥:"GameObject.Find("※オブジェクト名").gameObjectを使い、先程作成した配列にシーン上のGameObjectを関連付けていく → 例:GameObject[0] = GameObject.Find("Enemy0").gameObject;
⑦:後はGameObject[0]を使う
当然他のやり方も無数にある。

348:THE・ステップアップ先生
18/08/04 15:19:06.70 KOItUBKr.net
>>312
次の内容はおまけなので意味不明な場合は気にしなくていいよ。
ソース上でのオブジェクトの管理のしやすさはメモリー使用量に反比例する。
今までのやり方(main()ループのやり方)だと扱いたいオブジェクトを最初に配列に全て格納するのでそれだけ沢山メモリーを占有し続けることになる。
旧型のゲームを作る場合はこのやり方でも問題ないし今でもこっちの方が扱いやすい場面が多々ある。
とくに小規模ゲームの場合はこっちのやり方で全然いいと思う。
じゃあUnityがこの古き「main()ループ」のやり方になっていないのは何故かというと
中~大規模のゲーム作成も想定して作られてるのもあると思う。
この規模になると次の事を実現しないといけない。
・必要な場面にだけメモリだけを使いこまめに確保と解放を繰り返す節約型モデル
・もともと非常に重い3D物理演算を実用レベルで運用する
・もともと複雑で重い3Dの当たり判定処理(コリジョン)をプログラマが手軽に扱えるようにする
これの実現でメモリー制約の厳しいスマホで苦労せずに3Dゲームを作れたり
MMOやオープンワールド系のゲームを作れるポテンシャルを実現している。
FCマリオやテトリス作るなら"main()ループ型"でいいけど、モンスターハンター作るなら"main()ループ型"では死ねるよという感じ。
実際に何かを作ってみると分かるが当たり判定(コリジョン)は"main()ループ型"で回して中でいちいち判定するより
オブジェクト1つ1つにC#スクリプト埋め込んで当たった時に勝手に「当たったよ!」とイベント通知してきてくれる方が100%楽。
余談だが、UnityやVisualStudioのようなGUIでモデルを配置できるエディッタ時代ではなく、コマンドプロンプト時代のCUI時代にソースで扱っていたクラスのカプセルの概念、あれをビジュアル的にも再現できている今のUnityのモデルだとも感じてる。
今のUnityのやり方が、昔に目指されていたオブジェクト指向プログラミングの1つの完成形・理想形なんじゃないかと思う。
アセットの概念なんかはまさにオブジェクト指向プログラミングのカプセル可の恩賜だと思うよ。

349:弟子
18/08/04 16:23:58.28 +VI6JuUR.net
>>330
それはどこですか?
誘導お願いします 
ここは、そういうスレなので教えてください

350:名前は開発中のものです。
18/08/04 16:28:00.38 qIP9aSz0.net
>>335
ほらよ、君にうってつけだ
スレリンク(gamedev板)

351:名前は開発中のものです。
18/08/04 17:03:05.01 u4pCimN6.net
>>332
>>329
>Editorがシーン用にDBを構築してるって事なんだよ。隠蔽って書いただろ。
>シーンの中見たなら、ある程度シリアライズされてる内容見えただろ。でも全てじゃないのは分かったはずだ。
ヒエラルキーの表示じゃなくて、ヒエラルキーに表示されている、シーン上のオブジェクトの話をしてたつもりなんですけど。
>未保存がメモリで動く訳ないだろ。実行前に必ず保存されてるわ。
未保存のときもlocal identfierfile 0のままシーンビューやヒエラルキービューで編集出来ますけど、そのオブジェクトはメモリ上じゃなくてどこで動いてるんですか?

352:名前は開発中のものです。
18/08/04 17:27:38.46 qIP9aSz0.net
>>337
シーン情報はシーンにある。プレファブ情報はプレファブファイルにある。
てか見たんだろ?ファイルにあるわ。
もちろん画面に表示したり、編集させるにはメモリを使ってる。だけど電源オフったら消える通りストックはされておらん。
編集はできとるが、これがそのまま再生実行時に使われると思ってるところがあんたが嵌ってるところだ。
新規作成したらEditor用のメモリに展開はされる。
だけど電源オフったら消える通りストックはされておらん。
未保存データは再生実行時には使われておらん。
再生実行時に保存データを使ってEditor用のメモリに一旦展開する。これがデシリアライズな。
分かった?

353:名前は開発中のものです。
18/08/04 18:23:45.38 bPWDdaDo.net
>>338
誰か再生実行時の話してましたっけ?プレハブを作る場面の話だったと思いますけど。
ヒエラル木とか言ってる人に合わせて、ヒエラルキー上にリストされているシーン上のオブジェクトの事を指して、またはオブジェクトの階層構造自体の事をヒエラルキーって言ってたのが悪かったかな。
ヒエラルキーのリストは確かにファイル。
んで、編集中にプレハブを作りました。そのプレハブをシーン上に配置しました。シーン上に配置した時点でオブジェクト化されたんじゃないかと思うのですが、このときはプレハブソースからのデシリアライズは起きないのですか?

354:名前は開発中のものです。
18/08/04 18:30:26.82 sBxajZWZ.net
playerキャラとかNPCキャラとか複数のオブジェクトで使い回すような自作関数ってそれぞれにアタッチしてるスクリプトに書く?それとも1つ関数をまとめたオブジェクトを作ってそこに書いておいてその都度それぞれが参照する感じのほうがいいですか?
例えばオブジェクトの現在の座標とか着地判定を取得する関数とか

355:名前は開発中のものです。
18/08/04 19:26:52.87 qIP9aSz0.net
>>339
インスタンス化とデシリアライズの話が出たから、そのタイミングである再生実行の話をしただけで、いきなり誰かしたかと言うのはおかしい話。
プレハブから配置したのは、あくまでEditor上でシーン情報を作っただけで、デシリアライズは再生の時に起きるっての分かる為なんだが
まあ、ちょっとデシリアライズを誤解してるってか、話がどんどん逸れそうだからな。行間読むわ
多分言いたいのは、プレハブをシーンに置いた時に、プレハブ情報からシーン情報が構築されないのか?って言いたいんだろう。
一旦Editorのメモリ上では構築される。
そんで、再生や保存で、その時に当然Dirtyな置かれたオブジェクトがファイルに保存される。
再生の初期にシーンファイルを読み込んで、デシリアライズしてメモリ展開する。
オブジェクト化は再生の初期やInstantiateの時に起こる。これをインスタンス化と呼ぶ。
じゃあ、エディタで見えてるのは何なの?って言うと、編集のためにファイルをエディタ用のメモリに展開してるだけ。
最初にプレハブを置く=テンプレートからのエディタ用メモリへのコピー
保存=シーン情報の構築
ヒエラルキー=再生時のメモリ構築用データ
と思えば良い。
まだダメかな?いい加減疲れてきたぞ。をい

356:名前は開発中のものです。
18/08/04 19:33:40.98 qIP9aSz0.net
>>340
人それぞれかな。
俺の場合は、それぞれにアタッチしてる。だが種類は極小でなるべく余計な物はアタッチしないって方針
一個だけアタッチするなら、代表するオブジェクトに持たせたり、シングルトン使ってそいつにコンポーネント生やしたりもする。
シングルスレッドならUnirx辺りを使ってアタッチしないで生やしたりもできる。
それぞれ一長一短だから全部やってみるとええ。

357:名前は開発中のものです。
18/08/04 20:34:14.45 Ter6X2ca.net
>>340
良いか悪いか。
仕様に基づいて、一番最適な設計を行って実装するのがプログラマだから、察するに現時点の貴方のレベルからすると、342さんも言ってるように、とにかく実装経験を積むことが近道になると思う。

358:名前は開発中のものです。
18/08/04 20:47:00.20 s81iLtQ9.net
>>341
でもさ、公式のマニュアルに
URLリンク(docs.unity3d.com)
単に、プレハブアセットをプロジェクトビューからシーンビューにドラッグするだけで、プレハブのインスタンスを作成します。
プレハブのインスタンスとして作成されたオブジェクトは、ヒエラルキービューで青色の文字として表示されます(通常のオブジェクトは黒の文字で表示されます)。
て書いてあるのよ。
プレハブはシアライズされたファイルで、そのシリアライズされたファイルからインスタンスを作成するんだからデシアライズじゃないの?Unityではデシアライズとよばないの?

359:弟子
18/08/04 23:08:11.76 +VI6JuUR.net
>>336
君はスレタイ読めないのかな?

360:弟子
18/08/04 23:10:17.86 +VI6JuUR.net
>>344
呼び方とかどうでもいいのよ、動けば
議論したいなら他行くか、自分でスレ建ててそっちでやってね

361:名前は開発中のものです。
18/08/05 00:07:41.56 iaL/bkNc.net
弟子realize

低能特有の神経質な悪臭が半端ないな
なんなんだこのゴミ

362:弟子
18/08/05 00:15:41.23 9xb2C49y.net
>>347
そのゴミが建てたスレに来て何言ってんの

363:312
18/08/05 01:31:28.80 CyFJgm7j.net
>>334
とても勉強になる回答内容に感激しました。
私はその昔ながらのmain()ループのやり方で生きて来たクチなので
Unityのマニュアルやチュートリアルに目を通し(熟読はしていませんが、
非常に困惑しているところだったんです。
ステップアップ先生の話を聞いた限り、仮にUnityでFCマリオを制作するとしても、
昔ながらのmain()ループのやり方をUnityで実行するより、
本来はUnityモデルを覚えて作った方が"ラク"だよ、ということですよね?
例えば当たり判定〜のくだりは確かにそっちの方が確実にラクなのが理解できますし。
それとも「いや、FCマリオくらいのゲームしか作る気ないなら、
この先Unityを覚えて制作せずとも、>>333のUnityの中で擬似main()ループで作る方が断然ラクだよ」とかですか?
というのもmain()ループのやり方が染み付いてしまっている私自体、
ゲームの処理には中心となるがループを置いて、
そこからすべての流れを構想してしまうオツムなんです。
Unityモデルは全オブジェクトが個々で処理され、バラバラに存在している感じ?というか
各オブジェクトや処理に非常にふあふあしていると感じました。
もちろん自分のUnity理解度がまだ足りないせいなのは重々承知してますが
アセットやツールで解決するそれぞれの処理がブラックボックスすぎて、
初心者としてはそれらの応用が難しい。
アニメーション描画も、正直配列に各画像を入れ込んでフレームで回す方がラクなのに、
AnimationEventを使ってメモリを動かしてイベントの制作をしなければならない?のも余計ややこしく感じます。
結局、ソースだけで解決できないエンジンなので例えFCマリオであっても
Unityを覚えないと作れないことにちょっと面食らっています。
それらもステップアップ先生のおっしゃる通り
3Dや中~大規模のゲーム作成も想定されたUnityだからこその仕様なのだと理解しましたが
どうなんでしょうか、私が2Dオンリーのゲーム制作目的であっても
Unityモデルで制作方法を覚えた方があとあと必ずラクになりますか?
変な相談ですみません。

364:まあ、人それぞれやな先生
18/08/05 02:07:48.11 bE8Y0pws.net
まあ、人それぞれやな

365:名前は開発中のものです。
18/08/05 03:32:42.76 IZ2haYgx.net
自分のやり方でやってみれば
unityでも十分できると思うよ
一元管理のほうがコード書きやすいし
チュートリアルみたいなコードは手練れてないと無理じゃね

366:THE・ステップアップ先生
18/08/05 04:35:33.53 PSh59YKG.net
>>349
mainループ式は、シングルスレッドとかシングルタスク的な動きを連想させるけど
Unity式は、マルチスレッドとかマルチタスクとか非同期的みたいな動きだから慣れていないと取っつきにくいだろうね。
どちらかというと、Webのサーバークライアントプログラムの扱いに似てるかもね。
これは慣れだよ。
最初は四苦八苦かもしれないけど
旧式でもゲームを作れる技量があるのなら、触っている内に必ず非同期的な作りにも慣れる。
慣れるとメリットの多さに気づける。
Unity式のやり方を覚えた方が絶対に得だよ。
作れる物の幅も広がるしステップアップに繋がる。
そしてソースが非常に簡略化する時が多い。
例えば動きを実現するのにmainループ型では30行必要だった処理が1行で済むなんてこともあるよ。
最初から全てをUnity式のやり方にする必要はなくて
慣れてるmainループ式で作り、Unity式にしたほうが便利そうな部分だけそっちにする感じでいいんじゃないかな?
実際のゲーム作りも、ほとんどが「main()ループ式 + Unity式のハイブリット型」になると思う。
main()ループ式だけとか、Unity式だけという作りにはならないと思うよ。
他の人はどうなのかは知らないけど自分の場合は必ずゲーム全体を管理するmainループ的なスクリプトが存在するよ。
mainループはゲーム全体の状態をコントロール(ゲーム中なのか?ゲームオーバーなのか?などの状態)したり、
ラジコンを動かすプロポ代わりとなり、各GameObjectに実装した関数へ「待機」とか「アクションAの動きを実行せよ」とか指示をだして操作してるようなイメージ。
各GameObjectには渡された引数で色々な動作をするように記述したC#スクリプトをアタッチさせておき、指示を受けて動くロボット的なイメージ。
人によっては"GameMain"に相当する部分を"GameMgr(ゲームマネージャー)"みたいな名称にしてるかもね。

367:名前は開発中のものです。
18/08/05 07:32:27.22 7w+AZmvn.net
>>346
俺には初心者がそれなりにマニュアル読みつつ、独自解釈のエラそうな知ったかを追い出そうとしてるように見えるけど?

368:名前は開発中のものです。
18/08/05 09:16:54.78 1CW9jcvb.net
さすがお盆休みだなぁ。

369:名前は開発中のものです。
18/08/05 09:22:07.75 1CW9jcvb.net
>>348
初心者スレなんていう公共的なスレタイ付けといて言うセリフじゃないぞ。個人的なスレにしたいならもっとスレタイ考えろ。
初心者スレはお前が立てなくてももっと普通の奴が立てるからでしゃばんな。

370:弟子
18/08/05 11:17:58.00 9xb2C49y.net
>>355
夏やなぁ
通常質問スレが36間でいっても初心者スレ建たなかったんだよなぁ

371:名前は開発中のものです。
18/08/05 11:56:29.79 s2ZX6Afg.net
ネトゲじゃないんだから雑談や初心者質問スレなんか需要無いんだよ。
次は復帰者スレでも建てるの?

372:名前は開発中のものです。
18/08/05 15:59:20.45 Zg/i6Juh.net
ヘックスマップ作りたいんだけど
こういうマップチップてプレハブ並べて作るの?

373:312
18/08/05 16:09:57.60 CyFJgm7j.net
>>352
昔ながらのゲーム制作方法を交えてアドバイスして頂けること
非常にわかりやすく助かります。ありがたいです。
そのため、どうしてもこの機会にアドバイスを受けたいのですが
シンプルに説明しますと、私のやってきたことは
ゲームマネージャーを作り、そこですべてを把握させ、
各オブジェクトは属性を振り、配列に入れ、属性同士でコリジョン判定。
真になった場合に相手を見てそれぞれの処理をする
(厳密には、プレイヤーなどは専用にコリジョン判定を回したり)。
各マップチップとの判定も同じで、ブロックごとに属性を振り配列に入れ込んで判定します。
シーン遷移についてもシーンマネージャーを作り、マネージャーより命令がくれば指定のシーンに飛ぶ、それだけです。
サウンドもシーン遷移の要領でサウンドマネージャーを作り、命令がくれば切り替える感じです(SEは各オブジェクト内で鳴らします)。
もちろんこれらはご存知かと思いますが、ソースは多かれどこんなシンプルなものでしたので
今はUnityの方が面倒に感じて、参っております。
理解度が低いのはもちろん、ご指摘を受け、全部Unityのやり方でやろうとしていたせいだと思いますし、
確認してみたチュートリアルが昔ながらの作成方法では無い説明ばかりなのも弊害のひとつですし、
あとネットで探す場合3Dの方の情報とこんがらがっているのも弊害といえます。
私の様な時代錯誤なゲーム制作者が、初Unityで試しにFCマリオみたいな
2Dアクションゲーム(もちろん簡単なレベルに落とします)を制作してみるとして、
どこの処理を「Unity式のハイブリット型」を選ぶのがベターなんでしょうか。
古きも新しきも理解し、両方の比較ができるステップアップ先生
どうか教えて頂けませんでしょうか。

374:名前は開発中のものです。
18/08/05 19:46:20.43 HJil90QJ.net
オープンワールド的な大きなterrainにするために(見えるように)キャラとかオブジェクトのScaleを0.1にするとかお前ら的にはアリ?ナシ?
terrain分割系のアセット使うのは無しの方向で
terrain自体のサイズは実質2000x2000くらいが限界なんだよなぁ

375:名前は開発中のものです。
18/08/05 22:20:17.60 1CW9jcvb.net
何ここ、壮大な自演スレ?

376:弟子
18/08/05 22:41:53.80 9xb2C49y.net
>>361
そだよ
だから、でしゃばんな

377:弟子
18/08/05 23:12:55.61 9xb2C49y.net
>>358
六角形のスプライト用意してタイルマップでいけるんじゃないかな

378:名前は開発中のものです。
18/08/05 23:27:14.09 vRj4lIfD.net
>>358
この質問お願いします

379:名前は開発中のものです。
18/08/05 23:28:36.82 UInf7wuX.net
>>358
アセットがあればヘックスマップも作れると思いますよ

380:名前は開発中のものです。
18/08/06 01:10:06.69 shQcteCQ.net
>>363
>>365
ありがとう
調べてみます

381:弟子
18/08/06 01:30:05.16 b1K9g2Lf.net
>>366
最新のUnityになってからかどうかわかりませんが
自分のUnity2018.2.2f1の環境だと、2D ObjectにHexagonal TileMap
というのがあって
こんな感じ
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
ちょっと配置しただけなので隙間とかあるけど、調整すればいけるんじゃないかな

382:THE・ステップアップ先生
18/08/06 05:22:26.33 rSQN2TxT.net
>>359
説明を見てる限りだと結構Unity式で出来てるように感じるよ?
"属性"の部分を"レイヤー機能"に置き換えれそうなくらいじゃないかな。
既にレイヤー機能を使っているようなら気にしないでくださいな。
自分もUnity式はまだまだ発展途上であり完璧に理解してるわけではありませんよ。
またそれが面白いのです。
FCマリオを作るとしたら自分は以下をUnity式でやると思います
・当たり判定全般はUnityのコライダーとレイヤー機能に任せる(プレイヤー⇔マップ、プレイヤー⇔アイテム、プレイヤー⇔敵、敵⇔敵、敵⇔マップ)
・Sceneファイル1つにつき1ステージとファイルを分けて、ステージ遷移はSceneファイルの変更で行いたい
・Unityエディッタ上で直接マップ構成や敵の配置をやってしまい、別途BGエディッター見たいなものを使用しない
・つまりmainループ式だと行う必要があった背景などの画面スクロール処理は一切不要。カメラ移動に任せる。
これ以外はmainループ式でやるかな?
当たり判定部分は物理エンジンを使うか否かで多少変わってくるかもです。
実際に作ってみるとこのように行かない場面も多々出てくるかもしれませんが。
うまくまとめればUnityエディッタ=ちょっと複雑なマリオメーカー的な気分で作れちゃうかもしれませんね。

383:名前は開発中のものです。
18/08/06 07:24:48.60 kCqrej/c.net
画像付きで解説優しい!
2018.2にアップデートしたらヘックスタイルマップが追加されました
物凄くタイミングが良かった
ありがとうございます!

384:名前は開発中のものです。
18/08/06 20:49:47.90 elMC6huJ.net
>>359
横からだが、俺自身も昔ながらのゲーム開発からUnity開発へ移行した口だけど、結局のところ昔ながらのことをしないとパフォーマンス稼げないことが多々出てくるから、どっちのやり方も知っていいとこ取りをするのがベストだと思っている
あとチュートリアルはお作法というより機能や出来ることの説明がメインだから、設計という意味ではあまり参考にならないかと

385:名前は開発中のものです。
18/08/06 23:48:58.31 pjnXk9Sd.net
>>368
ありがとうございます!
モチベーションが上がって来ました。
それを参考に私も頑張ってみます。
>>370
>機能や出来ることの説明がメインだから
そうなんですよ、Unityモデルでの昔ながらの作成方法な
設計の参考になるものが皆無なんで、困ってます。

386:名前は開発中のものです。
18/08/07 05:33:02.72 qUQ4iHYs.net
シーンに空のオブジェクト置いてfixedupdateを
mainループとみなしてそこからすべて操作するだけ

387:名前は開発中のものです。
18/08/07 07:23:29.46 7twjrWhc.net
unityでそのままの方法でできるんだから悩む必要ないぞ
スクリプトをプレイヤーにつけるか敵につけるか空のオブジェクトにつけるかの違いだから
チュートリアルみたいに分散させるとどこに書いたかわからなくなって混乱の元になるし
一箇所に集めて配列管理でいいんじゃね

388:名前は開発中のものです。
18/08/07 11:30:26.00 fUL+ini3.net
エディタ拡張やってる人いますか?
inspectorに何かを表示したりそこにオブジェクトを生成するような簡単な処理はできるようになったんだけど、そこから先のやり方が全くわからない
例えば、既存のterrainの上部のボタンみたいなものを作って独自の機能を自作したりシーン上でクリック等の操作をできるようにしたりする方法教えてください

389:名前は開発中のものです。
18/08/07 15:03:44.07 XJ39evIU.net
>>374
URLリンク(anchan828.github.io)

390:名前は開発中のものです。
18/08/07 15:17:47.36 XJ39evIU.net
>>374
スマホだとわかりにくいけど、目次からweb版(無料)が見られるよ。探せなければpcで。それだけできてるなら6.10、17.2あたり見ればヒントになると思うよ。

391:名前は開発中のものです。
18/08/07 17:12:34.80 fUL+ini3.net
>>37


392:6 ありがとう ボタン設置やハンドルの表示は分かるんだけど、例えばシーン上のどこかをクリックしたらその座標にオブジェクトを生成するとして、それだけなら出来るんだけど他のオブジェクトをクリックしたときに、そのオブジェクトを選択したことになってしまうんです terrainで編集中だとシーン上で他のオブジェクトをクリックしたとしても、そのオブジェクトが選択されたりしないよね? まずは、シーン上でオブジェクトをクリックしても選択しないようにしたい 単純に「シーン上でオブジェクトを選択不可にする方法」ってのはぐぐったら出てきたんだけど、スクリプト込の記事がないんだよね あとは、例えばterrainならterrainDataいじってterrainの新しい機能を作りたいと思ってるんですけどね



393:名前は開発中のものです。
18/08/07 19:10:53.89 qu27Ep4Q.net
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
URLリンク(i.imgur.com)
ど素人質問&画像直撮りですみません
マウスクリックでスプライトのアニメーションを変えるスクリプトらしいんですがイマイチよく分かりません
一番最初、「Animator」で記述すると「」がc#では使えないと出たり
その横のanimeDataが「フィールド'PlayerMove.animeData'は割り当てられません」と出ます
初歩的なことで申し訳ないのですが教えていただきたいです

394:名前は開発中のものです。
18/08/07 20:07:03.30 iOrv/KJ+.net
>>378
解説本はその解説本が対応しているバージョンのUnityで行いましょう

395:弟子
18/08/07 20:21:33.60 3KKwqbLg.net
>>378
一番最初というと
[SerializeField]「Animator」 animeData;
という部分ですね
恐らくで申し訳ないがこれは
animeDataというAnimator型の変数を定義していると思うので
[SerializeField]
Animator animeData;
でいいかと思います
その次のfloat定義も
float minPoint = -2; てなってますし。

396:名前は開発中のものです。
18/08/07 20:32:48.91 4Dd8RRWT.net
>>372
すみません、空オブジェクトのUpdateでは無く、
FixedUpdateである方が良い理由を教えてください。

397:名前は開発中のものです。
18/08/07 21:09:14.11 qu27Ep4Q.net
>>379
>>380
回答ありがとうございます
参考にしつつ手順の漏れがないか最初からやり直してみます

398:名前は開発中のものです。
18/08/07 21:19:26.85 7twjrWhc.net
[SerializeField]ってことはインスペクタでanimeDataを指定しないといけない
たぶんぴーたんをドラッグドロップするんだろう

399:名前は開発中のものです。
18/08/07 21:33:22.06 iXlByqKN.net
>>381
フレームレート60に設定するとfixedupdateは秒間60回呼ばれる
updateは何回呼ばれるか決まってない
昔のゲームプログラムはフレームレート固定だったので
昔風に書くならfixedupdateがおすすめ

400:名前は開発中のものです。
18/08/07 21:55:56.43 iXlByqKN.net
>>381
URLリンク(youtu.be)
この動画を見るとfixedupdateがよくわかる

401:名前は開発中のものです。
18/08/07 21:57:34.60 XJ39evIU.net
>>381
大体固定だからじゃない?でも多分両方必要だとおもうよ。

402:名前は開発中のものです。
18/08/07 23:36:06.98 0e3nA05E.net
>>384
でも、描画フレームとは同期できないから使い勝手悪いぞ
素直にUpdate使う方が楽

403:名前は開発中のものです。
18/08/07 23:41:08.87 0e3nA05E.net
>>384
もうひとつ付け加えると、FixedUpdateはスレッドで動いてるわけじゃないから、Update(描画フレーム)が処理落ちすると、1フレームに複数回呼ばれるし、その逆もまたしかりなので、結構めんどくさいよ

404:名前は開発中のものです。
18/08/07 23:56:38.80 FHXvAGCS.net
>>381
Updateで昔ながらの60fpsをやるなら、まずコードのどこかでApplication.targetFrameRateに60を設定する
メニューからQuality SettingsのVSync CountをDon’t Syncにする
同じくメニューからTime ManagerのMaximum Allowed Timestepを1/60にする
これで�


405:ルぼほぼUpdateが60fpsになるはず



406:名前は開発中のものです。
18/08/08 04:20:11.17 ROW+RPaT.net
>>387 >>388
え、、、じゃあUpdateの方がいいんですかね
fixedupdateはPhysics(Physics2D)系以外を呼ぶなって書いてもありました。
>>389
じゃあUpdateの方がいいんですかね
どうすればいいのか頭が混乱してます。
とりあえず、作ってみないと、、
簡単なものから組み立ててみます。

407:名前は開発中のものです。
18/08/08 05:50:12.43 NV2Fm/zi.net
unityでこれって正解はそうそうないからな
みんな自分がうまく行く方法を教えるから意見がぶつかり合う
んで一番割りを食うのはそれを見て学ぶ初心者ってことだなw

408:名前は開発中のものです。
18/08/08 06:49:31.17 tYWBz4xV.net
専門学校でゲームプログラムやってて、卒業後から最近まで業務システムやってたって人がいるんだけど、昔ゲームプログラムやった人はUnityは結構混乱するらしいな。
そのおっさんはゲームと思わない事がコツとか言ってる。
Unityでやるなら昔の事は忘れた方がいいみたいな気がするわ。

409:名前は開発中のものです。
18/08/08 07:13:12.39 Fn8D11Bz.net
Unityがデフォで提供する可変フレームレートの仕組みのところで、そんなにやり方が分散するとは思えんな
URLリンク(docs.unity3d.com)
↑ここの下の方の流れ図を見てみ
FixUpdateはUpdateよりも実行される頻度が多い(FixUpdateの所で矢印がぐるぐる回っている)
Updateは描画(Rendering)前に呼ばれる
Updateには描画時のみに必要な処理を書く。つまり、描画コマ落ち時には呼ばなくても良い処理を書く。例えば条件に応じて色合いを変えたりとか。
Updateが固定フレームで呼ばれるようにするのは愚の骨頂だぜ
公式が何のためにわざわざUpdateを分離してくれたと思ってるんだw
>>392
上のWebページの図の流れは、FixedUpdateがフレーム当たり何回も呼ばれる所以外、昔からのゲームの流れそのものなんだが

410:名前は開発中のものです。
18/08/08 07:13:57.49 Fn8D11Bz.net
×FixUpdate
○FixedUpdate
><

411:名前は開発中のものです。
18/08/08 07:28:28.35 tYWBz4xV.net
>>393
やだなぁ、そんなに上から目線で言わなくても、俺よりみんなの方が出来る人達なのはわかってるって。
昔ながらだと、メモリ配置どうなってんの?から始まるみたいだし。

412:名前は開発中のものです。
18/08/08 07:41:24.90 dtdVOklI.net
393が言ってる通り、updateら辺はお決まりだべさ
updateの頻度に関してはupdateのが多い場合がある、ってか、60fps行ってたら、デフォのfixed updateより遥かに頻度は高い。
問題は用法で、 updateはベストエフォートで実施されるから時間が適当。
例えフレームレート固定にしても、結構適当で1秒辺り処理される回数も結構適当。
一方fixed updateはバチっと固定秒を監視してるから固定秒間隔で実施出来る。んで、一秒辺りに処理される回数は決まってる。
1秒辺り何回やっても良い事務処理は updateで。
1秒辺り変化して欲しい量の加算や力の積み上げに関する処理はfixed updateでやると正確な回数処理されるって所かな。まあ、addforceとpositionの加算はfixed updateでやっとけばok

413:名前は開発中のものです。
18/08/08 09:45:47.13 IIyUr7UN.net
>>396
嘘教えるなって!
Updateの処理が重いとfixedUpdateは待たされるから固定秒間隔なんかで来ない
じゃあ、fixedUpdateがなんのためにあるかっていったら物理演算のためだよ
Unityに入ってる物理エンジンはある時点でのスナップショットで判定してるから経過時間が等間隔じゃないと正しく判定できないから擬似的にその状況を作ってくれてるだけ

414:名前は開発中のものです。
18/08/08 10:38:49.37 ROW+RPaT.net
うおおおおおおおおおおおおおおおおお
、、、結局、誰の認識が正しいのですか!?

415:名前は開発中のものです。
18/08/08 10:42:47.13 aE2PPNXc.net
>>397
俺ら初心者スレの猛者達がFixedUpdateを遅らせるような事する訳ないだろ。

416:名前は開発中のものです。
18/08/08 10:52:05.94 sLCgEPxI.net
>>398
固定フレームレートでやりたいなら、自分で時間見てやりなさい、ってとこかな。Unity公式で紹介されてたなんかの弾幕ゲーはそうやってたよ。

417:名前は開発中のものです。
18/08/08 11:02:40.16 GGilygSJ.net
>>398
知識披露したいだけの奴らだから無視してればいい
バグがでて必要になったら覚えりゃいいだけ

418:名前は開発中のものです。
18/08/08 11:20:11.17 IIyUr7UN.net
>>399
実際にUpdateが処理落ちしてるときにFixedUpdateが呼ばれる間隔を計測してみ
等間隔なんかで来てないから
あと余談だけど、昔のゲームはVシンクに同期して作ってるのが多いから処理落ちするとスローモーションみたいになるけど、FixedUpdateだとフレームスキップしたようになる

419:名前は開発中のものです。
18/08/08 11:54:42.55 kbto8gV2.net
>>398
手っ取り早く、>>389でいいよ。
他のやり方は、他の仕様との兼ね合いとか考慮する事もあるので。

420:弟子
18/08/08 11:56:20.94 3sTNJ/OU.net
>>398
習うより慣れろ精神で、まず作りましょ
んで何か不具合、またわからないことが出てきたら、具体的に聴けばいいかと

421:名前は開発中のものです。
18/08/08 12:01:33.22 u0RnB40v.net
操作に対して移動を優先するか
遅くしてもグラフィックを描画するかはゲームの設計思想の問題
どっちが正解とかない

422:名前は開発中のものです。
18/08/09 08:13:03.25 e+UL/kpA.net
この方の最新ツイート(8/8付)動画の40秒以降のぐるぐる回りながら形が戻っていく動き、どうやって作るんですか?
URLリンク(twitter.com)
(deleted an unsolicited ad)

423:名前は開発中のものです。
18/08/09 08:34:57.79 3chL1kmW.net
>>406
パーティクルで、発生位置がメッシュかな。パーティクルはオブジェクトな。
透明なスキンメッシュのオブジェクトがアニメしてて、メッシュの頂点から発生させてるって所か。
最近だとvelocityに回転つけられるんで、それも合わせりゃいいかと

424:名前は開発中のものです。
18/08/09 09:06:55.46 PMvEwNv2.net
>>406
Houdiniでも使ったんかと思ったがProcedural Animationsだけで作ったと書いてある
スクリプトでtransformの制御だけで作ったようだね
恐れ入るよw

425:名前は開発中のものです。
18/08/09 22:10:26.06 IWEFStf3.net
>>407
>>408
ありがとうございます、やれるだけやってみます。

426:名前は開発中のものです。
18/08/10 20:49:30.40 FesHIFfD.net
Raycastについて質問です。
rayを飛ばして当たったオブジェクトの情報を取得することは出来たのですが、ヒットしない場合、指定したY座標に到達した時のXZ座標を取得するにはどうすればいいですか?
例として高い位置(動的)から斜め下にrayを飛ばしてYが0の地点のXとZを取得したいです。

427:名前は開発中のものです。
18/08/10 21:49:03.65 bTEggd1E.net
>>410
さくっと考えてみた
d = レイの始点.y ÷ レイの向き.y
p = レイの始点 + レイの向き × -d
これで出来たりしないかな?

428:名前は開発中のものです。
18/08/10 22:05:26.37 FyfoKJKo.net
でっかい地面、四角をおく。
レイと似たようなほっそ長ーい、オブジェクトを用意してそれをカメラの子供にして、z軸をレイと同じ方向で座標調整。
あとは、このオブジェと地面の交点をコリジョンのコンタクトポイントで取得すれば出来上がり。

429:名前は開発中のものです。
18/08/10 22:37:17.53 /+Zaq+IX.net
3次元空間の方程式で解�


430:ッるんじゃないかね 高校数学だな 覚えてないが



431:名前は開発中のものです。
18/08/10 22:40:39.62 bTEggd1E.net
まあ、もともとレイキャスト使ってるわけだし、素直に平べったいでかいボックスコライダー敷いて、それとの交点拾った方が楽かもね

432:名前は開発中のものです。
18/08/10 23:03:35.77 /+Zaq+IX.net
現在地(X0,Y0,Z0) 直線の方向(l,m,n)
X=X0-l*Y0/m
Z=Z0-n*Y0/m
あってるかどうかは知らん

433:名前は開発中のものです。
18/08/10 23:14:06.24 AiF2ZNWr.net
>>415
411と一緒じゃね?

434:名前は開発中のものです。
18/08/10 23:42:56.79 /+Zaq+IX.net
411の式がなにを書いているのかよく理解できない

435:410
18/08/10 23:45:08.91 0EV31+6P.net
410ですありがとうございます
最初412のようなこと考えたんですが、とてつもなく大きくしないとヒットしない場合が出てくるのでやめて、タンジェント使って実現できました
ですが、逆にy0座標を入れた変数の方を基準として操作してもう1つの方も動くようにしましたごめんなさい

436:名前は開発中のものです。
18/08/11 03:36:04.42 w1AtvJPI.net
Plane.Raycastとかはどう?

437:名前は開発中のものです。
18/08/13 01:22:28.89 hVLDMUb5.net
スクリプトから生成したオブジェクトにアタッチしてるスクリプトのstart()内でtransform.positionに値を入れるのが効かなくて、update()内でやると効くというような現象が起たのでググったら1件バクという記事があったんですが、そんなバグありますか?
スクリプトの読み込み順は生成元を優先にしてます
解決法わかる方いましたらよろしくおねがいします

438:名前は開発中のものです。
18/08/13 02:35:54.68 h8PoyRSx.net
まずスクリプトを書けよ

439:名前は開発中のものです。
18/08/13 03:53:13.25 J+8KZvgr.net
startのあとにどっかで上書きしてるんでしょ

440:名前は開発中のものです。
18/08/13 04:28:58.13 SqAPnHqn.net
生成元のInstantiateの直後に生成元でそのオブジェクトのtransform.positionに入れると効くので上書きはしてないと思うんですよね
両方それぞれのメソッドでDebug.Log入れて見てみたんですけど、ファイル実行の優先順位を設定してても、その中のメソッドの処理のタイミングがバラバラで上手くいってない気がしました
がまだ解決はできてません

441:弟子
18/08/13 04:44:09.64 nyffuRFH.net
バグという記事のurlよければください
再現できるか確認してみたいと思います

442:名前は開発中のものです。
18/08/13 05:27:12.92 h8PoyRSx.net
抽象的なこと書かれても誰もどうすることもできんぞ
自分で解決しろとしか

443:名前は開発中のものです。
18/08/13 08:56:25.52 Z2oDd47O.net
Startの綴りが間違ってるとかそんなんだったら笑う

444:名前は開発中のものです。
18/08/13 11:48:28.22 de0S85/j.net
俺は親オブジェクト指定してなくてローカル座標のつもりがワールド座標になってたりその逆だったりならたまにある。

445:名前は開発中のものです。
18/08/13 12:58:04.92 SGRWJO+v.net
・unityで、コンビニで買えるプリペイドで購入する方法ありますか?
・DynamicBone ですが、フリー版で似た機能を使えるプラグインとかありますか?

446:名前は開発中のものです。
18/08/13 16:08:51.42 CIIJAnZJ.net
ありますん

447:名前は開発中のものです。
18/08/15 14:53:35.61 e1D8QaXW.net
>>428
URLリンク(panora.tokyo)

448:名前は開発中のものです。
18/08/16 08:17:34.80 Rx2cVzvB.net
2000x2000とかの大きなterrainだと、遠くの山が描写されず、近づくと表示されて気持ち悪いんですが、描写される距離を設定で変えたりできますか?
木や草を描写する距離などはterrainの設定から出来るんですが、terrainそのものの描写する距離を変える設定が見つかりません

449:名前は開発中のものです。
18/08/16 09:49:16.59 37AyipWF.net
テレインのインスペクターの、far、miniだったか?の値を変える。

450:名前は開発中のものです。
18/08/16 09:49:59.45 37AyipWF.net
farが遠くが、どこまで見えるかの値。

451:名前は開発中のものです。
18/08/16 15:57:21.93 Rx2cVzvB.net
テレインのインスペクターって、インスペクター上の歯車マーク(terrain settings)のところですよね?
そのfarがないんですよね
unityのバージョンは20182.2f1です

452:名前は開発中のものです。
18/08/16 19:22:49.41 37AyipWF.net
>>434
カメラのインスペクターだった。

453:名前は開発中のものです。
18/08/17 18:04:21.11 /P5tUkj4.net
剣を振った時にプレイヤーの前にコライダを出して当たり判定をを作ったんだけど、剣をふってないときにコライダを引っ込めるスクリプトが分からない、誰か助けて

454:弟子
18/08/17 20:11:32.08 ni8AyJER.net
出せたなら、その反対をやればいいと思うけど、出したコ一ドはどんなコードですか?

455:名前は開発中のものです。
18/08/17 21:06:12.39 jjg/SVIP.net
コライダーって出したり引っ込めたりするもんなのか?

456:名前は開発中のものです。
18/08/17 21:13:36.99 53TbFepx.net
コライダを消せばいいやん。(false)

457:436
18/08/17 22:51:55.49 Cl208u38.net
プレイヤーの前方に当たり判定のコライダとなるこのスクリプトをアタッチしてて
public class AttackController : MonoBehaviour {
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
Debug.Log("hit Object");
}
}

458:436
18/08/17 22:52:26.80 Cl208u38.net
プレイヤーコントローラーのスクリプトは下のスクリプトで右クリックでアタック時にSetActive
でコライダを表示するようにして敵を攻撃する当たり判定にしてるんだけど、一回攻撃するとコライダ出っぱなしになる
消すように色々ためしたけど上手くいかない、アドバイス頼みます
public GameObject AtariHantei;
void Update()
{
//アタック
if (Input.GetMouseButtonDown(1))
{
this.animator.SetTrigger("AttackTrigger"); //アニメ再生
audioSource.PlayOneShot(AttackSE, volumeSE); //AttackSE
AtariHantei.SetActive(true); //コライダon

}

459:名前は開発中のものです。
18/08/17 23:27:49.09 jjg/SVIP.net
詳しくはわからんけど根本的にやり方間違ってそうな気がするな

460:弟子
18/08/18 00:11:37.07 cxAelueQ.net
>>440,441
とりあえず、そのスクリプトを生かしてコード書いてみました
現状ではコライダーをオフにするコードがないので、コライダーにぶつかった際にオフにするという通知をします
public class AttackController : MonoBehaviour
{
void OnCollisionEnter2D(Collision2D coll)
{
if (coll.gameObject.tag == "Enemy")
{
Destroy(coll.gameObject);
Debug.Log("hit Object");
transform.parent.SendMessage("SetOffAtariHantei");
}
}
で、プレイヤーには
void SetOffAtariHantei()
{
AtariHantei.SetActive(false); //コライダOff
}
を追加します
プレイヤーとあたり判定は親子関係にしました
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
これで敵を2対置いて、ミギクリした場合としない場合で判定がちゃんとされます
URLリンク(imgur.com)

461:弟子
18/08/18 00:14:35.49 cxAelueQ.net
あぁテストする際、
void Start()
{
SetOffAtariHantei();
}
に入れて最初は通過、その後クリックで当たるとした方が分かりやすかったかもしれません><

462:名前は開発中のものです。
18/08/18 03:49:59.01 FXerNp9n.net
なんで出っぱなしになって困ってる判定を敵にあたったら消すように改修すんの?
剣を振るアニメーション終わった後にとことこ敵の前に歩いていったら攻撃があたんの?
亜空間攻撃とはなかなか見ないゲームだな
どんなゲームか


463:わからんけど普通は一定時間後にオフにすればいい SetActive falseで消えることはわかってるだろうから一定時間後にその処理を呼ぶようにすればいい 一定時間後に処理を走らせる方法はいろいろあるからググって わかんなかったらまた聞いて



464:名前は開発中のものです。
18/08/18 03:53:50.54 FXerNp9n.net
>>444
知らなければ答えなければいい
とか言って他人を煽るんだったら正しく答えてくれません?
なんで初心者が迷うような回答をいつもするんですか?

465:名前は開発中のものです。
18/08/18 11:18:41.80 CpHT33yN.net
>>441
アニメーションイベントを使うといいよ
具体的なメリットはアニメーションの好きなフレームでコライダーのオンオフできるところ
現状だと、例えば剣を振りかぶる動作の途中なのに敵がダメージ食らったりしてると思う
詳しくはウェブで!!
URLリンク(gametukurikata.com)

466:名前は開発中のものです。
18/08/18 11:49:36.64 42eZyM7+.net
<<442
>>443
ありがとうございます
攻撃→コライダ出る→敵に当たる→コライダ消えるって感じなので、攻撃を空振りしたあとに
敵に当たるまでコライダ出っぱなしになるんだけど、これはどうすればいいの?
そもそもこの攻撃の当たり判定の仕方は根本的に間違ってるの?入門本三冊持ってるんだけど
どれにも攻撃の当たり判定は載ってなかったからネット検索してやってみたんだけども
アニメーションイベント使ってやった方がいいのだろうか?ちなみに本にはアニメーションイベントのやり方は載ってなくて
ググってみたけどよく分からなかった

467:名前は開発中のものです。
18/08/18 12:18:13.14 42eZyM7+.net
>>445
>>447
ありがとうございます、一定期間後の処理で出来るようになりました。
アニメーションイベントもわからないので調べて出来るようになろうと思う
void AtariKesu()
{
AtariHantei.SetActive(false);
}
void Update()
{
//アタック
if (Input.GetMouseButtonDown(1))
{
AtariHantei.SetActive(true); //コライダon
Invoke("AtariKesu", 0.3f);
}

468:名前は開発中のものです。
18/08/18 14:52:49.51 X+sFoNwa.net
>>448
間違い。
①コライダー出す→コライダー消す
②コライダーに当たる、
①②の判定は別で処理すべき。
②で当たった判定を①に渡して、途中で消す作りにすべき。

469:名前は開発中のものです。
18/08/18 17:20:42.60 D8/ukjCM.net
raycastのrayって判定がけっこう曖昧になったりすることありますか?
マウスが乗ってるとこのterrainの座標を取得するのは問題なく出来てるんですが、xz座標を指定して高い位置から真下に飛ばしてヒットしたy座標を取得しようとすると取得できたり出来なかったり違った値が入ったりするんですが
少し感じたのはinfinityにするとしても発射位置を少し高くすると反応しなくなったりしてます

470:名前は開発中のものです。
18/08/18 19:25:51.68 An0BPv4U.net
>>449
アニメーションEventは一回わかると結構簡単だ
public void AtariKesu()のスクリプトをつける
アニメーションのEventにAtariKesuを入れるとそのコマに来たら呼び出してくれる

471:名前は開発中のものです。
18/08/18 23:30:28.71 47mEmEPe.net
>>451
曖昧になったと感じたことはない。
私は、な。

472:名前は開発中のものです。
18/08/18 23:34:58.38 CVdxGkvB.net
お前の話は聞いてない

473:名前は開発中のものです。
18/08/19 00:14:57.54 9mjqz3Tm.net
>>449
はじめて自分でアニメーションまでつけてやってみた
結構めんどくさかった
剣にコライダーつけてisTrigerをオン・オフにするようにした
コライダーのisTrigerのチェック入れておく(オフの状態)
public Collider2D coll2;
void Start () {coll2=GetComponent<Collider2D>();}
public void collOn(){coll2.isTrigger=true;}
public void colOff(){coll2.isTrigger=false;}
void OnCollisionEnter2D(Collision2D col) {Destroy(col.gameObject);}
あとは剣のanimationで振り始めにEventをつけてcolOnを選んで
振り終わりにcolOffを選ぶ

474:名前は開発中のものです。
18/08/19 00:41:49.62 gr5beU/F.net
>>452
>>455
ありがとうございます
自分もそれで試してみようと思う

475:名前は開発中のものです。
18/08/21 01:36:00.94 ypI3wEdL.net
上達するにはチュートリアルやれとしか言われないのですが、
あの数をやり終えてる人はなかなかいないと思います。
興味あるチュートリアルをやっているのか、好きなゲームを作って学んでいるのか、
皆さんはどうやって上達、脱初心者をしたのですか。

476:名前は開発中のものです。
18/08/21 01:47:03.06 en2r1zRw.net
聞いたところで何になる?
とにかく作る事。
作りたいものがあれば、それに必要なアルゴリズム、ロジックを構築する、その為にそこをしらべる。
これの繰り返し。

477:弟子
18/08/21 01:55:37.36 RFRywrT+.net
>>457
初心者スレでそれ聴かれても
自分はずっと初心者でいいかなと思ってますよ

478:名前は開発中のものです。
18/08/21 03:04:32.49 fxmPVXdZ.net
ええ…

479:名前は開発中のものです。
18/08/21 15:11:17.70 8qBPp1CD.net
>>457
チュートリアルはroll a ballしかやらなかったな
その後は作りたいゲームの案から比較的簡単なやつを選んで作っていった
上達の秘訣はググり力だと思うよ
リファレンスを眺めて思いを馳せるのもいいかもしれない

480:名前は開発中のものです。
18/08/24 11:55:13.06 Grbxnj3m.net
敵がプレイヤーに向かってくるスクリプトはできたんだけど敵の進行方向にspriteを左右に反転させるコードがわかりません
分かる方いたらよろしくお願いします。
public class Chase : MonoBehaviour
{
public GameObject Player;
public float Speed;
void Update()
{
this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);
}
}

481:名前は開発中のものです。
18/08/24 12:10:02.41 4yphetVh.net
void Update()
{
Vector3 prePosition = transform.position;
this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);
if(transform.position.x - prePosition.x >= 0){
transform.localScale.x = 1;
}else{
transform.localScale.x = -1;
}
}
こんな感じでどう?
2Dやったことないけどねw

482:名前は開発中のものです。
18/08/24 12:24:40.51 4yphetVh.net
すまん横着した
こっちで
void Update()
{
Vector3 prePosition = transform.position;
this.transform.position = Vector2.MoveTowards(this.transform.position, new Vector2(Player.transform.position.x, Player.transform.position.y), Speed * Time.deltaTime);
Vector3 scale = transform.localScale;
if(transform.position.x - prePosition.x >= 0){
scall.x = 1;
}else{
scall.x = -1;
}
transform.localScale = scale;
}

483:名前は開発中のものです。
18/08/24 12:25:36.69 4yphetVh.net
スペルミスってるw
もうだめだw

484:462
18/08/24 12:53:19.91 Grbxnj3m.net
>>465
できました
ありがとうございます

485:名前は開発中のものです。
18/08/24 13:27:58.55 4yphetVh.net
>>466
かなり当てずっぽうで書いたところはあるが…
まあできたのなら…
個人的にはscaleを1倍固定にしてるのが後々問題になりそうな気がするが
そのときはそのときで…

486:帝王
18/08/24 21:11:12.99 4jbbRJqV.net
あるアニメーション付きのアセットをいじって思ったのですが
歩くアニメーションクリップがありまして
ローカルの座標を歩いてます
そしてスクリプト上からも位置を更新して歩かせているのですが
そうしますと
アニメーションクリップの初めと後でローカル座標をいったり来たりして
グローバル座標の移動も加わって
引き戻されてワープするような歩き方になります
これはモデルだけ使ってこのクリップは使わないほうがいいのでしょうか

487:名前は開発中のものです。
18/08/24 22:16:08.41 Grbxnj3m.net
>>467
いや助かりました、ありがとうございます
素人すぎてどういう問題がでるのか想像できないけど、今のところは大丈夫そうです

488:名前は開発中のものです。
18/08/24 22:34:13.70 W1ALrPmX.net
>>468
その場で歩くモーションないの?もしくはそういうふうにアニメーションを修正できないの?
だとしたらそのアニメーション使うのを諦めるか、アニメーションの終わりを捕まえてそのタイミングで座標を更新するかじゃないかな
後者は相当シビアにやらないと瞬間移動しそうだけど

489:帝王
18/08/24 22:56:58.


490:98 ID:4jbbRJqV.net



491:名前は開発中のものです。
18/08/24 23:37:56.22 k7t8ZXtf.net
>>471
いや、普通はその場で歩くモーションで作るよ
モーション終わりを捕まえるのは超苦肉の策だと思って
歩く速度が少し変わったらアニメーション全部修正なんてやってられんでしょ

492:名前は開発中のものです。
18/08/25 06:27:10.69 RNfQBHTM.net
>>469
例えば、このモンスターは大きさ10倍だぁ!!
みたいなときにね、まあ、困れ
>>468
諦める前にAnimationの設定で
Root Transform Position(XZ)項目のBake Into Poseに
チェックが付いてるはずだから外してみてくれないかい?
URLリンク(imgur.com)

493:帝王
18/08/25 11:43:31.25 YP3VndSY.net
>>473
ありがとうございます
たしかにclipのほうにはその設定があります
それをいじればたしかにその場で動かすことも可能になりそうですね
Based UponでCenter of Massにすることもできるのですね
しかしRigをHumanoidではなくRegacyでやっているため
アニメーションタブにはその設定は出ないようです
UNITY 逆引き 300の極意という本の
アセットでZombie (Zombie Draft)というフリーのものでやってるんですけど
まだ当方UNITYの3Dについてあまり勉強していないため
アニメーションの読み込みについてよくわかってないので
とりあえずどんなものか知ってみたくて質問しました
何かを作ってるわけではないので
動作の修正を完了できていませんが良しとします

494:帝王
18/08/25 11:58:14.80 YP3VndSY.net
RegacyではなくLegacyでした

495:名前は開発中のものです。
18/08/26 12:33:10.62 9w/Vho71.net
>>100
ちと、これは、、、って感じですよね。
If で係数算出だけって言うのが頭整理出来てないって言われちゃってんだよね。
普通はそこで値算出までもっていって最後にposition にぶつけますよね。そしたらdirなんて変数無くせますよ
BASIC と同じ構造化の考え方なんで、このブロックは何をしたいって意識して書いたら良いと思います。
この位のステップで混乱しちゃダメで、もうちょい頭を整理してから臨んで見よう~

496:名前は開発中のものです。
18/08/26 15:32:17.94 37NXT9po.net
スキンメッシュのキャラクターの肌表面に汗や血を流させるようにしたくて
試行錯誤していますがうまく出来ません。何かやり方がないでしょうか?
Textureを動かすと部分的にはそれっぽい表現ができますが、元モデルのUVマップに
方向が依存するので今一つです。キャラクターの腕と足で流れる方向が違ったり。
液体系のアセットなども見てみましたが、あまりよくわからず、購入にも踏み切れません。
どなたかご教示くださいー

497:名前は開発中のものです。
18/08/26 19:09:45.46 nJEwGv2d.net
>>477
ここは初心者質問スレです
そのような高度なことは
スレリンク(gamedev板)
こちらでお願いします

498:名前は開発中のものです。
18/08/28 10:20:24.85 pajUwPk7.net
>>477
InkPainterってアセット使えばできそうではある
俺は使い方知らないから詳しくは開発者のブログ読んでね
URLリンク(esprog.hatenablog.com)

499:名前は開発中のものです。
18/09/01 10:07:46.42 PNIbFc8L.net
URLリンク(baba)


500:-s.hatenablog.com/entry/2018/01/16/212800 こちらのサイトの通りC#のスクリプトをボールに反映させたのですが、再生ボタンを押してもボールが動きません…。 なんとか自力で調べようとしましたが僕の力不足で答えにたどり着けませんでした。 このような場合どうすればいいのでしょうか?



501:名前は開発中のものです。
18/09/01 11:59:09.76 bX6t3Mwb.net
スクリプト BallControllerの speedの値はちゃんと10になっているかい?
スクリプトの方じゃなくてインスペクタの方を確認しておくれよ

502:名前は開発中のものです。
18/09/01 12:58:19.94 PNIbFc8L.net
>>481 なっていませんでした…。ありがとうございます。
そしたら今度は再生ボタンを押したら「All compiler errors~enter playmode.」の文字が出るようになってしまいました。
再起動しても同じです…
どうすればいいでしょうか?

503:名前は開発中のものです。
18/09/01 13:02:08.53 bX6t3Mwb.net
もう一つ上か下にエラーが出てるはず
それを教えてたもれ

504:名前は開発中のものです。
18/09/01 13:07:55.03 PNIbFc8L.net
Assets/BallController.cs(17,0): error CS1525: Unexpected symbol `void'
これでよろしいでしょうか?

505:名前は開発中のものです。
18/09/01 13:16:33.23 bX6t3Mwb.net
スクリプトを弄ったな?
まあそれはいいんだけど恐らく
public float speed = 10;のセミコロンが抜けている;

506:名前は開発中のものです。
18/09/01 13:18:10.71 PNIbFc8L.net
確認しましたが抜けていませんでした…。スクリプトはコピペ以外は何も弄ってないです。

507:名前は開発中のものです。
18/09/01 13:23:37.83 bX6t3Mwb.net
じゃあ括弧{}かもしれない
とにかく17行目の辺りをコピペ元とよく比べてみなさい

508:名前は開発中のものです。
18/09/01 13:29:58.67 PNIbFc8L.net
括弧の抜けもその他の抜けも見つからなかったです…。

509:名前は開発中のものです。
18/09/01 13:37:34.53 bX6t3Mwb.net
17行目はなにが書いてあるんだい?

510:名前は開発中のものです。
18/09/01 13:42:24.67 PNIbFc8L.net
void Start () { と書いてあります。
念のためスクリプトの画面を撮影した画像のリンク貼っておきます。
要領悪くて申し訳ないです。
URLリンク(imgur.com)

511:名前は開発中のものです。
18/09/01 13:47:28.12 bX6t3Mwb.net
なるほどw
赤の波線出てる方の void Start(){ }けしたまえ
{}もだぞ

512:名前は開発中のものです。
18/09/01 13:56:57.88 PNIbFc8L.net
赤線ついてる行のvoid Start(){ }全部ですか?

513:名前は開発中のものです。
18/09/01 14:01:48.35 bX6t3Mwb.net
17~19行全部だ
Startメソッドは二つもいらぬ

514:名前は開発中のものです。
18/09/01 14:08:50.21 PNIbFc8L.net
消しましたがまたあのエラーメッセージが出ました…
ちなみに消した後のスクリプトの画面です。これからバイトなので返信遅れると思います。申し訳ありません…
URLリンク(imgur.com)

515:名前は開発中のものです。
18/09/01 14:10:48.40 bX6t3Mwb.net
おっと、見落としてたわ
14行目の}も消しなさいw

516:名前は開発中のものです。
18/09/01 14:12:43.11 ZtaY+aBO.net
void start(){}}
}がひとついらない

517:名前は開発中のものです。
18/09/01 14:13:50.11 bX6t3Mwb.net
全部解決したら解説しようと思ってたのに…
まあいいや、困れ

518:名前は開発中のものです。
18/09/01 22:44:40.84 PNIbFc8L.net
>>495動きました!!!ありがとうございます!!返信遅れて申し訳ありません!!

519:名前は開発中のものです。
18/09/01 23:08:55.53 vbV+SNJ0.net
失礼します。
Input.GetKey(KeyCode.LeftAllow)
が押しっぱなしではなく離した瞬間のみtrueになるのですが
原因がわかる方いらっしゃいますでしょうか。
unityのバージョンは2018.2.3f1です。

520:名前は開発中のものです。
18/09/01 23:12:38.72 ZtaY+aBO.net
離した瞬間にtrueになるって確認してるコードが間違ってんじゃないの

521:名前は開発中のものです。
18/09/01 23:20:05.44 vbV+SNJ0.net
>>500
実際に動作させるとそうなります。
Debug.Logで確認しても離した瞬間のみです。
使用している関数は間違いなくGetKeyであり、GetKeyUpではありません。
void Update(){
Debug.Log.("Update")
if( Input.GetKey(KeyCode.LeftAllow)){
Debug.Log("Left");
}
}
とすると、Updateは毎フレーム出ますがLeftは離した瞬間のみ出ます。

522:498
18/09/01 23:34:43.35 vbV+SNJ0.net
原因判明しました。
Virtual Joy StickというAssetのpluginがなにか影響していたようです


523:。 Assetsから削除したところ通常の動作に戻りました。 ありがとうございました。



524:名前は開発中のものです。
18/09/02 15:45:44.96 FDNByjh9.net
Android用のアプリを作っていて、
アプリを起動したときに、画像の一部を読みこんだ段階でアプリの画面が写るようにしたいと思い、
アセットバンドルを使おうとしているところです。
現在、Asset Bundle Browserを使って、複数のAssetBundleに画像を何枚かに分けて入れて、
AssetBundleをビルドし、StreamingAssetsフォルダに保存するところまでできました。
ローカルのStreamingAssetsフォルダから読み込む形です。
Androidでアプリを起動したときに、初めのAssetBundleの画像を読みこんだ段階で
アプリの画面が写るようにしたいと思っていますが、
AssetBundleを読み込むためのコード作りで躓いています。
URLリンク(tsubakit1.hateblo.jp)
このページ内の
「1.ABに8枚ずつ格納し、全てのスプライトを逐次ロードする(コード)」のところにある参考コード
URLリンク(gist.github.com)
を参考にしてAndroid用のコード作っているのですが、
コードの訂正などをお願いします。
(続く)

525:503
18/09/02 15:48:24.31 FDNByjh9.net
1 using UnityEngine;
2 using System.Collections;
3 using UnityEngine.UI;
4
5 public class LoadAssetbundle : MonoBehaviour
6 {
7 IEnumerator Start ()
8 {
9 var image = GetComponent<Image> ();
10 var fileNames = new string[] { "ファイル名1", "ファイル名2", "ファイル名3" };
     ?この10行目には一つ目のアセットバンドル内のファイルを書けばよくて二つ目以降のアセットバンドルに関しては省略でいいのでしょうか?
11 var assetbundleNames = new string[] { "/アセットバンドル名1", "/アセットバンドル名2", "/アセットバンドル名3" };
12
13 yield return new WaitWhile (() => Input.GetMouseButtonDown (0) == false);
14
15 float time = Time.realtimeSinceStartup;
16
17 // AssetBundle内のスプライトを逐次読込
18 foreach (var assetbundlename in assetbundleNames) {
19 var assetbundle = AssetBundle.LoadFromFile (Application.streamingAssetsPath + assetbundlename );
20
21 foreach (var file in fileNames) {
22 var asset = assetbundle.LoadAsset<Sprite> (file);
23 image.sprite = asset;
24 }
25 assetbundle.Unload (false);
26 }
27
28 Debug.Log (Time.realtimeSinceStartup - time);
29 }
30 }
よろしくお願いします。

526:名前は開発中のものです。
18/09/02 16:08:09.77 xFcalBhM.net
ゲーム画面のピクセル単位で座標から色を取得する方法を教えてくれ

527:名前は開発中のものです。
18/09/02 16:39:34.11 aq/4hagr.net
ageる奴には教えない

528:名前は開発中のものです。
18/09/02 16:46:36.29 xFcalBhM.net
ゲーム画面のピクセル単位で座標から色を取得する方法を教えてくれ

529:名前は開発中のものです。
18/09/02 17:50:26.80 y/8eZbrS.net
w

530:弟子
18/09/02 19:13:48.52 /2HwT9SP.net
>>505,507
うんと、簡単なカラーピッカーですけど、こんなんでヒントになるかな
URLリンク(i.gyazo.com)
URLリンク(i.gyazo.com)
クリックしたとこの色をRGBa値を表示してくれます
URLリンク(i.gyazo.com)
どっかのサンプルですが、どこから拾ったから忘れました><

531:名前は開発中のものです。
18/09/02 21:40:20.57 yN36FyeR.net
拡張メソッドは専用のスクリプト作って書けばいいんですよね?それとも何か保存用の機能とかあったりするんですかね?

532:名前は開発中のものです。
18/09/02 22:25:29.35 xFcalBhM.net
>>509
ありがとうございます!これをヒントにもう少し自力で勉強してみますね
では失礼しました

533:名前は開発中のものです。
2018/0


534:9/02(日) 23:40:45.76 ID:qrAMxSjg.net



535:名前は開発中のものです。
18/09/03 07:06:24.74 vc7sWafP.net
>>504
アセットバンドルもコルーチンもよくわからないけど
ぱっと見、画像を表示するループの前に中断処理を入れているように見える
試しに13行目 yield return ~
を23行目 image.sprite = asset;の下に入れてみたらどうだい?
見当違いだったらごめんよ

536:名前は開発中のものです。
18/09/03 20:14:52.94 aLwDHYRc.net
public float interval = 0.1f;
void OnTriggerEnter2D(Collider2D coll) //当たり判定
{
if (coll.gameObject.tag == "fire") //fireの当たり判定
{
StartCoroutine("Blink");
}
}
//点滅
public IEnumerator Blink()
{
while (true)
{
var renderComponent = GetComponent<Renderer>();
renderComponent.enabled = !renderComponent.enabled;
yield return new WaitForSeconds(interval);
}
}
攻撃貰った数秒だけ点滅させたいんですけど、うまくいきません。
分かる方いたらよろしくお願いします。

537:名前は開発中のものです。
18/09/03 20:59:49.58 tgVVdu0K.net
どううまく行かないのかくらい書こうか
数秒って仕様に対してwhile(true)はおかしくない?

538:名前は開発中のものです。
18/09/03 21:04:21.53 aLwDHYRc.net
当たり判定後にずっと点滅になるのを指定した時間だけ点滅するようにしたいです

539:名前は開発中のものです。
18/09/03 21:15:54.30 +w8X/Qp7.net
while(true)を
for(float i = 0; i < 指定秒; i += interval)
とかに書き換えればええんでないの

540:名前は開発中のものです。
18/09/03 21:26:54.57 aLwDHYRc.net
ありがとうございます!ちょっとためしてみます

541:名前は開発中のものです。
18/09/03 21:35:07.14 h+zzshNm.net
>>513
ありがとうございます。
試してみましたがあまり変わりませんでした。
他のところが間違ってるのかもしれないです。
どなたか複数のアセットバンドルの内、一つを読み込んだ段階で
画面を表示させるためのコードがわかるかたいたら教えてください。

542:514
18/09/03 21:37:25.36 aLwDHYRc.net
ためしてみました、2回に1回くらい消えたままになります

543:514
18/09/03 21:41:49.37 aLwDHYRc.net
>>517秒数変えたら大丈夫でした
ありがとうございました!

544:名前は開発中のものです。
18/09/06 22:10:10.37 Wdj0MTwo.net
今2dで見下ろし型のゲームを作ろうとしていて、移動した方向にプレイヤーが向くスクリプトを書いているのですが、
void update()

input(); //入力

void fixedupdate()

move(); //古座標取得、移動
rot(); //回転

という風にやっているのですが、移動は出来ても回転しません
ログで座標を取って見ると古座標と現座標が同じになっていました
fixedupdateやupdate内では座標情報は変化しないのでしょうか

545:名前は開発中のものです。
18/09/06 22:16:10.61 U2D2+Vnm.net
まず肝心のrot()はどうなってますか?

546:名前は開発中のものです。
18/09/06 22:22:36.21 Wdj0MTwo.net
拡張メソッドで
public static void LookAt2D(vector3 transform_position,vector3 moveway,vector3 target_position)

vector3 rotvectol=(target_position-transform_position).momalized;
Quateinion FromToRotation(vector3 moveway,rotvectol);

でプレイヤーの後ろ側を古座標に向けるように
LookAt2D(transform.position,vector3.down,old_playerpos);
としています ちゃんとtransform.translateで動かす前に古座標を取得しています

547:弟子
18/09/06 23:16:41.21 U2D2+Vnm.net
一応、参考までに
URLリンク(tsubakit1.hateblo.jp)
ここの真ん中あたりにFromToRotationのサンプルあるので
まず、それを単体(例えば何かのキー押したら動く)ようにして確認してみるのはどうでしょうか
自分サンプル作ったら特に問題なかったです
それから、コードですがコピペだとしたらスペルミスがあるのですが・・・


548:



549:名前は開発中のものです。
18/09/06 23:24:25.34 JB0Cf20e.net
X それを単体(例えば何かのキー押したら動く)ようにして
○ それを単体、例えば何かのキー押したら動くようにして
()がつく場合は()が無い場合に日本語が通じるように書くこと。人に教える前に日本語勉強しろ

550:名前は開発中のものです。
18/09/06 23:25:51.63 U2D2+Vnm.net
>>526
指摘ありがとう!
俺ファンの人!

551:名前は開発中のものです。
18/09/07 19:42:20.51 lsD5Bh9y.net
オブジェクトの位置をインスペクター初期に設定した位置に戻すのって
初期にオブジェクト位置を取得しておいて
戻したい時にその取得値をぶっこむしかいないですか?
なんか簡単にインスぺの初期値を取得するのってないんですか?
例えるならこんな感じのです
transform.localPosition = Vector3.inspecterReset
または
transform.localPosition = new Vector3(インスぺ初期値, インスぺ初期値, インスぺ初期値)

552:名前は開発中のものです。
18/09/07 21:54:41.80 9OXGk4KY.net
>>528
なんで、それじゃあかんの?

553:528
18/09/07 22:28:16.56 lv+ZCuPP.net
オブジェクトが50個になるので、全部記録させるの手間だなと思って
ストラクトの変数でどこかに保管されてるのかなと思ったのですが、なさそうですね

554:名前は開発中のものです。
18/09/07 22:42:52.52 HEwz+CQu.net
startで初期値を保存しとくscript作って貼ればいいんじゃない?

555:名前は開発中のものです。
18/09/15 23:50:07.68 LxWm2AzV.net
ガチ初心者ですが、今おすすめの書籍ってなんですかね? 2018.2対応だと猫が書いてあるのとひよこのやつがヒットしたんですが
今のところやってみたいのはちょっとした2Dパズルゲームの作成→艦これもどき(どちらかというと改みたいな落としきりの方向。ブラゲやスマゲ化はまだ敷居が高そうなので目指さない)なんですが

556:名前は開発中のものです。
18/09/16 01:04:57.37 S6i6ogcT.net
>>532
本屋で中身軽く見て良さそうなやつ
そもそもどうしても書籍じゃなきゃヤダってわけじゃないならgoogleをおすすめする

557:名前は開発中のものです。
18/09/16 09:22:28.75 WeoJYzw7.net
>>533
某サイトで金はらって本読んで勉強しろって煽られまして…
あとちょっとでとあるサイト(上のとは別)のお題が完遂できそうなんですが、バージョン違いによる項目の違いで難儀しています…

558:名前は開発中のものです。
18/09/16 09:26:30.00 WeoJYzw7.net
誤解されないように書いておくと533の質問はここでしかしてないです

559:名前は開発中のものです。
18/09/16 10:48:55.67 WeoJYzw7.net
連投すみません。535は533の質問ではなく532の質問でした。
マルチでもいいよとおっしゃっていただけるのでしたら534についてここで伺ってみたいのですが

560:名前は開発中のものです。
18/09/16 10:59:56.09 dLLBcIBT.net
スクリプトで他のオブジェクトにセットしてあるスクリプトのメソッドを呼び出したいんだけど、ネットで調べたけどエラーになってできないんだけど
どういう風に書けばいいのか教えて

561:名前は開発中のものです。
18/09/16 11:45:32.69 8T0hdr1g.net
OnTriggerEnter2Dで敵と剣がヒットした位置にエフェクトを出したいのですが良い方法はないでしょうか?
調べてみるとGetContactする方法がでてくるのですがどうやらOnCollisionEnter2Dのほうじゃないと取れないようでisTriggerをオフにしろとか回答されてたりするけどそれじゃ剣コリジョンで押したりできるようになっちゃうし。
いまは剣と敵の中間位置に適当に出してるんですが剣も敵も長いのですごい変で萎えます

562:名前は開発中のものです。
18/09/16 11:49:19.02 8T0hdr1g.net
>>537
OtherComponent otherCmp = otherObj.GetComponent<OtherComponent>();
if( otherCmp ){
otherCmp.myfunc();
}
これでどうだ

563:名前は開発中のものです。
18/09/16 12:13:54.15 WeoJYzw7.net
532ですが、結局ヒヨコ本に手を出してみました
書店が近くにないのでレビューが頼りの博打ですが



564:ーグルで調べるのだと結局本のおすすめばっかりヒットするんです…



565:名前は開発中のものです。
18/09/16 12:18:30.02 yVNdBTmY.net
というか書籍なぞるなら過去の落としてver合わせるのが普通だぞ
最新verの仕様理解するだけならgoogle先生やら講演資料漁る方が早い

566:弟子
18/09/16 12:52:45.16 LNRMkHTN.net
>>537
昔やった事あるので、知識スレに簡単にまとめてあるので参考にどうぞ
スレリンク(gamedev板:32番)

567:名前は開発中のものです。
18/09/16 13:27:36.97 WeoJYzw7.net
Google先生に「Unity 2018 初心者」「Unity 2018 入門」などを聞いても侍何とかぐらいしか2018の実践形式をやってなかったです(古いバージョンのならブロック崩しとSTGのが出てきました)。ほかは本の紹介ばかりでした
侍なんとかは操作方法についての説明がなくて意味不明だったのでやむなく本を買いました

568:名前は開発中のものです。
18/09/16 13:33:55.07 wFu+NAEH.net
買った本のタイトルは?

569:名前は開発中のものです。
18/09/16 13:36:18.44 WeoJYzw7.net
Unity2018入門 最新開発環境による簡単3D&2Dゲーム制作 というやつです。

570:名前は開発中のものです。
18/09/16 13:38:01.65 WeoJYzw7.net
とはいえ、これでも実行結果が参考図と食い違っていて困っているのですが(作中使用されてるバージョンが書いてないんですよね…今年8月発売したものらしいのでバージョンは古くないはずなんですが)


次ページ
最新レス表示
レスジャンプ
類似スレ一覧
スレッドの検索
話題のニュース
おまかせリスト
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch