トップページgamedev
1002コメント356KB

【3Dゲームエンジン】Unity質問スレッド26 [無断転載禁止]c5ch.net [無断転載禁止]©5ch.net

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2016/08/06(土) 10:54:54.50ID:D8D0bsd/
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。
Windows/Mac用。JavaScript/C#といった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他

次スレは>>970を踏んだ方が建てること。ダメなら>>980>>990が建てて下さい。

■本スレ
【3Dゲームエンジン】Unity総合スレッド28 [転載禁止](c)2ch.net
http://echo.2ch.net/test/read.cgi/gamedev/1454596460/l50

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

●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・ユーザーガイド
 http://docs.unity3d.com/ja/current/Manual/UnityManualRestructured.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質問スレッド25
http://echo.2ch.net/test/read.cgi/gamedev/1465721773/
0047名前は開発中のものです。2016/08/17(水) 08:48:01.83ID:dVTW0RQ3
>>46
いや公式にローグライクのチュートリアルあるだろ…英語だけど
http://unity3d.com/jp/learn/tutorials/projects/2d-roguelike-tutorial
0048名前は開発中のものです。2016/08/17(水) 08:54:42.84ID:dVTW0RQ3
グラフィッカーならとりあえずそのチュートリアル用の完成プロジェクト
https://www.assetstore.unity3d.com/en/?_ga=1.50501546.2057763542.1460350084#!/content/29825
をダウンロードしてきてその素材を入れ替えたりするだけでも
ある程度独自のゲームになる。
システムまで独自のモノを作りたいっていうのは
そのチュートリアルの中にあるプログラムくらいは
ちゃんと理解できるようにならなきゃ無理だ

Unityは見た目に反してちゃんとプログラムできないと
どうにもならないからホントにやりたいなら
C#は一から真面目にやった方がいいよ。
0049名前は開発中のものです。2016/08/17(水) 12:24:04.84ID:mcVSZUZ5
>>48
とても詳しく、ありがとうございます。
公式のローグライクは目を通したんですが、
言葉足らずですみません、ドラクエのような、エンカウントして戦闘シーンに入るようなテンプレ的RPGを作りたいと思っています。

おっしゃるように独自のシステムを導入するのは敷居が高いと考えていて、チュートリアルなどに沿って、システムはそのままにビジュアルを入れ替えるやり方をとろうと思います。

なので、上で述べたような古風なRPGの仕組みがつくれるものを探しています。

長々すみません。よろしければご回答お願いします。
0050名前は開発中のものです。2016/08/17(水) 13:07:42.41ID:OMiP2nje
>>49
マップチップを敷いてそれぞれにイベントを付けて、
キャラクターを配置してコントローラーとアニメーションを付けて、
移動した先にあるマップチップのイベントを実行してエンカウントしたなら戦闘シーンに切り替える

