[表示 : 全て 最新50 1-99 101- 201- 301- 2chのread.cgiへ]
Update time : 08/07 07:32 / Filesize : 102 KB / Number-of Response : 321
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【3Dゲームエンジン】Unity質問スレッド5



1 名前:名前は開発中のものです。 [2013/06/25(火) 03:51:44.47 ID:vfI8rCSw]
3Dゲームエンジン「Unity」の質問に優しく答えるスレです。

Windows/Mac用。JavaScript/C#/Booといった汎用言語を使用できるのが特徴です。
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3他

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

■前スレ
【3Dゲームエンジン】Unity質問スレッド4
toro.2ch.net/test/read.cgi/gamedev/1362821620/

■本スレ
3Dゲームエンジン】Unity総合スレッド19
toro.2ch.net/test/read.cgi/gamedev/1368814728/

■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
 www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
 unity3d.com/japan/
・ユーザーガイド&リファレンス
 japan.unity3d.com/developer/document/
・チュートリアル
 japan.unity3d.com/developer/document/tutorial/
・スクリプトリファレンス
 docs-jp.unity3d.com/Documentation/ScriptReference/
・FAQ
 answers.unity3d.com/index.html
・MSDN
 msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。

14 名前:名前は開発中のものです。 mailto:sage [2013/06/25(火) 13:10:51.50 ID:3KMWLqgT]
>>11
やっぱり用途そのものが違いますかー。
ありがとうございます。

15 名前:名前は開発中のものです。 mailto:sage [2013/06/25(火) 14:33:31.76 ID:Ej+baJIh]
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/
元2ちゃんねる副管理人の「切込隊長」 山本一郎氏、大前ひろき氏らがUnityによるゲーム開発の功罪を語った「黒川塾(九)」レポート
www.gamer.ne.jp/news/201305260002/

16 名前:名前は開発中のものです。 mailto:sage [2013/06/25(火) 14:36:39.08 ID:Ej+baJIh]
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?
4gamerのUnity記事見て喜んでるのはカモなんでしょうか?
Unityの支配者はオオマエヒロキ、山本一郎、宮川って本当ですか?
残りはカモってことですか?

17 名前:名前は開発中のものです。 mailto:sage [2013/06/25(火) 19:32:55.51 ID:Jn0Ct6ah]
NGWord指定が捗るな

18 名前:名前は開発中のものです。 mailto:sage [2013/06/25(火) 19:59:23.40 ID:oaGh6v56]
・ゲーム系スレで「俺が作ればもっと面白いのが出来る」と豪語 
↓ 
・「じゃあUnityで作ってみれば?」と薦められる 
↓ 
・使い方が理解できない 
↓ 
・「俺が悪いんじゃなくてUnityが悪いんだ」とファビョる 

これもテンプレ入れとけ。

19 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 02:27:26.83 ID:JBeeloIZ]
unityfreeなんですけどオススメのシェーダーとかアセット教えてください。

20 名前:前スレ975 [2013/06/26(水) 04:12:41.89 ID:33cxwwDX]
前スレ>>993
transform.parent=nullを記述したOnTriggerExit関数が呼び出されないんです。

PlayerオブジェクトとFloorオブジェクトがあります。
PlayerオブジェクトとFloorオブジェクトが衝突するとFloorのスクリプトの
OnTriggerStay関数が呼び出され、PlayerObject.transform.parent = transformでPlayerがFloorの子になるようにしました。
Stay関数は接触している間ずっと呼び続けられると思うのですが、PlayerがFloorの子になってから呼び出されません。
またPlayerがFloorから離れた際にOnTriggerExitにてPlayerObject.transform.parent = null;と記述しているのですが
これも呼び出されず、困っています。
親オブジェクトと子オブジェクトは衝突判定はできないのでしょうか?

21 名前:20 [2013/06/26(水) 04:14:04.43 ID:33cxwwDX]
↑上げてしまってすみません。

22 名前:20 mailto:sage [2013/06/26(水) 04:16:55.77 ID:33cxwwDX]
何度もすみません;w;



23 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 07:41:29.01 ID:IL03qIgV]
>>20
相当意味不明。何かどうでもいいミスをしている可能性が高い。
・床との衝突判定はOnTriggerでやるべきでない。接触はOnCollision系
 →OnTriggerじゃないといけない理由は?
・OnTriggerを使用してるならisTrigger=trueなはず。その場合床とPlayerはすり抜ける。
 →Floorと接触して〜は不可能じゃないか?
  FloorとisTrigger用GameObjectを分けてる? なんのために?