そんな感じで一つずつやりたいことを実装して行けば思ったより敷居は高くないよ
C#に初めて触れた俺でも上の動作だけなら一週間掛からなかったし
0051名前は開発中のものです。2016/08/17(水) 13:44:55.79ID:xtRVLQJ4
>>50 は他の言語使えるからじゃね?
プログラム自体が初めてだと結構きついと思う。
>>49
ドラクエ型の2Dゲームのアセットは探せばあるかもしれない(そのてのアセットはソースコード付いてる)
海外圏だとRPGはドラクエみたいな2Dマップ移動で戦闘を別シーンってのは凄くマイナー。
0052名前は開発中のものです。2016/08/17(水) 14:00:06.78ID:dVTW0RQ3
いや〜、正直ソースコードなんかついてても
読めない人間には読めない訳でツクール買うのが一番早いと思うなぁ。
Unityでツクールでできる以上のRPG作るってかなり至難の業だと思うよ。
0053名前は開発中のものです。2016/08/17(水) 14:02:59.97ID:arOENRJS
最近は主婦でもゲーム制作が可能だとか何とか言ってはいるけど、作ってくうちにシステム面とか自分なりのアレンジ加えていきたくなって、結局一から考え直さなきゃいけなくなるよ
0054名前は開発中のものです。2016/08/17(水) 14:29:55.79ID:01B/ASfi
FCのドラクエ1なら50のやり方でまんまできそう
あとはプレイヤーをぐいぐい引き込む愉快なシナリオを書くだけ
0055名前は開発中のものです。2016/08/17(水) 15:12:09.86ID:iflHNXl6
>あとは...愉快なシナリオを書くだけ
プログラミングに比べて難易度に雲泥の差があるぞおいw
0056名前は開発中のものです。2016/08/17(水) 15:19:37.68ID:0UrN0mAV
つかプログラムだってC#に限らず出来る奴には何の事ないけど出来ない奴はほんと出来ない
勉強すればたいていの奴は意味を理解できて変更することまでは出来るんだけど
自分の望む動作をするプログラムを書けるレベルまでになると途端に少なくなる
底辺プログラマーとか言いながらも介護底辺に比べりゃ倍以上の年収差あるし一応才能なんだから自慢していい
0057名前は開発中のものです。2016/08/17(水) 21:10:20.75ID:BuJiARW6
エロゲメーカーでフルスクラッチのノベルゲーエンジン作ってた時手取り15万しかなかったな…
0058名前は開発中のものです。2016/08/17(水) 21:46:50.94ID:dj2hcyLt
ノベルゲーエンジンって一人月もかからなそうだなw
よく仕事として継続できたものだ、ゆとりのある職場だったんだなあ
0059名前は開発中のものです。2016/08/18(木) 00:09:02.13ID:a2KvP8wo
ちょっと調べてみて驚いたけど
最近のエロゲのシステムって、結構と多機能なのな
0060名前は開発中のものです。2016/08/18(木) 00:19:24.99ID:zAtsAnoE
>>58
コアとなるライブラリの類を使えばいけるな。
ただ読み込みやら何やらまで1から作るとなると1人月では無理。
0061名前は開発中のものです。2016/08/18(木) 03:33:03.98ID:EHkzLZ+D
ライブラリに一切頼らずJavascriptで書いたとして、
たぶんソースとしては100kb超えるかどうかってところ
仕様が固まってれば慣れてる奴なら数日でモック上げて来るレベルだな
0062名前は開発中のものです。2016/08/18(木) 07:48:11.36ID:zLczGt6V
フリーのいいエンジンがいくらでもあるからな。それつかうのが一番だろうけど
0063名前は開発中のものです。2016/08/18(木) 10:59:24.31ID:tY/o8/tU
>>61
マジかJavascriptすげーな。
スクリプトコンパイラやファイルのパッキングツール、エフェクト関連のシステムとかも全部作ったからC++&DirectXで数日では無理だったわ。
0064名前は開発中のものです。2016/08/18(木) 13:09:50.92ID:a2KvP8wo
ここUnityスレだし、Unity+JSでってことっしょ
0065名前は開発中のものです。2016/08/18(木) 13:18:59.76ID:2/nrmEvj
>>63

お前のがスゲーよ

エフェクトがらみをC++&DirectXで作るとか、マジゲームプログラマーじゃん
そんな奴が、わざわざUnity使うことも無かろうにw

ゲームプログラマーは、他の業種のプログラマーより能力高いのは確か
0066名前は開発中のものです。2016/08/18(木) 13:36:21.50ID:teq4h2ez
AIプロ「なん・・・だと?」
0067名前は開発中のものです。2016/08/18(木) 17:04:25.12ID:Jg4NmsH4
他と比べてゲームはアルゴリズムが複雑すぎる
0068名前は開発中のものです。2016/08/18(木) 19:38:53.05ID:EkYF26JR
複雑なゲームプログラム作る人なんて何十人のプロジェクトでもたった数人の秀才たちだけ
ほとんどのゲーム関係者はプログラミングとは関係ないとこで仕事してる
0069名前は開発中のものです。2016/08/18(木) 20:25:45.32ID:ykSiB8IJ
腕の良いプログラマが公開してるデモや技術資料をたまに見るが、
ああいう人達が何かゲームを完成させたという話をあまり聞かない
0070名前は開発中のものです。2016/08/18(木) 20:35:44.29ID:5n3D0lf1
あまり?じゃあいくつ聞いたんだよ
0071名前は開発中のものです。2016/08/18(木) 21:31:28.29ID:a2KvP8wo
まあ成果物を公表する機会ってあんまり無いしなあ
Unityなら同人ゲームとか作ってれば別だろうけど
0072名前は開発中のものです。2016/08/18(木) 21:34:39.09ID:pW4GFcrv
同人ゲー作ってないで会社で働いてるんじゃないの
腕があるなら引っ張りだこだろうし
0073名前は開発中のものです。2016/08/18(木) 21:45:01.08ID:mgBlCt7n
>>69
そりゃあ畑が違うからね。
プログラマはソースを読み書きできるのであって、ゲームデザインできるわけじゃないよ。内部のロジックは作れるけど、ゲームの「画作り」とかレベルデザインはまた別の才能が必要だと思う
0074名前は開発中のものです。2016/08/19(金) 01:41:09.99ID:6ZlOkFXp
unity2dって画像の背景をあらかじめ自分で透過処理しておかないといけないんですか?
背景が真っ黒なキャラクター画像を使いたかったのですが・・・
0075名前は開発中のものです。2016/08/19(金) 02:59:18.74ID:/EjNTis4
>>74
パンがなければケーキを食べればいいじゃない
レタッチソフト使えないならシェーダ評価すればいいじゃない
0076名前は開発中のものです。2016/08/19(金) 08:11:59.03ID:6ZlOkFXp
>シェーダ評価すればいいじゃない
すまん、くわしく
0077名前は開発中のものです。2016/08/19(金) 08:37:39.96ID:057SvZeP
>>76
こういう話
http://wiki.unity3d.com/index.php/Transparent_Single_Color_Shader
0078名前は開発中のものです。2016/08/19(金) 13:05:13.62ID:MfZolbIM
>>75
>シェーダ評価すればいいじゃない