・OnTriggerStayは親子関係になっても呼ばれる。1度しかよばれないわけが無い。
 →ほんとに一度? コンソールのcollapseをOnにしてるだけじゃない?
・OnTriggerEnterは1度しか呼ばれない。こっちを使ってないか?
 →親子関係の変更は1度でいいよね? 本当はこっちのはず。
・OnCollisionEnterでも1度しか呼ばれない。こっちでもおかしくない。
 →本来はこれを使うべき。
・OnTriggerExit,OnCollisionExitは親子関係でも普通に呼ばれる。
 →これが呼ばれない=まだStayしている、もしくはそもそも接触できていない。
  isTrigger用のGameObjectがあるなら、その範囲がおかしいんじゃないか?

なんか結構全般的におかしい。いろいろ書いたけど他に原因がある可能性は高そう

24 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 14:21:20.01 ID:fUzhdVNu]
Camera.mainに入ってくるカメラの条件って何?名前?

25 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 15:04:35.24 ID:IL03qIgV]
>>24
ほいおー
docs.unity3d.com/Documentation/ScriptReference/Camera-main.html
MainCamera タグ持ってる中からひとつ。
複数あった場合はどれが持ってこられるかは保障されない。

26 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 17:20:04.67 ID:fUzhdVNu]
サンクス
タグとは落とし穴だったなw

27 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 17:54:39.61 ID:6qvW7ENx]
スポットライト使うとDrawCallが一気に増えるのってどうしようもないの?
光があたるオブジェクトが多いほど、一気に増える。
これじゃ、スマホ向けにはディレクションライトしか使えない・・・。

28 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 18:06:07.93 ID:fiRuzY7R]
>>27
スポットライトをライトマップオンリーにすれば良いのでは

29 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 18:09:17.11 ID:/zNB3Fas]
>>27
LightProbe(Proのみ)で解決

30 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 18:16:39.20 ID:6qvW7ENx]
>>28
動くオブジェクトに当てたいから無理・・・だよな?

31 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 18:39:34.25 ID:4bEvBWkQ]
pro版機能は一個づつ小売にすればいいのに

32 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 18:56:04.42 ID:h2+UR5Wi]
>>31

上手い事言ったと思ったが、
アップデートの時とかベンダー側がメンドクサイよな



33 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 19:10:01.67 ID:4bEvBWkQ]
だってアセットは小売してるじゃん

34 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 19:21:16.66 ID:JBeeloIZ]
ホントだな。
その方が売り上げ伸びそうだ。

35 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 19:29:14.51 ID:4bEvBWkQ]
まぁ、金になるところだけ熱心に開発して土台が疎かになる恐れはあるけど
てか今でも十分疎かかw

36 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 19:34:42.50 ID:JBeeloIZ]
他のソフトでは機能限定でいくつもバージョンあるからな。
unityもそろそろそういう売り方してもいいとは思うが。
経営陣は先にクラウド導入したいだろうな。

37 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 20:48:31.24 ID:/49XhXp1]
>>30
GLES2.0専用ならシェーダである程度のスポットライトは処理できるかもしらん。
ライトが動くのは基本的に鬼門なのはチープなグラフィック時代から変わらないので我慢するしか。

38 名前:名前は開発中のものです。 mailto:sage [2013/06/26(水) 21:47:53.84 ID:sJ+3xnE1]
>>36
サーバ側にデータ転送して作業ってのは嫌だなぁ

39 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 06:54:37.53 ID:ZoD+7PGn]
ios向けのアクションものでオンライン対戦を実装したいんですが、ラグ回避の為に近くのPing値が高い相手とのみ自動マッチング としたい場合どの関数を使えば良いのでしょうか?

またはオススメのアセットがあれば教えて下さい

40 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 09:05:57.29 ID:iOYsZs0F]
>>39
ん?どの関数使えばいいかって、それってそういう話なのか

41 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 09:11:36.04 ID:iOYsZs0F]
途中で送信してしまった。
pingだったら、普通に考えると C# ICMP でググったらとか思うが、
俺だったらマッチング用のサーバ側に接続者の平均レスポンス時間とか記録しておいて、
それをクライアントで受けて判断、みたいな処理にするかも。

42 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 10:01:18.12 ID:W96c38vY]
ゲームのロジックより全然簡単だからないんじゃない?



43 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 15:26:45.81 ID:ZoD+7PGn]
>>41
ありがとうございます。

C# ICMPでググってみます

44 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 18:14:45.10 ID:i+Ry599W]
すみません、collider同士はぶつからないのでしょうか?
調べてみたんですがcovenxみたいなのチェックしても全くぶつかりません、すり抜けます。
何か方法はありますか?

45 名前:名前は開発中のものです。 mailto:sage [2013/06/27(木) 20:03:31.87 ID:LTyGmnFP]
rigidbody付いてる?

46 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 06:16:26.70 ID:0666G2kx]
>>44
code.google.com/p/vga-unity/wiki/GP10UnityCourse08
この表によるとcollider同士の当たり判定は発生しないみたいだな

47 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 07:54:28.27 ID:KZfHi7Ou]
エディタのゲーム画面だけなんだか縦長になってしまったんですがどんな原因が考えられるでしょうか?

48 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 13:30:08.50 ID:5TFSWNRY]
>>47
Gameタブの直下あたりにアスペクトレシオ変更のトグルがあるけど、そこクリックして縦長のになってない?
デフォルトだとFree Aspectになってるはずスマフォ向けのBuild設定とかだと各スマフォの代表的な比率で縦長になってると思う

49 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 13:38:18.27 ID:sJLUTiYr]
WWWを使えば、Windows上の保存場所を指定して画像を読み込ませることはできたんですが
音楽や動画をWindows上から読み込ませる方法はあるのでしょうか?

50 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 19:48:28.20 ID:S3mjXImB]
iTweenとiTweenPathのアセットでキャラクターをMoveさせてるんですが、UnityEditor上のPlayだと正常に動くんですが、あるキャラクターだけiOS実機で動かすとiTween通りの動きになりません。

原因わかる方いらっしゃいますか?

51 名前:名前は開発中のものです。 mailto:sage [2013/06/28(金) 23:54:35.68 ID:5TFSWNRY]
>>49
目的が見えないんでなんともいえないんだが、AssetBundleつかうのでは駄目なのか?
これはAudioClipからなにから好きな物を任意のサーバ、ファイルシステムから読み込める。
ただエンドユーザに任意のデータを読み込ませるのには使えない。

52 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 03:38:57.77 ID:A722NIxA]
走りながら攻撃するアニメーションを作りたいんですが
走るアニメーションの下半身と攻撃するアニメーションの上半身混ぜるってできないですか?unityで



53 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 04:41:52.73 ID:rp4k0FdD]
できるよ

54 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 09:35:36.21 ID:5Ubx5ixL]
上半身のモデルと下半身のモデルを分けてインポートして
上半身は攻撃のアニメーション、下半身は走るアニメーションをそれぞれ実行
でいいんじゃね?

55 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 10:03:14.67 ID:ecZ3EAFj]
>>54
戦車とかロボとか、人間でも境目が隠れてるか良く分からない距離ならそれでもいいよな
そこそこアップにもなる全身タイツの人間や動物だと見た目エラい事になるが

56 名前:名前は開発中のものです。 mailto:sage [2013/06/29(土) 11:41:00.23 ID:ckDBwhPN]
>>52
Mecanimのチュートリアルビデオにそんなのがあったぞ
公式からたどれるチュートリアルみてみ

57 名前:名前は開発中のものです。 mailto:sage [2013/06/30(日) 18:00:30.84 ID:3EObUEe2]
ontrigger()だけは絶対に許さん

58 名前:名前は開発中のものです。 mailto:sage [2013/07/01(月) 15:44:00.73 ID:ntmGwho6]
アニメーションのblendってあったよね。たしか。

59 名前:名前は開発中のものです。 [2013/07/02(火) 19:31:00.35 ID:IN/I03Ij]
初心者です。質問です。
Unity 4をダウンロードし、
ネット上に、PDFの翻訳があった、
3D Platformer Tutorialをやっています。
(このチュートリアルは、Unity 2用みたいですが、
他に理解できそうなチュートリアルが無かったので、このチュートリアルで勉強しようと思いました。)


プロジェクトをダウンロードし、
キャラクタLerpzをシーンビューに置いて、Playボタンを押したのですが、
PDFにあるような、背景がありません。(Lerpzだけがシーン上にあります。)

何がおかしいのでしょうか? よろしくお願いします。

60 名前:名前は開発中のものです。 [2013/07/02(火) 19:36:55.61 ID:IN/I03Ij]
59です。
補足として、PDFは、
ttp://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/3DPlatformTutorial_jp.pdf です。
このPDFの12ページの時点で止まってます。
13ページにあるような、背景が表示できません。

ググってもよくわからなかったので、質問しました。