プログラマーぽい言い方w
憧れるww
0079名前は開発中のものです。2016/08/19(金) 20:48:26.53ID:El7UuHQ0
プロシージャルで実行時にデータを生成するものを生成後にシリアライズして保存しておきたいのですが、
prefabutility.replacePrefab()で値を保存しようとしてもエディタ上でしか動きません。
単純に生成したデータを取り出しやすい形でシリアライズしたいだけなのですが、別に良い方法は有りますでしょうか。
playerprefsに入れるのはなんか違うし……
0080名前は開発中のものです。2016/08/20(土) 09:17:20.49ID:G6/l+4JG
>>79
UnityのGameObjectとかのクラスを含んでいないなら普通にシリアライズして書き込み可能なPathに突っ込めば良いのだけど。(XMLでもJSONでも、実験以外オススメはしないけどPlayerPrefsに文字列として突っ込んでも良いし)
含んでいると実行時はちとムリじゃないかな?(Prefabの書き換えはEditor用だし)
0081名前は開発中のものです。2016/08/20(土) 10:40:36.50ID:59ryz1Y8
>>79
それはゲーム業界では一般的にセーブ機能と呼ばれるものだよ…
ttp://magnaga.com/unity/2016/01/11/unity-save/
0082名前は開発中のものです。2016/08/20(土) 11:12:38.40ID:Lc7rc6VO
公式のライブトレーニングで最近Scriptable Objectsが続いてるから推奨してるのかもよ
外部ファイルに保存するよりずっと手軽だよ
0083名前は開発中のものです。2016/08/20(土) 13:29:13.76ID:SUxNn72f
ゲーム外時間をオフラインでチェックできるプラグイン無料でどっかにないかな
最近のアプリはオフラインで時計いじっても変えられないよね
0084名前は開発中のものです。2016/08/20(土) 14:38:41.15ID:ZZLoYJLd
ゲーム外ってどういうことかな
察するに時計変更系の不正対策かな
単にゲーム中時間を計測するならdeltaTimeでも加算して永続化しとけばいいと思うけど、ゲームしてない時の時間を裏取るならオンラインでNTPサーバでも参照するしかないんじゃない
0085名前は開発中のものです。2016/08/20(土) 15:23:43.95ID:yunjYFxQ
放置系アプリの時刻操作を不正と言われるのはしっくり来ない
時計進めなかったらクリアまでリアルで数百年掛かるアプリとか平気であるからな
0086名前は開発中のものです。2016/08/20(土) 19:00:11.82ID:QRMw57ry
そんなゲームは捨ててしまえw
0087名前は開発中のものです。2016/08/20(土) 21:05:06.49ID:l+d3uJAW
>>85
クッキークリッカー系のアプリに終焉を求める方がどうかしてるけどなw
0088名前は開発中のものです。2016/08/21(日) 22:36:17.83ID:LLQDZSWg
AdMobのネイティブ広告って、
まだUnityに対応してないんでしょうか?
0089名前は開発中のものです。2016/08/21(日) 22:49:08.97ID:ju/x4vEG
質問です
unityでexcelのような表を表示させて、データをいじれるようにしたいのですが、GUI並べて、それっぽいものを作るしかないでしょうか?
それとも、excelみたいなGUIはあるのでしょうか?
0090名前は開発中のものです。2016/08/21(日) 22:56:40.80ID:ahGGETms
>>89
作り付けの表計算機能はない。
だから「GUI並べて、それっぽいものを作るしかない」ね
0091名前は開発中のものです。2016/08/21(日) 23:59:36.50ID:9ZwIxvTH
>>90
ありがとうございます
やってみます
0092名前は開発中のものです。2016/08/22(月) 20:02:22.42ID:YEl/jjEb
作ったプロジェクトをUSBで他のPCに移動しても使えるようにするにはどうすればいいですか?
0093名前は開発中のものです。2016/08/22(月) 20:23:54.38ID:7Sz325Im
使えないっけ?
0094名前は開発中のものです。2016/08/22(月) 22:02:49.64ID:s9Czu+9v
いやそのまま開けるだろ
5.4になって変わったのか?
0095名前は開発中のものです。2016/08/22(月) 22:49:40.81ID:FlKvhPf4
ファイルシステムや文字コードの違いでそのままじゃ開けないとか以外は
0096名前は開発中のものです。2016/08/23(火) 09:27:08.38ID:rq7/gI1u
>>92 新規でプロジェクト作って移動したいプロジェクトを新規で作ったプロジェクトと同じ名前にして起動すればいい
もちろん同じフォルダ内に置いて
0097名前は開発中のものです。2016/08/23(火) 10:12:55.75ID:aTSn8auE
そんな事しなくて普通にファルダコピーしただけで動く
もちろんアセットにしてエキスポート、インポートしても動く
新しいバージョンから古いバージョンへは基本動かない
0098名前は開発中のものです。2016/08/23(火) 10:30:08.16ID:KzCtSrx9
Gitお勧め
0099名前は開発中のものです。2016/08/23(火) 11:30:43.03ID:VUOsRbsD
素朴な疑問なんですが、
デフォルトの MainCamera と Canvas の領域がまったく異なるのはどうしてですか?
Camera の範囲を Canvas にあわせているのですが、正しいでしょうか?
0100名前は開発中のものです。2016/08/23(火) 11:41:09.94ID:yDD6X/jq
>>99
Canvasは同じスペース上にあるけど描画の仕組みは
他のオブジェクトと根本的に違う。
カメラを合わせる必要はない。
インスペクター上でRenderModeをScreenSpace-Cameraにして
カメラを指定してやれば自動でカメラにあうようになる。
0101名前は開発中のものです。2016/08/23(火) 12:20:51.53ID:bTRjFqhU
Canvasは何であんな邪魔くさい形で表示してるんだろうな
シーンビューに置く必然性が無いんだから別窓に分ければ良いのに
0102名前は開発中のものです。2016/08/23(火) 13:08:05.08ID:VUOsRbsD
>>100
ScreenSpace-Cameraが便利そうなのでこれでやってみます。
ありがとうございました。
0103名前は開発中のものです。2016/08/23(火) 13:38:49.19ID:JkGv7l3C
Photonを使って2DアクションCo-opゲームを作ってるんですが
敵の同期をする時、プレイヤーと同じように位置とアニメーションを同期すると
通信負荷が限界に達するようで切断してしまいます。
ダメージ処理も含めて敵の同期はクライアントで行うべきという記事を読んだのですが
ランダム系のAIステートを同期するためにはどうすべきでしょうか?
どうしてもマスタークライアントで処理したものを全員に送る形しか思いつかないのですが…
0104名前は開発中のものです。2016/08/23(火) 16:13:30.25ID:Vwkbt73+
>>103
セッションを作成するときに共通の乱数のシードを設定して、各クライアントはそれで初期化すればよろし。さすれば自然とランダム系の動きも同期するで。
(組み方にもよるけど)
0105名前は開発中のものです。2016/08/23(火) 17:51:30.39ID:JkGv7l3C
>>104
シードを知りませんでした…、ありがとうございます。
あらかじめRandom.Seedで値を設定しておけばRandom.Rangeで求めた数値を
Seed値に合わせ全てのクライアントで同じ結果にできるのですね。
0106名前は開発中のものです。2016/08/23(火) 18:12:23.61ID:ZYrHvchU
そう、同じ数字が同じ順番で出てくる
通常はそれじゃ困るので時刻をシードにしたりしてるが
同じデータを再現したいとき等はあえて数字を固定するね
0107名前は開発中のものです。2016/08/23(火) 19:06:02.52ID:DD/wzxta
>>103
104と別解だとステートの変更をマスターからスレーブへ通知するってやり方もあるよ
0108名前は開発中のものです。2016/08/23(火) 22:23:03.50ID:twPCWgkX
>乱数
Unityは大丈夫だったと思うけど、
たまに、そのマシンあるいは同じOSでしか再現してくれないのがあるよな
0109名前は開発中のものです。2016/08/23(火) 23:32:55.03ID:8PzqXbjG
どうしても心配な場合はメルセンヌ・ツイスターとかのライブラリ使った方がいいな。
UnityのAssetStoreにもあるし。
0110名前は開発中のものです。2016/08/24(水) 11:37:53.38ID:9ebosI1v
uGUI と重なる Sprite の当たり判定について質問します。
OnMouseDown イベントで IsPointerOverGameObject() が true ならば無視するようにしました。
これで、ボタンなどが手前にある場合は成功しました。