61 名前:名前は開発中のものです。 mailto:sage [2013/07/02(火) 20:42:34.72 ID:QrQrvwDM]
>>59
とりあえずやってみて普通にあるので原因は2種類。
ちゃんとシーン開いた?
そうじゃなかったらちゃんとカメラを動かしてあたりを見回した?
チュートリアルもいいけど、
japan.unity3d.com/developer/document/tutorial/basic/
を見とくのもたぶん大事。取り扱い説明書的なもんだから。
特にシーンビューのナビゲーションってところを見ながら、
シーンビューをどうやって扱うかを理解することも大事。
背景は(-120,0,0)を中心としてる。チュートリアルの一環だと思って頑張れ。

でも、正直Unityの黄色本あたりで勉強したほうが万倍ためになると思います。

62 名前:名前は開発中のものです。 mailto:sage [2013/07/02(火) 20:49:37.91 ID:KEvuwOG8]
>>59
英会話、英文は駄目を前提にしても公式のビデオチュートリアルはまねっこするだけで理解が深まるからマシン二台(ウィンドウひらいてやると狭いから)使ってポーズボタンと併用でやってみそ



63 名前:名前は開発中のものです。 [2013/07/02(火) 21:26:31.90 ID:IN/I03Ij]
>>61 >>62
ありがとうございます。
もう、一度やり直してできました。

すみません、単純ミスでした。
マニュアルの「Scene->TheGame Sceneを見て下さい」という記述を、
”クリックする”という意味で捉えていませんでした。
(Projectパネルのテクスチャのフォルダを確認?してました。)

ほんとうに、ショボいミスですみません。
61さんに教えていただいたリンクなど、一からやり直してきます。

ありがとうございました。

64 名前:名前は開発中のものです。 mailto:sage [2013/07/03(水) 13:55:47.04 ID:izHT7B7B]
>>63

PC系のマニュアルで良くある事。
マニュアルと良いながら、結局分かってる奴を対象にしていたりするからね

65 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 16:58:22.14 ID:bC4LrvGo]
すごく初歩的なことなんですが
例えばTestAというスクリプトの○○という関数を
TestBというスクリプトで呼び出すにはどう書けばいいのでしょうか?
言語はC#です。どちらのスクリプトもAssetsの中に入ってます

66 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:07:08.16 ID:D7cBYMwn]
初歩的なら簡単だろ

67 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:47:39.41 ID:XTJkNQPQ]
>>65
いろいろありすぎてめんどくさいぐらい方法があって、
そのせいでわかりづらい。実はそんな簡単じゃない。

GameObject gameObjectA に TestA というスクリプトくっつけてるとするね。
TestBがgameObjectAにアタッチされてない場合、だいたい以下の3つ

1.GetComponent
例)TestA testA = gameObjectA.GetComponent<TestA>();
testA.○○();
2.SendMessage
例)gameObjectA.SendMessage("○○");
3.staticにしちゃう
例)public class TestA:MonoBehaivior{
public static void ○○;
}
// in textB
TestA.○○

何度も使うならGetComponent,1度でいいならSendMessage,
よくよく理解してて、特性やバグのパターンを把握してるならstatic.素人にはおすすめできない。

どうやってgameObjectAを取得するのか、というと
Find()とかOnCollisionEnter()の引数とか、いろいろある。

まぁ、基本はFindしてGetComponentして使ってればいいんじゃないですかね。

68 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 17:55:56.03 ID:/6TVIRVM!]
>>67
質問的にstatic関数では?

普通にTestBから
TestA.○○
でおk。

69 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 19:21:02.32 ID:Y41MaDA7]
インスタンスメンバに用があるのかstaticでいいのかって、
大分意味合い変わってくると思うが。
つまり、やりたい事次第だと

70 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 20:13:18.91 ID:oToDaWPn]
static については、gamesonytablet氏が翻訳してる記事を読んでおけば間違いないと思う
gamesonytablet.blogspot.jp/2013/01/unitystatic_8.html

71 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 20:59:16.22 ID:Y41MaDA7]
>>70
なんか特別な話かと思ったらただのC#の
言語レベルの入門記事だった

72 名前:名前は開発中のものです。 mailto:sage [2013/07/05(金) 22:25:46.36 ID:oToDaWPn]
>>71
まあ、Unity3dで初めてC#(引いてはOOP)に触る人もいるだろうし……と思って



73 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 08:23:50.84 ID:MvkNwOic!]
>>70
機械翻訳読み辛いな・・・

74 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 08:56:23.46 ID:/ZIbqHbZ]
>>70
>Unityメモリ管理の基礎を積み重ねていこうぜ!
ないわー

75 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 09:25:38.94 ID:GmwLkeYx]
まぁまぁ、一応そこのおっさん公式マニュアル翻訳してる人だし、
いろいろと多岐に渡って翻訳してくれてるいい人なんだ。
その、なんていうか独特のノリは()暖かい視線で見守っていこうぜ!

76 名前:名前は開発中のものです。 mailto:sage [2013/07/06(土) 11:43:29.92 ID:fuFs1zZX]
あぁだから公式日本語マニュアル糞なのか

77 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 09:24:15.53 ID:VqB3Y7Ez]
理解深まってもなんだかんだで二年くらい費やすよなw
俺は諸般の事情で3年くらい掛かったけど・・・

78 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 10:45:22.58 ID:u+yMDmhn]
>77
なににそんなかかるの?

79 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 12:00:06.00 ID:tfl2dK/2!]
>>78
ノベル

80 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:01:33.82 ID:qf1XaXVI]
はじめまして。
今Unityでリバーシを作っています。
スクリプト言語はJavaScriptを使っています。
(C#はどちらかとういうと好きではありません・・・)
黒のターンではうまくいくのに白のターンでうまくいかないので質問させてください。
文章を作るのが苦手なために変な文章だったらすいません。

マウス操作でコマを操作し、マウスクリックで盤上にコマを配置してスクリプトでおけるかどうかを判断させています。
置くことができる(何かしらめくれる)ときは、めくる動作がアニメーションに見えるにスクリプトで回転させています。
初期位置からどういう風においても黒は問題なく白をめくって白のターンへ行くのですが、その次白のターンで黒をめくっている途中で動きが止まって黒のターンになってしまっています。
スクリプトで次のターンへ行く前にコンソールに"next turn"と出力させるようにしているのですが、黒のターンが終わる時は出力されても白のターンが途中で止まった時にはそれが出ていません。
"next turn"を出してからターンを次へ送るための関数を呼び出すようにしているので、"next turn"が出ていないのなら白のターンから次のターンへ行っていないと思うのですが・・・

MonoDevelopのDebugでUnityを起動してデバッグをしてみましたが、ViewでDebugを選んでWatchに変数や条件文などを書いてみるとなぜか"Unknown Identifier"と言われてしまい、変数の中身が見られません。
Localのthisの中にあった変数名をWatchに書いてみても同じメッセージが出ます。

現在作成途中のものを以下にアップしてみました。
gmdev.xrea.jp/
[945.zip] 白のターンがうまくいかない作りかけリバーシ 0.22MB 2013-07-08 reversi.zip

黒と白はturnの番号が違うだけでめくる部分の基本的なことは同じようにさせているので、白(turn==0)だけなぜうまくいかないのか・・・

こんな長文ですいません。
どなたかよろしくお願いします。

81 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:08:24.57 ID:EL6md65E]
はじめまして(^_^)

82 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:26:44.24 ID:Q2gIaxei]
Unityを使って簡単なネットワーク対戦ゲームを作成しています。
InstantiateとSceneの遷移部分で上手く同期がとれないため
ご教示願いたいと思い、こちらに書き込ませて頂きました。

現在以下のようなSceneを製作しています。
1.LoginScene(サーバへの接続画面のみのシーン)
2.BattleScene(接続後、実際に戦うシーン)

ホストとなるユーザはLoginSceneでサーバを建て、
直後にApplication.LoadLevelでBattleSceneへ移行。
BattleSceneにてプレイヤーキャラをNetwork.Instantiateする。

クライアント側はLoginSceneでIP,Portを入力しサーバへ接続、
直後にApplication.LoadLevelでBattleSceneへ移行。
BattleSceneにてプレイヤーキャラをNetwork.Instantiateする。

という流れになっています。
ただこのような手法を取るとクライアント側にホスト側のキャラクタが生成されませんでした
1つのSceneに接続と対戦を合わせた場合は問題は起こらないため、
ホスト側のキャラのInstantiateがクライアントに伝わっていないのだと
考えていますが、良い解決策が思い浮かびません。

もしよろしければより良い方法、またはその方法を調べるためのキーワードを
教えて頂けないでしょうか?



83 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:35:31.25 ID:M3ds/1Fi]
>>80
JSはデバッグしづらいから今のうちにやめておいたほうが
将来得するよ。
で、処理が途中で止まる場合、カウンタが初期化されてないとか
ループ中にエラーで強制終了されてるとかその辺じゃないの?

Watch出来ない変数はかたっぱしからログに出すか、publicにして
エディタから見ればいいのでは?Monoもバグ多いし

84 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:42:32.06 ID:opNLJ1Tz]
>>80
  ○●
  ●○
  ↓
●●● 黒1手目
  ●○
  ↓
●●● 白1手目(△)
△●○ 

この白1手目の局面で、下記、正解図のように
正しい駒を裏返していない理由を調べたほうが良さげ・・