しかし、 uGUI Image が背後にある Sprite でも IsPointerOverGameObject() が true になってしまいます。
見た目上は Sprite が手前にあるので、そちらだけ反応させたいのですが
前後関係を含めた当たり判定はありますか?
0111名前は開発中のものです。2016/08/24(水) 12:09:20.98ID:xr1E26+3
質問です。
レトロゲームの「クイックス」のように
囲まれた範囲を領地化するために
範囲を取得したいのですが、
案が浮かびません。

何か方法はありますでしょうか?
0112名前は開発中のものです。2016/08/24(水) 18:39:39.29ID:xoHq8QPD
>>111
ゲームの内容に寄る
領地がConvexポリゴンで表せるかとか、ちなみにQIXのは矩形リージョンの集合に分割することで領域を区別してた
0113名前は開発中のものです。2016/08/24(水) 19:48:18.11ID:wzwl+oL+
Unityでシーンが大量にあると、起動が遅くなったりしますか?
他にも何かデメリットはありますか?
0114名前は開発中のものです。2016/08/25(木) 00:03:13.61ID:DgLaV+Bt
すみません、初心者な質問です。
enemy.AddComponent(
0115名前は開発中のものです。2016/08/25(木) 00:06:50.32ID:DgLaV+Bt
すみません、初心者な質問です。
enemy.AddComponent("Halo")
でHaloのコーンポネントをスクリプト上で作ったCubeに追加したいんですが。
上記コード(参考にしてる本が古い)が最新でないらしく。

UnityEngineInternal.APIUpdaterRuntimeServices.AddComponent(enemy, "Assets/spaceship.js(82,9)", "Halo")

に変換されて、Haloを追加できていないままになります。
これはスクリプト上で解決できますか?
0116名前は開発中のものです。2016/08/25(木) 00:17:31.21ID:wn30Advx
>>115
なんか言ってることが曖昧というか
質問に適切な情報がない気がする

Haloがコンポーネントならこれじゃないの
http://qiita.com/junya/items/e462163cb4c170918e76

gameobjectならgetcomponent
0117名前は開発中のものです。2016/08/25(木) 00:47:36.56ID:DgLaV+Bt
var enemy:GameObject = GameObject.CreatePrimitive(PrimitiveType.Cube)
でCubeを新規に作って、それにHaloのコンポーネントを追加したいのです。

>>116のように
enemy.AddComponent.<"Halo">()
enemy.AddComponent.<Halo>()
でもダメだったので…。
0118名前は開発中のものです。2016/08/25(木) 00:55:14.47ID:QLIUawhG
初心者です。
この状態になったのですが普通の状態の左下右にあったバーを表示させて、
もとのUIに戻したいです。どうすればよいでしょうか?
http://imgur.com/qvHMF2J.jpg
0119名前は開発中のものです。2016/08/25(木) 00:59:50.05ID:QLIUawhG
すみません。解決しました。
0120名前は開発中のものです。2016/08/25(木) 01:21:55.31ID:wn30Advx
>>117
http://www.cho-design-lab.com/2013/08/18/unity-reference-other-script/
MonoBehaviour継承してないとか?
0121名前は開発中のものです。2016/08/25(木) 02:35:35.69ID:/Ws0o294
>>115
そこ、できるなら無視して消してしまった方がいい。
実はHaloコンポーネントの扱いはどういうことになっているのかよくわからない。
リファンレスにも載っていないしC#でもAddComponentできないし
通常のやり方でGetComponentもできない。
なぜこのようなオブジェクトになっているのか謎。
0122名前は開発中のものです。2016/08/25(木) 02:53:23.67ID:DgLaV+Bt
>>120
>>121
回答ありがとうございます。

なるほど、Haloコンポーネントだけおかしいのですか。
無視してHalo無しで先に進んでみます。
0123名前は開発中のものです。2016/08/25(木) 04:04:43.41ID:uIbWNalU
>>112
囲み方等のルールは
クイックスと同じ想定ですが、
領地に表示させるものの都合もあり
フィールドは粗めのマスで区切る予定です。

領地情報を変数配列に保存するつもりではありましたが、
実装できるのであれば
他の手段でも構わないです。
0124名前は開発中のものです。2016/08/25(木) 16:42:42.05ID:83VqBRCc
uGUI の RectTransform で Streach を使おうと思っています。
Left, Top, Right, Bottom を 0 にして
Min X,Y Max X,Y の設定だけを使い、ウィンドウサイズの違いに対応したいと思っています。

しかし、 Min X,Y Max X,Y の設定は面倒な上、
GUI をマウスで移動させて調整したいのに Left, Top, Right, Bottom が変更されてしまいます。

マウスでの GUI の編集の結果を Min X,Y Max X,Y だけに反映させる方法はありますか?
0125名前は開発中のものです。2016/08/25(木) 23:03:29.78ID:u1xY0SXd
おう、Unityスレにしては珍しくちゃんと質問に答えられる奴らがレスしてるね。ええこっちゃ
0126名前は開発中のものです。2016/08/26(金) 00:47:58.60ID:Ve5Y7ZDo
>>123
領地の概念が何処にあるかってのが結構重要、123が言うマス目単位でよければ囲った領域を2D矩形の集合に変換してからマス目の重心が分割した矩形に入るかどうかを普通に2Dの当たり判定で行えば良い
領地が空間を区切る様に3D空間内に存在するのであればBSP(Binary Space Partitioning)による超平面分割で領域判定をするのだけど、この場合領地の取り合いでBSPの論理演算(切り取りとか付け足し)をしないと行けない
なので本当にゲームに依存する。

特に前出のQIXの場合は領地は一度取得したら変更が起きないし領地の取得面積の算出だけなので8Bitマシンでも作れたんだぜよ。
0127名前は開発中のものです。2016/08/26(金) 00:51:13.86ID:Ve5Y7ZDo
>>126
補足
囲った領地を3角形ポリゴン(あるいは矩形)の集合にして領地のマス目の重心座標がポリゴン(あるいは矩形の)の内側にあるか判定し、入っていたらマス目に誰の領地かフラグつけるって意味ね
0128名前は開発中のものです。2016/08/26(金) 10:28:04.76ID:oDcylQEX
>>124
RectTransformは各プロパティが勝手に連動するんだっけ
Left他を毎回0で上書きしてみたら?
0129名前は開発中のものです。2016/08/26(金) 11:48:43.44ID:nqvhB+27
>>128
0にしてもなぜか1.1くらい強制的に値が再設定されたりすることもあり
まだよくわからないのですが、
今は L, B, R, T は 0 に上書きしてから max/min を設定して調整しています。
0130名前は開発中のものです。2016/08/26(金) 13:06:34.38ID:ooIqDkZ9
>>129
場所固定の親オブジェクト作って、
アンカーを上基準にしてみるとか
0131名前は開発中のものです。2016/08/26(金) 15:26:29.66ID:gJpqV1j9
>>127
詳しい回答ありがとうございます。

囲った部分の集合体を作るという所が
まだ方法を想像出来てませんが、
色々調べながらやってみます。
0132名前は開発中のものです。2016/08/27(土) 07:49:36.25ID:7xLav6Bo
教えてください。
リジッドボディのmassは大きければ重く、他のmassが小さいオブジェクトがぶつかった時に余り動かないモノかと思ったのですが、実際に数値を入れてみると1でも1000でも違わない動作し みたいなんですが、認識間違ってますか?
衝突時、重いものはあまり動かず軽い方は跳ね飛ばされるのはスクリプトでマメにするしかないですか?
0133名前は開発中のものです。2016/08/27(土) 12:32:31.82ID:ndq4XMCo
>>132
試してみるとmass1と10の動きはやっぱり全然違うので
何かを勘違いしているのだろう。
0134名前は開発中のものです。2016/08/27(土) 13:41:17.84ID:a/bQ85qY
広告の表示について質問です。

今度アイモバからadmobにきりかえようと設定をしたところうまく広告が表示されませんでした。

試行錯誤したところコードやプラグインの問題ではなくbundle identifierをかえたら解決しました。

アドモブかunity側の問題か不明ですが同じ用な現象が起きた方いらっしゃいますか?
0135名前は開発中のものです。2016/08/27(土) 15:14:44.15ID:S8c/2UBo
>>132
物理演算で変化するのはrigidbodyの値だけだから、
transformで動かしてると物理挙動は効かないと思う
0136名前は開発中のものです。2016/08/27(土) 19:37:45.17ID:tQuxWCnP
unityに表示させたドット絵がすごく汚くなるんですけど、どうしてでしょうか?

見づらいですが、こちらが元のタイルを一般的な画像ビューアで拡大させたものです
ちゃんとドットの大きさがそろっています
http://i.imgur.com/tJw22uP.png

しかし、unityで表示させるとこのようにドットの大きさがめちゃくちゃになります
http://i.imgur.com/y0fkdWc.png


FormatはTruecolorですし、Filter ModeはPoint(No filter)にしています
どうしたらいいんでしょうか?
0137名前は開発中のものです。2016/08/27(土) 19:53:49.97ID:gJhSoj/G
>>136

https://blogs.unity3d.com/jp/2015/06/19/pixel-perfect-2d/
0138名前は開発中のものです。2016/08/27(土) 19:54:17.38ID:7xLav6Bo
>>133
ご回答ありがとうございます。
そうなんですか、私の方で数値変えてみてやったのですが変わらなかったので…
飛行機と弾で、それぞれ100000と0.0001とか極端な値をそれぞれに入れて、やってみたのですが変わったように見えなかったので。
そもそも勘違い?どこだろう?
0139名前は開発中のものです。2016/08/27(土) 19:56:23.93ID:7xLav6Bo
>>135
ご回答ありがとうございます。
はい、トランスフォームで動かしています。これでは反映されない?反映される方法はございますか?
0140名前は開発中のものです。2016/08/27(土) 21:40:30.66ID:ndq4XMCo
>>138
transform.positionに固定した値を入れれば位置は必ずその位置になる。
もしそういう形で位置を移動させているならRigidbodyの動作は無意味になる。

Rigidbodyというのは何か、というと物理エンジンに従って
transformの位置や回転の値を書き直すものだ。
そうやって物理的な挙動を再現している。
Rigidbodyが勝手にtransformの位置や回転を毎フレーム書き直しているから
自動で動いている、ように見えるってことだ。
しかしスクリプトで固定の位置を書き込んでしまえばRigidbodyの書き換えが
上書きされてしまって無意味になる。

とまぁそういうパターンはあり得る。

動かすときに例えば
void Update(){
transform.Translate(Vector3.forward*Time.deltatime);
}
というような書き方をしてやればRigidbodyの計算結果を反映したうえで
動かしてくれるようにはなる、はずではある
0141名前は開発中のものです。2016/08/27(土) 22:51:58.08ID:tQuxWCnP
>>137
ありがとうございます
0142名前は開発中のものです。2016/08/27(土) 23:42:05.66ID:2W6/iIAR
なんで誰も>>140の大嘘にツッコミ入れないんだろう?
>>138
物理挙動をしている(=RigidbodyがアクティブでisKinematicがfalseの)オブジェクトの位置操作はAddForce系のメソッドを使う、これ鉄則
0143名前は開発中のものです。2016/08/28(日) 00:12:50.39ID:554Md0BG
一応マジレスしておく

1. FixedUpdate(物理処理)
2. OnCollision(衝突処理)
3. Update(イベント処理)
4. 描画処理

Unityは毎フレームこんな流れで動いてて、
物理的な計算は「FixedUpdate」で行われるから、
その後にある「Update」でtransformを弄ると描画に物理挙動が乗らない
物理計算された値をUpdate内で上書きする形になるから描画まで持って行けないんだね

だから物理的な挙動をさせたければFixedUpdate内にtransformの処理を書くか、
Rigidbody.positionのような次のフレームの物理フェイズで遅延実行される方法を使うべき
0144名前は開発中のものです。2016/08/28(日) 04:25:12.65ID:OAHf0gRx
いや、Rigidbodyの挙動とtransform.Translate()は共存できるよ。
Update()でTranslate()をデルタタイムで使えばRigidbodyの物理挙動+
Translate()の移動が行われる。
問題なのはTranslate()での移動ではRigidbodyのVelocityは変わらなくて
だからTranslate()で衝突しても速度0の状態での衝突扱いになる。
あと速度自体への影響はでないけどFixedUpate()で
RigidbodyのMovePosition()を使ってやると衝突補間に便利な場合がある。
そこまでは必要ない場合でもtransformでの操作より
Rigidbody.positionを使う方が計算が一部省略されて
動作が多少なりとも軽くなる場合がある(複数のColliderを付けてる場合など)

Rigidbodyを使っている場合AddForceで操作できれば物理的挙動としては
それが一番整合的になるのは確かなんだが実際には
それでゲーム的操作を行うのは難しい、場合がある。
だからRigidbody.MovePosition()みたいな関数も用意されてる訳で。

>>138の話は多分transform.positionに直接値を放り込んでるからで
それだとRigidbodyが行う全ての操作が上書きされるからRigidbodyの動作は
全く反映されない、ということなのではないかな、と推察されるわけだ
0145名前は開発中のものです。2016/08/28(日) 09:41:01.55ID:oOAtXjvY
山の中のシーンを作っているんだけど、VRでみると遠景ビルボードの木々が頭の動きに合わせて動いちゃうのを修正する方法ないですか?
ビルボード開始距離を大きくすれば一応解決するけど重いので、それ以外の方法で。
検索しても見つけられなかったので助けて。
0146名前は開発中のものです。2016/08/28(日) 11:19:44.80ID:554Md0BG
近くにある物体に仮の距離を与えて遠近法を表現したいなら、
カメラの視野角と物体の距離から三角関数で実際の位置と仮の位置の辺の長さを取り、
その二つを比べた倍率でtransformを操作すれば可能だと思う

要はカメラに追従するようにビルボードを動かすだけ
たぶんRotateAroundが便利に使える
■ このスレッドは過去ログ倉庫に格納されています