●●● 白1手後、正解図
○○○ 

●●△ ←失敗図
○●○ 

85 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:49:08.79 ID:qf1XaXVI]
80です。
そもそもこのリバーシは以前HTML5+JavaScriptで作ったものをUnityに移植させてみようと思ったものです。
SetIntervalで作っていたアニメーション部分をWhileとyieldなどで再現させてみました。

>で、処理が途中で止まる場合、カウンタが初期化されてないとか
ループ中にエラーで強制終了されてるとかその辺じゃないの?
While(true)という無限ループを使っているので、カウンタが初期化されていないという落ちはありません。
ループ中にエラーで強制終了されてるのでは?という話ですが、デバッグで動きを追ってみると思ってもいないところで条件に引っかかってループを抜け出しているみたいでした・・・
そもそもデバッグ前に変数の値などをコンソール出力させていましたが、それでなかなか解決しなかったのでデバッグに頼ろうって思ってました。

C言語やC++などは好きですが、C#は教わったことはあるもののそのときあまり好きになりませんでした。
あまり自分が興味持たないような内容ばかりで・・・
それ以来全く触ってないので、書き方もほとんど覚えていません・・・w
反対にJavaScriptは自分であれこれやってみたくなるくらい面白いと思えました。

86 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 14:54:24.29 ID:u+yMDmhn]
スレに自分のゲームにおいて発生するバグの相談をして問題が解決した事がない。
エスパーで解決するレベルなら自分で解決しているものだ。

87 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 15:04:56.14 ID:k2F5L4X2]
ここは解決するスレじゃなくて質問スレだから
解決しなくてもいいんだよ。質問したら終わりwwwww

てくらいで考えとけ。
もし似たようなとこではまってた人がいたら
ヒントくらいもらえるかもしれない、というダメもとで書け。

もっとまじめに対応してくれというならやってみたくなるような書き方と
全プロジェクトうpしろ

88 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 16:26:38.69 ID:LKuAdA2S]
>>82
Network.Instantiate したプレイヤーキャラが、 LoginSceneに生成されてしまってる。
docs-jp.unity3d.com/Documentation/Components/net-NetworkLevelLoad.html

89 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 16:40:30.22 ID:LKuAdA2S]
>>88
補足
ホストへ接続した直後、ホストからクライアントへ「Network.Instantiate()したよ〜^^」という
Messageが到着し、クライアント側のQueueに溜まる。

Network.isMessageQueueRunning がtrueの場合、クライアントは、即座にそれを取り出して実行する。
falseの場合は、取り出さずに保留しておく。破棄されない。

Application.LoadLevel()は別スレッドで走るから、ホストへ接続した直後にApplication.LoadLevel()しても
BattleSceneへ移動する前に「Network.Instantiate()したよ〜^^」というMessageが届いてしまい、
結果、LoginSceneにプレイヤーキャラが生成されてしまうこととなる。

90 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 19:03:58.04 ID:Q2gIaxei]
82です。
>>88
>>89
レスありがとうございます。
また、こちらのレスが遅くなってしまい、申し訳ないです。

>>Application.LoadLevel()は別スレッドで走るから、ホストへ接続した直後にApplication.LoadLevel()しても
>>BattleSceneへ移動する前に「Network.Instantiate()したよ〜^^」というMessageが届いてしまい、
>>結果、LoginSceneにプレイヤーキャラが生成されてしまうこととなる。

Message等あまり詳しくありませんが命令キューのようなものを備えているのですね。
LoginSceneで既に生成メソッドが呼ばれている、ということは気づきませんでした。

Network.isMessageQueueRunningについても
非常に有意義な情報を頂いてありがとうございます。
これらの情報を基に以下のような解決方法を考えてみました。

1.LoginSceneの段階でNetwork.isMessageQueueRunningの値をfalseに。
2.接続後、BattleSceneに移り変わった後にNetwork.isMessageQueueRunning=true。

上記のものを試してみます。
本当にありがとうございました。

91 名前:88-89 mailto:sage [2013/07/08(月) 20:27:37.65 ID:h9ZVXHtq]
>>90
それで合ってます。勿体ぶったような書き方になってしまってスマソ

// 以下チラ裏
ホストとSceneを同期する場合は、こんな感じで書けばおk
C#だとyield使いにくいから、こちらの方が良いかも

void OnServerInitialized() {
networkView.RPC("RpcChangeScene", RPCMode.AllBuffered, GameRule.sceneId); //GameRuleクラスは自作
}

[RPC]
void RpcChangeScene(int sceneId) {
if (Application.loadedLevel == sceneId) { return; }
Network.SetLevelPrefix(sceneId);
Network.isMessageQueueRunning = false;
Application.LoadLevel(sceneId);
}

void OnLevelWasLoaded() {
Network.isMessageQueueRunning = true;
}

92 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 21:16:06.32 ID:Q2gIaxei]
>>91
82です。
先ほど私が書き込んだ方法で問題のほうは解決しました。
ありがとうございます。これで肝心のゲーム内容に移れそうです。

>>void OnServerInitialized() { 以下
RPCを用いてサーバー側がScene変更を制御する形なのですね。
そちらのほうが集中管理できそうなのでそちらも試してみます。
自分の場合、以下のような形で実現していました。
public void OnConnectedToServer()
{
Network.isMessageQueueRunning=false;
LoadNextStage();
}
private void LoadNextStage()
{
Application.LoadLevel("WaitNextStage");
}

最初、Network.Connect()直後にQueueを停止したのですが接続が完了しなかったため
上記のようなOnConnectedToServerで停止するアプローチに変更しました。

RPC周り、LevelPrefix等まだまだ見るところがたくさんありそうですね・・。
度々本当にありがとうございました。非常に参考になります。



93 名前:名前は開発中のものです。 [2013/07/08(月) 21:39:31.28 ID:W+O2Yqce]
はじめまして。
Unityを使って紙芝居のようなアプリを作りたいのですが、objectの当たり判定がうまく設定できず困っています。

やりたいことは、
1.背景画像(Plane)を配置
2.背景画像の手前に人形の画像(Plane、テクスチャは透過PNG)を配置
3.背景画像をクリックすると人形が動く
4.人形の画像をクリックすると音声が流れる
5.人形の画像の透明部分(見た目上は背景画像が表示されている)をクリックした際には背景画像がクリックされたものとみなす

なのですが、5の実装方法がわからずに困っています。
objectにPlaneを使用しているのがそもそも間違いなのでしょうか...

説明下手ですみません。
どうかお知恵を貸してください。

94 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:35:22.56 ID:vfE3F67r]
>>93
透過ではない部分なら反応するのか?

95 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:37:39.83 ID:vfE3F67r]
---背景画像----
---人形--------
      ダミー---

三層構造で頑張るか・・。

96 名前:名前は開発中のものです。 mailto:sage [2013/07/08(月) 22:47:35.85 ID:Dllv7Vpq]
80です。
>>84
そうなる原因は、スクリプトの2次元配列に覚えさせていたゲームオブジェクトの位置とゲーム画面の盤面の位置とが違っていたからでした。

どうして白のターンで黒をめくるときにどこまで行っているかと言うと、回転を制御する変数がなぜか途中までしか変化していませんでした。
本来なら白のターンなら1から0まで0.2づつ減らすようにしていて、
Unityの計算の誤差を考えて0以下になったらそのコマの回転を止めて次の動作―めくれるものがあればめくる、そうでなければ次のターンへ行くようにしているのですが、
なぜか途中の0.6までしか変化していません。
そのあと0より大きいにもかかわらず次の動作―今回は1つしかめくれないので次のターンへ行くようになっています。
コンソールに座標となる変数の値を出力させていて、めくるべきコマの座標やどこまでめくるのかに間違いは見られません。

座標を直したものに実行ファイルをつけてアップしなおしました。
[946.zip] 作りかけリバーシ 座標改良版 実行ファイル(exe)付き 7.15MB 2013-07-08 reversi.zip
gmdev.xrea.jp/
前回のもそうでしたが、Unityファイル(reversi_PvP.unity)はAssets\Sceneにあります。

97 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 00:04:26.54 ID:WHyCBKEt]
>>93
Texture2D.GetPixel() は、テクスチャの特定のドットのColor構造体を返す
Color構造体にはAlphaも入ってる

98 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 00:07:40.92 ID:WHyCBKEt]
Color構造体はRGBAを0〜1で扱っているから注意
docs.unity3d.com/Documentation/ScriptReference/Texture2D.html

99 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 01:57:04.11 ID:wxLqqgEa]
>>93
解決方法はたくさん思いつくけど、なんでおまえのような怠け者にタダで教えてやらなけりゃならないの?

100 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 02:13:57.52 ID:piIqrNfK]
>>99
お前が出来無いのは判ったからもう書き込むな

101 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 02:50:51.77 ID:wxLqqgEa]
>>100
まだまだ書き込むよ。

102 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 05:47:36.40 ID:aLrF49TP]
Javascriptを使っています。
関数を呼び出す際、引数の型が数種類用意されている関数がありますが、
あれはどうすれば自作出来るのでしょうか?

floatを3つ使うかVector3を使うかを選べるような関数のことです。



103 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 07:43:52.17 ID:WHyCBKEt]
>>102
オーバーロードでググれ
Unityのjavascriptで動くかは知らないけど、下のように書けば動くと思う

function Move(vec:Vector3){
//処理
}
function Move(x:Float, y:Float, z:Float) {
//処理
}

104 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:31:37.79 ID:NO9WJ/Zo]
JavaScriptなんかやめちまえ!

105 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:43:42.81 ID:zSC3uj1Q]
>>96
color 配列は、int 型なのに暗に、float 型を期待していないか?

if((turn==0 && color[r2,c2]<=0 || (turn==1 && color[r2,c2]>=1)){

if((turn==0 && n<=0.0f) || (turn==1 && n>1.0f)){

この行の書き換えでどうなるか試してみて欲しい。

106 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 08:57:08.76 ID:aLrF49TP]
>>103
ありがとうございます、ただ単純に2つ書いてしまえば良いのですね。

107 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:20:05.19 ID:hP0cZcht]
>>93
レイヤーもしくはタグの設定かな?
幾通りもあって具体的なコンテンツの概要によって様変わりしてくるから一概に言えないんだわ。
Unityはプロ用ツールなんでメチャ細かいんだよね。
で ここが肝なんだけど細かい割にプログラミングの自由度が無いのでメチャクチャ勉強しないといけない。

108 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:29:10.51 ID:ol0evQj0]
>>93
単純にコライダをセットしてRayCastで当たり判定
つけたほうがシンプルな気がする

109 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 10:53:59.98 ID:NmJrzQPl]
>>108
RayCastってポリゴン単位の交差判定じゃね
見かけ上の透過処理で透明に見えてるだけのピクセルとか判断出来ないんじゃね

110 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 11:00:33.54 ID:WHyCBKEt]
>>93
すまん>>97は忘れてくれ
自前で計算する必要は一切無くて、これらを順番に使うだけでイケると思う
Camera.ScreenPointToRay()
Physics.Raycast()
RaycastHit.textureCoord
Texture2D.GetPixelBilinear()

111 名前:名前は開発中のものです。 mailto:sage [2013/07/09(火) 11:24:12.81 ID:4ZWPcpqB]
80です。
白のターンでめくるのがうまく行かないのは自己解決しました。
(>>105さんの書き込みはそのあとでみましたが、まさにその通りでした。)
0.2ずつ変化させていた値をintに入れて比較に使っていたことが原因でした。

一部抜粋

board[r2,c2].transform.eulerAngles.x=180*n;
color[r2,c2]=n; //colorはintで宣言していたために、0か1しか入らない
//中略
print("color:"+color[r2,c2]+" (turn==0 && color[r2,c2]<=turn):"+(turn==0 && color[r2,c2]<=turn));
//これを出してみてやっと気がつきました。
if((turn==0 && color[r2,c2]<=turn) || (turn==1 && color[r2,c2]>=turn)){
/*なので黒のターンでは小数をintに入れたときの扱いによって偶然うまく行ったが、
白のターンの時には意図しないところでこの条件に引っかかってしまっていたために
めくるのが途中で止まってしまった*/

以下で黒のターンだと白のターンへ行く前に"next turn"と出力されるのに白のターンでは出なかったのは、
コンソールでCollapseを押していたことが原因のようでした。

これで無事互いにめくることができました。
出来上がったものをアップしなおしておきます。
[948.zip] とりあえず互いにめくることができるようになったリバーシ 7.15MB 2013-07-09 reversi.zip
まだ互いのコマの数の表示やおける場所があるか判断して自動パスするのは実装していませんが、
一応遊べなくもないものです。
ありがとうございました。

112 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 05:47:08.90 ID:o+jBqQg3!]
PC2台で通信して、A側PCはキャラクターの背後(TPS視点)カメラ、
B側PCはそのキャラがいるマップを上空から見れるカメラみたいに
プレイヤーごとに視点カメラを割り振ったりするにはどうすればいいんでしょう?



113 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 07:38:18.56 ID:SVK4zm1x]
自分がAかBか判断するプログラム書いてカメラの位置を移動する

114 名前:名前は開発中のものです。 mailto:sage [2013/07/11(木) 19:43:47.51 ID:TcqdQJFO]
Proのライセンスは2台のPCで使えるからといって友人と割り勘で買ってとしてだ(ダメなの承知で)
それで作ったアプリをそれぞれ個人のAppIDでリリースしてたらライセンス違反バレる?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<102KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef