【3Dゲームエンジン】Unity質問スレッド10at GAMEDEV
【3Dゲームエンジン】Unity質問スレッド10 - 暇つぶし2ch150:名前は開発中のものです。
14/07/02 08:06:04.92 EWc2yUWa.net
黄色い本にはUnityはJスクが一番効率が良くなるように作られてるとか書いてあったな
俺は単に読み慣れてるからC#

151:名前は開発中のものです。
14/07/02 13:08:50.30 uZr6i5PP.net
C#で攻めるぜありがとう

152:名前は開発中のものです。
14/07/02 16:06:45.90 hSzZV3yyk
すいません・・・
>>131です。
書き忘れていましたが言語はjavascriptです。
おそらく↓の行を変えればいいのだろうというのは分かるのですが、
どのサイトを見ても具体的に解説してくれている場所がありませんでした。
var bullet:GameObject=Instantiate(bulletPrefab,transform.position,transform.rotation);

153:名前は開発中のものです。
14/07/02 18:21:25.12 lJtkd36h.net
javaスクリプトじゃ結局やりきれないしな
c#がいいよ

154:名前は開発中のものです。
14/07/02 19:49:19.17 ASPst2OS.net
C#はいちいちクラス書かないとだめだから糞

嘘 jsのほうが簡単だと思ってjsから始めただけです

155:名前は開発中のものです。
14/07/02 20:16:41.09 zCy25au/.net
javascriptで出来ないことってあるのか?

もし無いならjsで始めちゃったしそのまま行きたいんだが・・・・

156:名前は開発中のものです。
14/07/02 20:35:37.36 QlXU2+TL.net
俺もパッと見シンプルなJSで始めちゃって今更移ろうとしても違和感が
GetComponent<type>()の<>てなんだよ・・・いやわかるけど、JSに慣れてると納得いかんことが多くて困る
C#のが機能が多いらしいけどインターフェースの継承とか自分は使わんしなあ
ほんと、どっちがいいかは人によると思う

157:名前は開発中のものです。
14/07/02 20:40:01.71 zLf1ED1q.net
無能の言い訳じゃねぇかw

158:名前は開発中のものです。
14/07/02 20:45:09.76 JKcw5LB+.net
>>152
できない事はない
MonoBehaviourからのデフォルト継承以外にも一応独自クラスから継承もできる(class宣言いるけど)
ただC#のコードと混ざるような事をするときにコンパイル順序の問題で困る事がある(C#のクラスにJavascriptのクラスを保持したり継承したりするとき)

159:名前は開発中のものです。
14/07/02 20:50:41.98 zojBDLQs.net
javascriptでもある程度慣れればC#は推測で読めるようになってくると思います。

確かにGetcomponentの<>に最初首を傾げてしまいましたが

それと、GameObject(3dモデル)を複数のスクリプトのStart内から、参照させたらその内の一つが存在しないcloneを参照しちゃったのですが、その原因が未だに分かりません……

tagで参照したのですが、参照させる数に制限はあるのでしょうか?

取り敢えず今は救済処置で、ゲームコントローラーで、モデルを生成して、そいつの名前を参照させたら旨く行きました。

160:名前は開発中のものです。
14/07/02 20:53:52.24 QlXU2+TL.net
あれ、調べたらUnityのjsならinterface使えるらしい javaと同じimplementsで継承

161:名前は開発中のものです。
14/07/02 21:49:19.58 lJtkd36h.net
>>155
どんどん、本来のjava scriptから外れていくから、
それなら最初からc#使った方がいいよ。
c#もなれれば面倒じゃないし難しい事は何も無いから、jsに逃げない方がいい

162:名前は開発中のものです。
14/07/02 22:03:14.15 JKcw5LB+.net
>>158
俺に言われても

163:名前は開発中のものです。
14/07/02 22:05:08.83 lJtkd36h.net
>>159
できない事はないって言ったのおまえじゃん
無責任に最初だけ優しい言語覚えてもしょーがないから、c#覚えた方がいい。

そもそもc#は面倒でも難しくもないし、だったらいんちきjs使わずにc#使ったほうがいい

164:名前は開発中のものです。
14/07/02 22:10:36.25 JKcw5LB+.net
>>160
jsに逃げるとか俺に言われてもこまるじゃんよー
実際できないこたぁねぇんだし。

自前でC#のクラス書くようになったり、C#コード持ち込むならコンパイル順序で困る事になるとはちゃんと書いたぢゃんよ。

165:名前は開発中のものです。
14/07/02 22:43:07.29 uZr6i5PP.net
プログラミング本のおすすめ
C#の絵本の方がやさしくてソッチのほうがいいと思う

166:名前は開発中のものです。
14/07/02 22:43:56.08 eDSrZ3VE.net
URLリンク(store-jp.unity3d.com)
このページのiOS ProやAndroid Proって何なんですか?
これがないとモバイル向けのビルドができない…わけじゃないですよね?

167:名前は開発中のものです。
14/07/02 22:47:05.39 N3YXxu3x.net
Proの機能を使わなければできる。

168:名前は開発中のものです。
14/07/02 22:57:16.71 zCy25au/.net
なるほど。
後々のことも考えてC#やるかな・・・・

URLリンク(www.amazon.co.jp)
今これ見つけたんだけど、もっとお勧めの本ってある?

169:名前は開発中のものです。
14/07/02 22:59:22.34 eDSrZ3VE.net
最適化とか書いてあるので初心者には関係なさそうですね
ありがとうございました

170:名前は開発中のものです。
14/07/02 23:05:23.81 JKcw5LB+.net
>>165
C#覚えたいならUnityでの製作とは遠回りになるけどMicroSoftのVisualStudio使った開発の本読むのおすすめ。
プログラムができてC#固有の部分だけを知りたいのならMSの言語仕様書関係の黄表紙の高い本一通り通読しておくと良い。
プログラミング自体が初心者ならまず解る言語から手を付けるのが良いけど、UnityはC#,JS(クラスベースでWebのプロトタイプベースでは無い),Python(BOO)しかないからなぁ
なんだかんだでUnityの事を知る前にプログラミングの素養が必要なのでちょっと遠回りするのをおすすめするしか。

171:名前は開発中のものです。
14/07/02 23:08:16.43 uZr6i5PP.net
結局何を使おうがプログラミング能力が必要なんですよ

172:名前は開発中のものです。
14/07/02 23:18:18.40 Q9Mkocfr.net
まとめるとJSで困る事って何?

173:名前は開発中のものです。
14/07/02 23:19:13.85 VPrZ3A9M.net
プロパティとかコルーチンとかいろいろとたいへんな言語だからなあ

174:名前は開発中のものです。
14/07/03 00:49:54.68 ZCqb1W0E.net
>>166
最適化こそ、初心者向きだと思うわけです。
適当にコード書いても、最適化でそこそこ処理が速くなるんだから。

175:名前は開発中のものです。
14/07/03 00:53:41.02 ZCqb1W0E.net
>>169
> まとめるとJSで困る事って何?

Unityの変態JSをマスターして、「ぼくJSできます!」っていうと恥をかくかもしれない。

というか、独自言語すぎて、その知識が使い回せないのが欠点かと。
せっかく覚えた知識を他で生かせないのは悲しいぞ。

176:名前は開発中のものです。
14/07/03 01:20:36.92 barvXINQ.net
ぼく jsとできてます*^-^*

177:名前は開発中のものです。
14/07/03 01:24:11.36 NvXSP48Q.net
アセットを買ったら言語に悩みませんよ

178:名前は開発中のものです。
14/07/03 01:41:35.35 4afSdlgg.net
C#だと.net系のコード資産やライブラリを流用出来るのも利点かな
NPOIとEditor拡張でExcel読み込みとか捗った。C#の資産って結構なんでもありな感じに物が揃ってて素敵

UnityScriptでもコンパイル順序とか気を付ければ使えるようだけど、結局ライブラリのソースコード読むことになると手間
巣のJavaScriptの資産を使うには手直しが多いし、ブラウザ言語として伸びたものだけにUnity上で旨味を感じられるものもないし

179:名前は開発中のものです。
14/07/03 01:59:00.18 hF02YIgz.net
3Dマリオ風ゲーム作りたいだけの俺には分かり易いjsで十分
クラスすら不要

180:名前は開発中のものです。
14/07/03 01:59:47.86 BXVgkkU+.net
なんかC#信者がウッザイんですケドー

181:名前は開発中のものです。
14/07/03 02:11:14.41 Qm05RdKY.net
unityに限ればmonoでc#言語が基本になってるから、c#がいいかもしれないね

182:名前は開発中のものです。
14/07/03 06:26:02.13 Y+BAfGHD.net
というよりずっと初心者のままでいるつもりなのは流石に笑えるw
何年経ってもうだつが上がらない人って、最初から言い訳ばっかりだよな

183:名前は開発中のものです。
14/07/03 08:10:17.15 JsOF4d9mI
Collision DetectionをContinuousにしていてもオブジェクトに衝突せずに貫通することがあるのは何故でしょうか。

184:名前は開発中のものです。
14/07/03 07:31:08.63 hF02YIgz.net
使う言語でゲームの質も決まったらいいのにな

185:名前は開発中のものです。
14/07/03 07:34:33.20 wlt3xY7j.net
ここまで見るとC#だと他からのコードコピペで動くから便利! と言う事でOKでしょうか?

186:名前は開発中のものです。
14/07/03 08:13:16.04 bmzuMbOZ.net
URLリンク(blogs.msdn.com)


187:2014/07/02/microsoft-acquires-syntaxtree-creator-of-unityvs-plugin-for-visual-studio.aspx UnityVSの開発元をマイクロソフトが買収 無料になるかもしれん VSがPRO以上必要だけどね



188:名前は開発中のものです。
14/07/03 12:45:44.36 uH9OJX93.net
>>167
なるほど、まぁそれもそうか。
ありがとう。その本使って一から頑張るわ

189:名前は開発中のものです。
14/07/03 13:52:04.89 ymCV/AeW.net
C# も JavaScript も両方読み書きできるおれには関係ないな(キリッ

190:名前は開発中のものです。
14/07/03 14:03:29.65 hZA6WLl6.net
すみません、質問なのですが
透明要素のないシェーダーを使ったマテリアルを透明にするには
シェーダーの中に透明にする要素を追加するしかないのでしょうか?
コンポーネントにそのような機能も見当たらないので困っています…

191:名前は開発中のものです。
14/07/03 14:04:16.46 wUj4bRGx.net
UnityScriptはJavaScriptを知ってる人には、出来るはずのことが出来なくて辛い

192:名前は開発中のものです。
14/07/03 14:37:46.46 PM9QpSUP.net
>透明要素のないシェーダーを使ったマテリアルを透明にするには
>シェーダーの中に透明にする要素を追加するしかないのでしょうか?
基本的にはシェーダーをいじるのが一番いい。

Pro版ならばカメラで映した内容をレンダーテクスチャに描画して、
レンダーテクスチャを透過可能なシェーダーを指定したマテリアルに設定して、
GUIテクスチャなり平明ポリゴンなりに貼って透過するという手もあるけれど、
コスパ最悪だしProじゃなきゃだめだしおすすめしない。

多分他に方法があってもシェーダー書き換えるのが一番お得。
シェーダーの記法まで覚えると面倒だから、
Unityプリセットシェーダーが配布されてるとこ見つけて、
透過できるシェーダの中身見て、それっぽいとこコピペすれば良いよ多分

193:名前は開発中のものです。
14/07/03 14:42:22.09 PM9QpSUP.net
あと俺も教えて欲しいんだけど、
モバイル開発してる人でスマホとタブレット用に別々のテクスチャ用意してる人は
それぞれどのくらいのサイズ用意してる…?

アンドロイド、アイフォン両方でリリースする予定なんだけど、
今は 640x960 と 1536x2048 の2つの解像度を想定したテクスチャ作ってる。(iPhne4SとiPad3の解像度)
どっちも比率は3:4で、アスペクト比が違う端末には黒枠で対応してる。
「テクスチャの組み合わせはこれがいいよ!」みたいなのあったら教えてくれるとめっちゃ嬉しい。

194:名前は開発中のものです。
14/07/03 15:27:33.83 SgATjdgc.net
>>188
>Unityプリセットシェーダーが配布されてるとこ見つけて、
これ公式のダウンロードにあるねん
URLリンク(unity3d.com)
ここのBuilt in shaders

195:名前は開発中のものです。
14/07/03 16:23:04.23 hZA6WLl6.net
>>188,>>190
すみません、ありがとうございます。
シェーダーの文法もある程度理解できたのでプリセットを基に
コピペして改良を加えてみようと思います。助かりました。

196:名前は開発中のものです。
14/07/03 17:47:31.45 esbtuXa7.net
>>189
アセット買うといいよ!

197:名前は開発中のものです。
14/07/03 17:57:20.33 PM9QpSUP.net
>>192
検索してみたー
xARM: Aspect and Resolution Master
ってやつかな?
実機での見た目とか表示結果をエディタで確認できるアセットなのかな…?

198:名前は開発中のものです。
14/07/03 20:28:33.27 r97mwI49.net
購入済みアセットがバージョンアップした場合、
バージョンアップ後のアセットのダウンロードには料金支払いが発生するの?しないの?

199:名前は開発中のものです。
14/07/03 20:40:47.13 Xo7xFufk.net
アセットのバージョンアップ料の請求があった話は
俺は聴いたことがないなぁ。
まぁでも一回払ったら無限サポート


200:とかやってられんから これからどうなるかは知らんけど



201:名前は開発中のものです。
14/07/03 20:56:30.34 b88FU6vQ.net
それより買ったアセットは同じバージョンなら何回でもインストールできるんですか?
例えば、PC買い替えて新しいPCでもUnity入れたあと一度買ったアセットってインストールできますか?

202:名前は開発中のものです。
14/07/03 21:01:36.25 esbtuXa7.net
>>196
アセットを買ったらできると思うよ

203:名前は開発中のものです。
14/07/03 21:22:11.26 WyT8/+mx.net
今3Dを覚えてるんだけど3Dで覚えたことを2Dで応用することって可能?
2Dもアニメーションとかあるんですか?

204:名前は開発中のものです。
14/07/03 21:28:07.02 BXVgkkU+.net
お前には無理

205:名前は開発中のものです。
14/07/03 21:35:11.43 esbtuXa7.net
>>198
アセットを買えばいいんじゃないかな

206:名前は開発中のものです。
14/07/03 21:36:35.94 SgATjdgc.net
>>196
アカウントに結びついているので同じアカウントでアクティベートしてれば大丈夫
30日限定機能を使おうとして別アカ作りまくると買ったアセットは淋しいことになる。

207:名前は開発中のものです。
14/07/03 21:49:37.72 CKS7dI6H.net
>>198
2Dのアニメーション機能は1枚1枚絵を描いて作るパラパラマンガ的なやつだよ

208:名前は開発中のものです。
14/07/03 22:10:46.97 PM9QpSUP.net
>>200 君はさっきからずっとアセットを買わせることしか考えてないのかw
なんだ君はアセットストアの回し者かw
いや大抵のことはアセット買えばどうにかなるってのもわかるけどね

209:名前は開発中のものです。
14/07/03 22:16:36.99 PM9QpSUP.net
あと>>189の件ほぼ自己解決したけど
異なる画面比率を黒枠で対応してるから、画面比率の違いは考えなくてもよかったんや。
画面比率2:3なら、
320x480 640x960 960x1440 1280x1920 辺りから好きなのをいくつか選んで用意しておいて、端末の解像度によって切り替えるだけでええんや。

210:名前は開発中のものです。
14/07/03 22:32:56.13 FdjThcxv.net
>>203
お客さん、踊り子に触れたらダメよ
もう3年ぐらい回り続けてる人だから

211:名前は開発中のものです。
14/07/04 00:06:34.41 c2MTBNH7.net
>>205
そんなに長く居座ってたっけ?
treeboaの別アプローチなら納得するかもしらんが、アセットちゃんはここ半年くらいに沸いたんじゃ?
(そういえばその半年前はもっと酷いのが居たなwww)

212:名前は開発中のものです。
14/07/04 00:52:10.48 VBk62LKo.net
>>198
チュートリアルみたら分かるけど、3dには無い要素も結構含まれてるからなぁ
唐突に2dを作れるようにはならないね

213:名前は開発中のものです。
14/07/04 01:01:00.52 q9drZTxa.net
>>202
パーツをバラバラにして動かす奴のほうがメインじゃね?公式チュートリアルがそのタイプだし

214:名前は開発中のものです。
14/07/04 01:56:45.63 MtaEHS9A.net
cubeオブジェクトを長方形にしてlocalscaleのX軸を1F単位で
増減させる事で格ゲーのライフバーのような、内部数値によって
伸縮するゲージを作ったんですが、起点が中心にあるせいで
伸縮させると片側が伸び縮みするのではなく、左右両側から
中心に向かって伸縮していまいます。
これを解決する方法はありますか?(起点をオブジェクト左端に置くとか)

215:名前は開発中のものです。
14/07/04 02:16:17.53 wR5yBZ5m.net
>>209
座標の中心がどちらかの端面にある立方体モデルを作るといい

216:名前は開発中のものです。
14/07/04 02:35:35.75 MtaEHS9A.net
>>210
それをしたいのですが、それってHierarchy→Create→Cubeなどではなく
完全自作っていう事ですよね?

217:名前は開発中のものです。
14/07/04 02:43:37.29 wR5yBZ5m.net
>>211
うむ、Unityの標準プリミティブって融通が効かないから(球とかポリゴン数やばい)
なんらかのモデリングソフトでそれぐらいは作れるようになっとくといいかと
スクリプトでモデルを出力する手もあるけど

218:名前は開発中のものです。
14/07/04 03:47:34.42 MtaEHS9A.net
>>212
なるほど・・・
ありがとうございました

219:名前は開発中のものです。
14/07/04 07:22:33.68 hc2kb0Fa.net
NGUIのUILabelで縦書きをしたいのですが
何か方法はありますか?
調べても出てこなくて。

220:名前は開発中のものです。
14/07/04 07:29:08.51 WsivLMs6.net
>>214
アセットを購入するという方法がありますよ。

221:名前は開発中のものです。
14/07/04 07:51:51.54 cjLco/W6.net
lookatがiPhone実機だと適用されないのですが
pro版のみの仕様だったりしますか?
4.5.1を使っています

222:名前は開発中のものです。
14/07/04 08:05:46.38 hc2kb0Fa.net
>>214
ありがとうございます!
縦書きする為に有名なアセットがあれば
お勧めしてください。

223:名前は開発中のものです。
14/07/04 12:14:25.34 NPAj8i2R.net
>>217
アセットストアで検索したらいいと思うよ

224:名前は開発中のものです。
14/07/04 12:20:27.58 58i9wtLO.net
>>217
アセットでは解決しないよ

225:名前は開発中のものです。
14/07/04 12:43:12.82 X8NyIDls.net
>>213ちょっとしたモデリングができた方が良いのは確かだけれど、
1.空のゲームオブジェクトを作る
2.↑の子としてキューブを作る
4.キューブのローカルX座標をキューブのスケールXの半分にする(大きさが1,1,1なら、座標を0.5,0,0にする)
5.ゲームオブジェクトのスケールXをいじる
っていう方法でもできるよ 回転や拡大の中心点変えたい時は空のゲームオブジェクトを親にするのが楽ちん

>>205そうだねごめん。今度はちゃんと客席から眺めるだけにするよ

226:名前は開発中のものです。
14/07/04 12:45:49.24 WsivLMs6.net
>>219
アセットを「購入」しなければ解決はしませんよ?

227:名前は開発中のものです。
14/07/04 12:51:21.07 X8NyIDls.net
>>216
ルックアットはモバイル端末でもフリー版でも使えるはず。
予想できるのは…

ルックアットを呼ぶ前の処理でエラーが起きてて向きを変える処理まで辿り着いていないとか…
(実機でエラーが起きてもアプリは停止しない)
それならApplication.RegisterLogCallbackとか使って例外を画面に表示すると捗るよ。

タッチの判定をInput.GetMouseButtonとかInput.mousePositionみたいなマウス系の命令でやってるとか…
(マウス系の命令でモバイル端末のタッチは取得できない)
それならInput.touchCountとかInput.GetTouchのタッチ系の命令を使うと良い。
ただタッチ系の命令はエディタで反応しないから、エディタ用のマウス命令と実機用のタッチ命令両方書いとく必要があるよ 知ってたらごめんね

228:名前は開発中のものです。
14/07/04 12:55:51.90 WsivLMs6.net
>>222
アセットを買うことで謝らなくて済むようになりますが
どうでしょう?

229:名前は開発中のものです。
14/07/04 13:38:39.76 MtaEHS9A.net
>>220
出来ました!
これで単純なゲージ類はすぐ作れそうです
ありがとうございました

230:名前は開発中のものです。
14/07/04 18:58:10.31 9Bc+cY7U.net
ラグドールを設定してみて、パーツの対応関係を間違えたのでやり直したいんですが
どうやって再設定すればいいんでしょうか
各パーツのキャラクタージョイントを一つずつ選択していって削除するしかないですか?

231:名前は開発中のものです。
14/07/04 19:35:39.47 NPAj8i2R.net
>>225
アセットを買えばいいと思いますけど

232:名前は開発中のものです。
14/07/04 20:11:20.22 58i9wtLO.net
アセットでは解決しないよ

233:名前は開発中のものです。
14/07/04 21:33:21.35 wR5yBZ5m.net
>>220
それは盲点だったわ・・・スクリプトや外部ツール使わなくても工夫次第で意外となんでもできるもんなんだな

234:名前は開発中のものです。
14/07/04 21:38:35.28 WsivLMs6.net
>>228
アセットを購入すればもう少し賢くなれるでしょうね

235:名前は開発中のものです。
14/07/04 22:51:43.24 8iwJAlvh.net
>>222
アセットを買え、って言う人は、スレに粘着している基地害なので、気にしちゃいけない

236:名前は開発中のものです。
14/07/05 00:35:34.45 fwhKGKE3.net
>>230
アセットを買うのは間違いなんですか?

237:名前は開発中のものです。
14/07/05 00:36:14.68 ZH3A8ic4.net
アセットはアシェットというほうがかっこいい!!

238:名前は開発中のものです。
14/07/05 07:00:17.73 adPva+FU.net
>>222
処理をすっきりさせたらLookatが効きました。
ありがとうございます

239:名前は開発中のものです。
14/07/05 08:30:15.26 Tl1GrWSu.net
アセットでは不可能だ

240:名前は開発中のものです。
14/07/05 09:28:48.81 P/6a1HI3S
Unityで実装されたブラウザアプリの実行時速度を外部からコントロールできるような
手法やツールはあるのでしょうか。

241:名前は開発中のものです。
14/07/05 11:31:47.10 4hned8nP.net
xx

242:名前は開発中のものです。
14/07/05 14:40:33.98 uavTcDyB.net
public int hp { get; set; }

これを

public int hp {
get {
return this.hp;
}
set {
this.hp = value;
}
}

って書き換えると下記のエラーがでる。なんでさ。。。

StackOverflowException: The requested operation caused a stack overflow.
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)
PlayerInfo.set_hp (Int32 value) (at Assets/Scripts/Player/PlayerInfo.cs:13)

243:名前は開発中のものです。
14/07/05 15:10:24.46 yKo8Fb0P.net
>>237
getter, setterの名前とインスタンス変数に付けた名前が一緒だから
this.hpを左辺値で解釈するとsetterが、右辺値でthis.hpとしてもgetterが呼ばれる。
222のsetterとgetterは永遠に自分を呼び出す

244:222
14/07/05 15:20:48.23 uavTcDyB.net
>>238
あ~、なるほどー。
理解しました!ありがとうございました。

245:名前は開発中のものです。
14/07/05 18:51:37.42 DdQVwyxA.net
そういやダークおじさんってこのスレだったけ?
グラボのスレ見てたら出没してて戦慄を覚えたw

246:名前は開発中のものです。
14/07/05 19:01:05.79 yKo8Fb0P.net
>>240
またそういう「いあ、いあ、くとぅるふ」みたいなこと言うと来るかもしれないぢゃないか!!

247:名前は開発中のものです。
14/07/05 19:53:00.68 LqlDa1fK.net
>>241
Assetを購入することで
来るのを阻止できると思いますよ。

248:名前は開発中のものです。
14/07/05 19:58:22.49 oSqj5Eii.net
一匹いるだけで十分うざいのに昔もう一匹いたの?それとも同一人物?

249:名前は開発中のものです。
14/07/05 20:30:09.68 fwhKGKE3.net
>>243が一匹目

250:名前は開発中のものです。
14/07/05 20:48:21.60 SilqY6PO.net
すみません、一昨日透明な方法について質問した>>186です。
今起きた現象の意味が分からなかったのでまた質問させて頂きます。

スタンダードパッケージのFX water(Pro Only)シェーダー(頂点/フラグシェーダー)の最初のサブシェーダーの中に
Blend SrcAlpha OneMinusSrcAlpha
と透明になってもらうためにブレンディングを付け足して透明度を自由に変えることができるようになったのですが
その水の中(カメラから見て水より向こう側)に置いたオブジェクトがまったく見えません…
シェーダーのいらない部分を確かめながら消していき
カリングやデプス、ブレンディングをいくつか追加したり消したり
と試行錯誤してみたのですが結局うまくいきませんでした。

しかしその後アルファ値を少しいじって
適当にオブジェクトを水に出し入れしたら
さきほどやりたいことどおりに水の中で映ってくれました…
驚いてその時のコードをもう一度見返しましたが結局自分が最初に付け足した
Blend SrcAlpha OneMinusSrcAlpha とオールドカードの部分を消していた
ぐらいしかやってることはありませんでした。

一応チャンスと思い保存しといたのですが、Unityを再起動すると
元の向こう側のオブジェが見えない状態になっていました。


ブレンディングを変えればいいのか
カリングやデプスなどが必要なのか
一時的にGPUの質が落ちてIF文で別の方向に行ったのか
それともUnity Pro限定とかのせいなのか
一体なにが原因だったのか意味が分かりません。

どなたか原因はわからなくてもいいので水の向こう側をちゃんと映す方法を教えてもらえないでしょうか…?
無知な長文本当に申し訳ない。

251:名前は開発中のものです。
14/07/05 21:07:22.01 BMnfLCcxE
質問です。Unity初心者です。
NGUIでiOS/Android向けのアプリを作ろうと勉強中です。

複数のスプライトを利用してパラパラ漫画のようなアニメーションを作りたいのですが、
やり方として下のように大きく2つに分かれるかなと思ってます。

1. 標準のAnimation(Animator?)を使う
2. NGUIのAtlas内のSpriteを入れ替えまくる

こちら、どちらの方がパフォーマンスに優れていますかね?
スマートフォンなので、あまり負担のかからない処理にしたいのです。
1. の方かなと個人的に思ってますが・・・。

ちなみに、アニメーションは自由に止めたり再生したいです。
お詳しいかたいらっしゃいましたら、ぜひご教授いただきたいです。

252:名前は開発中のものです。
14/07/05 21:02:02.66 LqlDa1fK.net
>>245
Assetを購入しなければ
一生オツムが弱いまま終わってしまいますよ。
本当にそれでいいのですか?

253:名前は開発中のものです。
14/07/05 21:11:58.63 5RDMk77l.net
>>245
シェーダを下記のように変更したらどうでしょうか
SubShader {
 Tags { "RenderType"="Transparent" "Queue"="Transparent+1"}
 Blend SrcAlpha OneMinusSrcAlpha
 ZWrite Off
 ~略~
}

254:名前は開発中のものです。
14/07/05 21:24:05.24 yKo8Fb0P.net
>>245
水とか透明表現の関係は描画順序とかにも依存するので一概にコレが原因って言うのは非常に難しいよ

255:名前は開発中のものです。
14/07/05 21:48:11.50 6/5YeGIR.net
>>245
反対側からみてみ?
描画順の問題だったら見え方が違うかもしれないよ


モニターの裏から見ろって事じゃなくて、おぶじぇくとのむこうからみるってことだからな

256:名前は開発中のものです。
14/07/05 21:53:25.70 SilqY6PO.net
>>248,233,234さん
非常に助かりました!
透明にする時はTagでの描画順序的なものを考慮するべきだったんですね。
これでやっとモーション作りに移れそうです。
迅速な返答、ありがとうございます。

257:名前は開発中のものです。
14/07/06 00:00:05.93 N5QQMiFF.net
>>251
最近のunityスレは殺伐としてるのでとっても心あたたまったよ
頑張れ

258:名前は開発中のものです。
14/07/06 01:27:30.34 +x1vY1xa.net
>>232
幼女っぽい

259:名前は開発中のものです。
14/07/06 02:18:14.83 1ai0I56Z.net
Shuriken(ParticleSystem)のrotationの回転軸は変えられないのでしょうか
波動エフェクトを様々な角度にして生成したいのですが

260:名前は開発中のものです。
14/07/06 02:45:22.90 jnVGzpVR.net
>>254
アセットを買えばいいと思うよ

261:名前は開発中のものです。
14/07/06 06:22:10.29 hlWRxZH9e
Unity2Dで
モンスターを次々と左右から出して中心に向かって歩かせたいのですが、
scaleをx=-1にして反転画像を使うとドローコールがどんどん増えます。
始めから反転画像を用意する以外にドローコールを増やさない方法はありますか?

262:名前は開発中のものです。
14/07/06 09:57:14.52 b+O76MgTq
ちょっと疑問に思ったんだけど
質問スレのアドレスってググると2つあって
レスは同じものがあるのだけれど、
微妙にレスの番号とか、レスのあるなしがあるけどなんで?
スレリンク(gamedev板:980番)
スレリンク(gamedev板)

263:名前は開発中のものです。
14/07/06 08:34:29.99 +M1clTAW.net
javascriptでゲーム制作を勉強中です。
"!"の使い方について教えてください。

ちょっと詳細を省きますが、
下記のような式がありまして(色々省いています)

var open_switch : boolean ;
var temp_open_switch : boolean ;

if (temp_open_switch != open_switch)
 →これは比較演算式で左右の値が等しくない場合は”ture”ですよね
if (!open_switch)
 →このように、先頭に来る場合はどのような意味になるのでしょうか?

ググったけれ見つけられず、
申し訳ございませんが、宜しくお願いいたします。

264:名前は開発中のものです。
14/07/06 08:41:02.52 1ai0I56Z.net
>>258
if (!open_switch)

if (open_switch==false)
と同義

265:名前は開発中のものです。
14/07/06 08:50:31.77 +M1clTAW.net
>>259
なるほど、ありがとうございます!
そうすると下記のような場合だと

var open_switch:GameObject;
if(!open_switch)

”open_switch”が"GameObject"とイコールではないとなるのでしょうか…
すみません、宜しくお願いします。

266:名前は開発中のものです。
14/07/06 08:51:42.60 FBnZyoZb.net
Unityで実装されたブラウザアプリの実行時速度を
外部からコントロールできるような手法やツールはあるのでしょうか。
Unityアプリのスピードを、速くしたり、遅くしたりということをツール等を
使ってできるのかがわかりません。
タスクマネージャからブラウザのプロセスの優先度を下げたり、上げたりして
みましたがアプリのスピードを変える事ができませんでした。
どなたかご存知でしたらご教授ください。

267:名前は開発中のものです。
14/07/06 09:04:00.69 1ai0I56Z.net
>>260
その場合はopen_switchがnullのときだけ
つまりopen_switchに何のGameObjectも代入されてない場合にifの先が実行される

・・・と思う
自分もまだ勉強中ゆえ本当にそうかはちょっと自信がない

268:名前は開発中のものです。
14/07/06 09:11:45.22 +M1clTAW.net
>>262
ありがとうございます。
参考にしてみます。
”!”の記入の仕方が色々あり、読み解くのが
難しいです。。。

269:名前は開発中のものです。
14/07/06 10:31:59.86 N5QQMiFF.net
>>263
! variable は数値、真偽値、オブジェクトに対して
variable == 0
variable == false
variable == null
として使う
明示的じゃないので嫌いな人も居るから読みやすいように書けば良いと思うよ。

270:名前は開発中のものです。
14/07/06 10:34:02.81 9dRES+AK.net
             ∩___∩
             |ノ⌒  ⌒ ヽ     
             / ●)  ●) |
オツカレチャ━━━|   ( _●_)  ミ━━━ン♪
            彡、  |∪| 、`
              /  ヽノ  ヽ
             / 人    \\   彡
           ⊂´_/  )    ヽ__`⊃
                / 人 (
               (_ノ (_)

271:名前は開発中のものです。
14/07/06 10:45:03.89 +M1clTAW.net
>>264
ありがとうございます。
勉強になります!

272:名前は開発中のものです。
14/07/06 11:08:05.44 +M1clTAW.net
サウンドの組み込みについて質問です。
下記のような形で、
指定のゲームオブジェクトに当てはめられている「goalScript」
が「cleared==false」なら「voice」を再生しています。
現状の指定で流れはするのですが、
unity上でのゲーム再生ボタンを押したときに、
頭何フレームかだけ再生されたり、
他のアクションを起こしたときも、動揺に
数フレームだけ再生されたりと
不自然な挙動をします。
色々調べはしたのですが原因がわかりせん。
すみませんが、アドバイスをいただけませんでしょうか。
宜しくお願いします!


var goalObj:GameObject;
var goalScript:GoalScript;
var voice: AudioClip;

function Start () {
goalScript=goalObj.GetComponent("GoalScript");
}

function Update () {
if(goalScript.cleared==false){
audio.Play();
audio.clip = voice;
}
}

273:名前は開発中のものです。
14/07/06 11:13:39.06 9dRES+AK.net
             ∩___∩
             |ノ⌒  ⌒ ヽ     
             / ●)  ●) |
オツカレチャ━━━|   ( _●_)  ミ━━━ン♪
            彡、  |∪| 、`
              /  ヽノ  ヽ
             / 人    \\   彡
           ⊂´_/  )    ヽ__`⊃
                / 人 (
               (_ノ (_)

274:名前は開発中のものです。
14/07/06 11:36:08.98 W+VtYmCA.net
audio.Play();
audio.clip = voice;

これ逆じゃね?
あと毎回Play呼ばれてね?

275:名前は開発中のものです。
14/07/06 11:42:45.52 +M1clTAW.net
>>269
ありがとうございます。

逆というと、こういうことでしょうか。。。
audio.clip = voice;
audio.Play();

また、毎回プレイで呼ばれている、確かに
何かアクションを起こす度に音がなります。
それは、「audio.Play();」の再生方法が間違っているのでしょうか。

276:名前は開発中のものです。
14/07/06 12:07:34.19 /ZhdI6Tk.net
Updateメソッドは毎F呼ばれる
falseにずっとなってても1度しか鳴らしたくないのであれば
フラグでも立てればいいのでは?

var flag : int = 0;

function Update () {
if(goalScript.cleared==false && flag == 0){
audio.Play();
audio.clip = voice;
flag = 1; //再プレイ抑止
}

277:名前は開発中のものです。
14/07/06 12:07:36.22 A7UAPEqP.net
audio.Play()のつかいかた自体と言うよりも、
毎回、音がなってるからそれ制御してやって。

278:名前は開発中のものです。
14/07/06 12:24:22.63 www09xjy.net
>>270
アセットを購入しましょう

279:名前は開発中のものです。
14/07/06 12:24:31.86 +M1clTAW.net
>>271
Updateの考え方が分かりました。
PG初心者なもので、ありがとうございます。
毎F呼ばれるので、スタート時や何かアクションを
起こしたときに再生されるのですね。。。

また、ご連絡いただきましたスクリプトですと、
「cleared==false」になったと同時に「flag = 1」に
なってしまいます。
「audio.Play()」再生後に「flag = 1」にするには、
どのように対応すれば宜しいでしょうか。
すみませんが、宜しくお願いします。

280:名前は開発中のものです。
14/07/06 12:46:49.69 g+013jS2.net
どういう用途でサウンドを再生したいの?
「スタート!」とかBGMとか効果音とかでやり方変わるよ

初心者ならフローチャートみたいのを書いた方が楽にできるだろうし、
論理的な考え方も身につくんじゃないかな?

281:名前は開発中のものです。
14/07/06 12:52:35.12 /ZhdI6Tk.net
>>274
audio.Play();
audio.clip = voice;

ここ2ステップの正当性については検証していませんが
処理順的にvoiceが鳴ったあとにフラグONされるはずですが・・・
デバッガでステップインしたらちゃんとそこを通っていますか?
voiceにはちゃんと中身が入っていますか?

282:名前は開発中のものです。
14/07/06 12:57:30.13 +M1clTAW.net
>>275
256です。
度々すみません
"キャラを3Dフィールドで動かして、「goalObj」というアーチオブジェクトを
通過したら、「voice」を再生。
また再度通過しても、同様に「voice」を再生する。"
という使用でサウンドを鳴らしたいと考えています。
宜しくお願いします。

283:名前は開発中のものです。
14/07/06 13:10:34.33 +M1clTAW.net
>>276
256です。
いただきましたスクリプトで下記のように記述しています。
現状このような状態です。
・再生すると「flag」が常に1の状態です。
・「flag = 1」の部分をコメントアウトすると音声が流れます。
・「cleared==false」になったときに「flag = 0」になり
 「voice」の再生が終わったら「flag = 1」になるイメージでしょうか。
 (書き方がちょっと分かりませんが…)
宜しくお願いします。

var goalObj:GameObject;
var goalScript:GoalScript;
var voice: AudioClip;
var flag : int = 0;

function Start () {
goalScript=goalObj.GetComponent("GoalScript");
}

function Update () {
if(goalScript.cleared==false && flag == 0){
audio.Play();
audio.clip = voice;
flag = 1;
}
}

284:名前は開発中のものです。
14/07/06 13:27:50.82 N5QQMiFF.net
goalScript.clearedって通過した瞬間だけ1になるようにできないの?
あるいは goalScriptのclearedをクリアチェックして更新してる箇所で
if(audio.isPlaying == false) {
audio.clip = voice;
audio.Play();
}
ぢゃないの?

も一つおまけにゴール通過した時とゴール地点に居座った時の区別とか付く?

285:名前は開発中のものです。
14/07/06 13:33:54.41 yBLHkZ9t.net
まず、Updateの仕様を理解するところからはじめようぜ。

そのスクリプトをつけたゲームオブジェクトがシーンに存在している間は、1秒間に60回とか永遠にUpdateは実行される。

なにかのボタンを押した時だけ再生したいとかなら、そのボタンを押したという情報をUpdate内で判断してplayを実行しなきゃならん。
それが、flagだ。

だから、ボタンを押した時にこのflagを1にしてやる処理を書かないと動かん。

286:名前は開発中のものです。
14/07/06 13:46:21.21 /ZhdI6Tk.net
>>278
アーチっていうのが何か分からないのですが100m走のゴールのようなK点ですか?
そのK点に透明のIsTriggerオブジェクト置いてキャラとK点に置いた
IsTriggerオブジェクトが接触したら(通過したら)

var audioclip : AudioClip; // ボイスフィールド

void OnTriggerEnter (Collider coll){
 if(coll.gameObject.tag == "IsTriggerオブジェクト")
 {
  audio.PlayOneShot(audioclip); //ボイス再生
 }
}

とかすればいい気がします
Enterなら接触した瞬間なので一度しか鳴りません
var audioclip : AudioClipはインスペクタから鳴らしたいボイスファイルをアタッチします

287:名前は開発中のものです。
14/07/06 13:47:48.80 yBLHkZ9t.net
まちがった。修正。

> だから、ボタンを押した時にこのflagを1にしてやる処理を書かないと動かん。

正)flagを0に

288:名前は開発中のものです。
14/07/06 13:47:52.35 +M1clTAW.net
>>279
256です。
”goalScript.clearedって通過した瞬間だけ1”そうなのですが、
書き方がわからず悩んでいるところです。。。

>>280
言われている通りで、
Updateが毎フレーム実行していることがようやく理解出来たところです。
”flagを1にしてやる処理”ここが261さんの返答でも書きましたが、悩んでいるところです。

宜しくお願いします。

289:名前は開発中のものです。
14/07/06 13:53:14.81 9dRES+AK.net
               ∩―-、
              / (゚) 、_ `ヽ
             /  ( ●  (゚) |つ
.オツカレチャ━━━| /(入__ノ   ミ━━━ン♪
             、 (_/    ノ
              \___ ノ゙
               /      ヽ
              / 人    \\   彡
            ⊂´_/  )    ヽ__`⊃
                 / 人 (
                (_ノ (_)

290:名前は開発中のものです。
14/07/06 14:19:05.13 +M1clTAW.net
256です
サウンドの件ですが、

var goalObj:GameObject;
var goalScript:GoalScript;
var voice: AudioClip;
var flag : int = 1;

function Start () {
goalScript=goalObj.GetComponent("GoalScript");
}

function Update () {
ーーここの部分に「cleared==false」なら「flag」を
0にする指定を書くいめーじでしょうかーー
if(goalScript.cleared==false && flag == 0){

audio.Play();
audio.clip = voice;
flag = 1;
}
}

宜しくお願いします。

291:名前は開発中のものです。
14/07/06 14:57:57.08 Ml1Wif2C.net
>"キャラを3Dフィールドで動かして、「goalObj」というアーチオブジェクトを
>通過したら、「voice」を再生。
>また再度通過しても、同様に「voice」を再生する。"
>という使用でサウンドを鳴らしたいと考えています。

キャラを動かしてgoalObjとの衝突判定取れるとこまでは出来てるんだよな・・・?
本でも買って一から勉強したほうがいいレベルのような気がするが
黄色い本がオススメだぞ

292:名前は開発中のものです。
14/07/06 15:00:44.87 N5QQMiFF.net
まず何が解っていないのかすら解っていないと思うので>>286が述べているように書籍なりなんなりで一通りの事を覚える方が良いと思う。
ツクールとかと異なって細かい事までできる分Unityは言われているほど簡単じゃないから。

293:名前は開発中のものです。
14/07/06 15:21:00.72 +M1clTAW.net
>>286
動きの方は問題ないのですが、
サウンドの制御が上手くいきません。
なるのだけれど、&qu


294:ot;Updateが毎フレーム実行"というところで 引っかかり、余計なところで再生してしまう。 モーションもサウンドと似たようなスクリプトだけれど、 サウンドは上手くいきませんね。。。 unity入門は一通り目を通したのですが、 中々応用が厳しい状態です。



295:名前は開発中のものです。
14/07/06 15:25:03.44 N5QQMiFF.net
>>288
本読んでいるってことはGoalオブジェクトとの衝突判定にはCollision使ってるんだよね?
ならCollisionチェック(上でだれかが書いていたけど)のあるScript側でゴール音ならすだけじゃないの?

296:名前は開発中のものです。
14/07/06 15:44:08.47 +M1clTAW.net
>>289
すみません、ちょっと話がループしてしまうのですが、
現状のスクリプト(下記のもの)
でも音がなるのですが、
unity上で再生ボタンを押したときなど、
余計な時にも成ってしまう。
→"Updateが毎フレーム実行"の為に起こってします。
そこで、その部分の制御方法が知りたいです。。。申し訳ないです。
その他UIなどのからみもあり、出来れば現状のスクリプトで
解決したく思っております。
また、現状のものに過失修正するのでは、不可能の対応なのでしょうか。
度々お聞きして申し訳ございませんが、宜しくお願いします。

var goalObj:GameObject;
var goalScript:GoalScript;
var voice: AudioClip;

function Start () {
goalScript=goalObj.GetComponent("GoalScript");
}

function Update () {
if(goalScript.cleared==false){
audio.Play();
audio.clip = voice;
}
}

297:名前は開発中のものです。
14/07/06 15:47:52.33 BQWLChCY.net
goalScript.clearedをゴールの判定したところでfalseにする


そしてUpdateで
if(goalScript.cleared==false){
goalScript.cleared=true●●●ここを追加
audio.Play();
audio.clip = voice;
}

かね

298:名前は開発中のものです。
14/07/06 15:48:31.46 BQWLChCY.net
あーでもゴール判定するところをこれ以降呼ばないようにしないと何度も出るな

299:名前は開発中のものです。
14/07/06 15:49:11.00 BQWLChCY.net
あ、上にあることと同じこと書いてあるかもしれないごめn

300:名前は開発中のものです。
14/07/06 16:18:25.09 kNYy9+kR.net
書き込めるかテスト

301:名前は開発中のものです。
14/07/06 16:21:41.06 kNYy9+kR.net
あー失礼
OnCollisionExitで
cleared=falseしてやればいんじゃね
曲の途中でexitされるのがイヤならそれが終了するまで待つ必要があるけど

302:名前は開発中のものです。
14/07/06 16:25:51.67 www09xjy.net
アセットを購入したらそんな面倒なことしなくてもいいよ

303:名前は開発中のものです。
14/07/06 16:52:22.66 +M1clTAW.net
>>295
ありがとうございます。
「OnCollisionExit」調べさせていただきます。
しかしながら、申し訳ないのですが、
「audio.Play(); 」を一回だけ実行する方法が知りたいです。
現状のスクリプトですと、
unity上で再生ボタンを押したときなど、
余計な時にも鳴ってしまう状態です。。。
宜しくお願いします。

304:名前は開発中のものです。
14/07/06 17:03:51.29 kNYy9+kR.net
>unity上で再生ボタンを押したときなど、
cleared==false
で鳴るんでしょー
初期値がfalseなら最初にUpdateが来たときに鳴るのは正常な動作だよ
cleared=trueに初期化して
何者かがCollisionEnterしたときにcleared=falseにしてあげれば
一回だけ鳴るよ
trueとfalse逆のほうが意味が混乱しないかもしれないけど

305:名前は開発中のものです。
14/07/06 17:34:11.18 www09xjy.net
>>297
アセット買えばいいと思うよ

306:名前は開発中のものです。
14/07/06 17:44:36.50 h+L1nGu/.net
>>297
自分だったらプレイヤーに
function Goal {
 audio.clip = voice;
 audio.Play();
}
というメソッドを用意して、ゴールオブジェクトのOnTriggerEnter(Collider other)で
other.gameObject.SendMessage("Goal")
とメッセージを送ります。Updateは使いません

307:名前は開発中のものです。
14/07/06 17:45:49.89 FOrSI5nd.net
>>262
たしか、if(x)が実行されないのは、x=0の時だけで、x=10とか、でも実行されるよな?不安になってきた

308:名前は開発中のものです。
14/07/06 19:53:39.89 1ai0I56Z.net
>>301
その辺は>>264が完璧だと思う
x=10でも実行される

309:名前は開発中のものです。
14/07/06 20:08:00.79 8bCjoDHE.net
まさか音源のコンポーネントの起動時に再生するチェックボックスにチェックが入ってるんではあるまいな?

310:名前は開発中のものです。
14/07/06 20:12:44.73 FOrSI5nd.net
>>302
サンクス

311:名前は開発中のものです。
14/07/06 22:09:08.54 1ai0I56Z.net
なぜだ・・・
再生するたびにカメラの追従がガタガタになったり直ったりする

312:名前は開発中のものです。
14/07/06 22:12:20.98 +M1clTAW.net
256です
どうやら上手くいきました。。。
>>271さんのものをベースに再生指定方法を「PlayOneShot」に変更しましたら、
予定した再生方法に出来ました。
"function Update"だと"audio.Play()"は機能しないのですかね。
"function Start"だと再生されるのですが。。。

ひとまず、
色々アドバイスいただき、ありがとうございました!!!

313:名前は開発中のものです。
14/07/06 22:38:43.47 qYY8rbjF.net
Unityでゲーム作れる男の人ってステキ!
みたいな感じでハーレム築けませんかね?

314:名前は開発中のものです。
14/07/06 23:25:21.79 6HL28AkK.net
>>305
オブジェクトを物理で動かしてカメラをUpdate()でうごかしたり
オブジェクトとカメラをUpdate()で動かしたりするとそうなる、
かもしれない。

315:名前は開発中のものです。
14/07/06 23:43:29.23 1ai0I56Z.net
自己解決しました
Inspectorにカメラそのものかカメラが追従するもの(プレイヤー)が表示されたまま
ゲームを再生するとカメラがガタガタになるらしい

316:名前は開発中のものです。
14/07/06 23:48:26.75 W+VtYmCA.net
Startは初回に1回しか実行されないんだからそりゃ上手く鳴るだろ・・・
全然分かってないと思うんだが大丈夫かよ

317:名前は開発中のものです。
14/07/06 23:59:03.64 qYY8rbjF.net
StartやUpdateの仕様もそうだが、プログラムの基礎が怪しすぎて教えてあげたいが、教えられない。

318:名前は開発中のものです。
14/07/07 06:22:04.29 1a4GRbbJ.net
アセットを買えばプログラムもいらないと思�


319:「ます



320:名前は開発中のものです。
14/07/07 11:59:01.03 NmVEc3Ia.net
Windows の Editer上で、WebViewみたく、Web表示できるアセットってないですかね?

WebViewは、Android,いPhone,Macは、対応してるけど、windowsだけ対応してなくて。
現在開発がWindows中心なのでどうにかそこもカバーしたい。。

321:名前は開発中のものです。
14/07/07 14:05:19.09 HFPJwFqU.net
クラス内のpublicフィールドを全部一括でインスペクタに表示しない方法ってありますか?

フィールドが2~3個なら[System.NonSerialized]でいいんですが
50個くらいのフィールドを全てインスペクタに表示しないようにしたいんですが、
一つ一つに[System.NonSerialized]付けていくしかないですか?
一括でできる方法があれば教えて下さい

322:名前は開発中のものです。
14/07/07 14:28:44.66 xmI8T3g4.net
>>314
方法はいくつかある。
その前にSystem.NonSerialized属性はフィールドをインスペクタに表示しない属性じゃなくて、
フィールドをシリアライズしない属性。非表示だけならHideInInspector属性を使うと良いよ。

んで一括で表示させない方法だけど、まずはそのフィールドが本当にフィールドである必要があるかを考える。
プロパティはシリアライズされないから、{get;set;}とかをつけてプロパティにしてしまう手もある。他クラスから取得できるけど設定できない値とかも作れるよ。

他にはカスタムエディタを定義しておく方法がある。
Editorってフォルダ内に適当に「(クラスの名前)Editor」みたいなスクリプト作る。
UnityEditor名前空間を参照して、Editorクラスを継承する。
CustomEditor属性を付けてフィールドを非表示にしたいクラスを渡す。
OnInspectorGUIメソッドをオーバーライドしてインスペクタの表示処理を書く。

323:名前は開発中のものです。
14/07/07 14:29:13.89 xmI8T3g4.net
>>315の例
<例>
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(インスペクタをカスタマイズしたいクラス))]
public class ExampleEditor : Editor
{
public override void OnInspectorGUI()
{
var selectedObject = target as インスペクタをカスタマイズしたいクラス; // ←これが選択中のコンポーネントのインスタンス

// GUI,GUILayout,EditorGUI,EditorGUILayoutなんかを使ってインスペクタの表示を好きにいじれる。
EditorGUILayout.LabelField( "このクラスのフィールドは表示しないよっ!" );

// base.OnInspectorGUI(); ←このコメントを外すと普通にインスペクタが表示される。
}
}

324:名前は開発中のものです。
14/07/07 14:44:25.67 HFPJwFqU.net
ありがとうございます。参照にします。

ちなみに、System.NonSerialized属性にするとセーブ機能なんかでバイナリ保存したい場合とか
保存できないですよね?
あと、どっかのサイトにHideInInspectorよりSystem.NonSerializedの属性使う方が
トラブルが少ないと書かれていたのでSystem.NonSerializedがいいのかなと思っていました

325:名前は開発中のものです。
14/07/07 14:45:00.13 HFPJwFqU.net
>ありがとうございます。参考にします。

すみません、誤字でした

326:名前は開発中のものです。
14/07/07 15:15:53.35 HFPJwFqU.net
すみません、あと一つお聞きしたいんですが
デバッガ(デフォルトのMonoDepeloperです)で、
メソッド名やクラス名から、そのメソッドやクラスの定義場所に
飛ぶ事ってできますか?
メソッド名にカーソル合わせてファンクションキーで

MSのVisualStudioは確か、F5か何かでそういう事が出来ました

327:名前は開発中のものです。
14/07/07 15:30:25.22 eJFMJ6UC.net
人物のアニメーションをレガシーで制御したいと思い、
適当なFBXファイルをhumanoidからレガシーに設定し直しました
しかし何故か右下のアニメーション確認窓で動きが確認できないので、クリップを切り分けることもできずで困っています
人物型のアバターをドラッグ&ドロップなどしても窓に


328:反映されない感じです 今さらレガシーもなんだとは思うんですが、どなたかわかる方いらっしゃいますか?



329:名前は開発中のものです。
14/07/07 16:19:20.74 N3XLjMKC.net
>>320
アセットを買えばいいと思います

330:名前は開発中のものです。
14/07/07 17:03:34.34 6DBZchmd.net
>>305
これ、アクションゲーム作るときに凄く悩まされたんだけど、

毎フレーム更新してるから、レンダリング云々でガクガクになるから

カメラ追従の位置をslerp使って中間を取るといいんだよね?

331:名前は開発中のものです。
14/07/07 18:27:13.35 XCqy4kdt.net
>>322
自分はカメラのpositionをターゲットに追従させながらrotationを向けている
positionはSmoothDamp、rotationはSlerpを使っているけど
Inspectorに何か表示されてるとガクガクなる(特に>>309の条件で確実に発生する)

Inspectorに表示されてることでどういった影響が出てるのかはよくわからない

332:名前は開発中のものです。
14/07/07 18:42:29.10 zFT18/Wd.net
バグっぽいのは公式に報告しましょう

333:名前は開発中のものです。
14/07/07 19:24:12.84 xmI8T3g4.net
>>317
>HideInInspectorよりSystem.NonSerializedの属性使う方が
>トラブルが少ないと書かれていたのでSystem.NonSerializedがいいのかなと思っていました

もちろんどっちが良いということはない。
ただし用途によって使い分ける必要はある。
その機能がなんのために提供さてれいて、どんなときに使うものなのか常に考えていこう。

>>319
ソースを右クリックしたらGo to declaration(宣言に移動)ってのがあるからそれ。自分の環境だとショートカットはF12になってたよ。
ちにみにその下のFind reference(参照を探す)ってのが選択したクラスやらメソッドやらが使われてる場所の一覧出すやつ。

334:名前は開発中のものです。
14/07/07 19:46:31.46 HFPJwFqU.net
>>325
ありがとうございます。
F12でいけました!

335:名前は開発中のものです。
14/07/07 20:10:33.03 AkErnja1.net
衝突判定についてご教示ください。
立方体をマウスクリックした際に、どの面がクリックされたかを取得したいのですが

Ray ray = Camera.main.ScreenPointToRay( Input.mousePosition );
if( Physics.Raycast( ray, out hit ){
// 立方体のどの面がrayと交わった?.
}
hitにオブジェクトのワールド座標等が格納されていることは理解したのですが
どの面がクリックされたのか判別の方法がわかりません。
立方体の頂点座標が算出できれば面もわかるのかも知れませんが、知識不足ですみません。

ご存知の方いましたらご教示をお願いいたします。

336:名前は開発中のものです。
14/07/07 20:13:26.02 Ljm9tBgH.net
失礼、自己解決です。

337:名前は開発中のものです。
14/07/07 20:15:20.63 hxC6zxXd.net
>>320の質問誰かお願いします
FBXファイルがレガシーでのインポートに対応してないのかと思ったらそんなことないし
よくわかりません
使ってるファイルは有名なフリーのアニメーションアセットです、たしかunity公式だったかな

338:名前は開発中のものです。
14/07/07 20:43:00.20 62bXAYEJ.net
スクリプトのエラーについて質問です。
先程まで普通に再生できていたのに突然NullReferenceExceptionという
エラーが出るようになり再生できなくなってしまいました。
どうしたら元に戻るでしょうか?
どなたかご教授宜しくお願いします。

339:名前は開発中のものです。
14/07/07 20:54:38.50 b1e9ZXbN.net
>>330
それがいわゆる有名な「ぬるぽ」というやつです。

340:名前は開発中のものです。
14/07/07 21:46:09.56 9cyM0yix.net
>>327
hit.pointで判定できると思うんだけど何か問題ある?

341:名前は開発中のものです。
14/07/07 22:03:54.63 T/C3A20J.net
>>330
そのエラーメッセージのとおりヌルを参照するとそうなる。

とりあえずそのエラーメッセージをダブルクリックすれば
MonoDevelopが起動してスクリプトのどこでエラーが起きてるのか



342:教えてくれる。 今まで何故動いてたのか、とかどうすれば動くようになるのかは みてみないことにはわからん。 >>329 とりあえずFBXで必ず起きるという現象ではない、とは言える。 手元にあるものはLegasyにしても表示されている。 ただ確かに表示されないという現象が起きたことがあるな~、 という記憶はあるな。



343:名前は開発中のものです。
14/07/07 22:32:23.90 YdReXL8o.net
該当のスクリプトをいじってないのに急にNullエラーを吐き出した時はUnityを再起動すると直ったりする
直らない時もあったりするからバックアップは必須

344:名前は開発中のものです。
14/07/07 22:54:39.38 WzLbsFo2.net
>>329
他のCGソフトに読み込んでアニメ確認が早い気もするがのー

345:名前は開発中のものです。
14/07/07 23:58:14.69 xmI8T3g4.net
  ( ・∀・)   | | ガッ
 と    )    | |
   Y /ノ    人
    / )    <  >__Λ∩
  _/し' //. V`Д´)/ ←>>331
 (_フ彡        /

346:名前は開発中のものです。
14/07/08 01:10:11.26 6jeNO0ogg
大量のスプライトをそれぞれ個別にプレハブ化したいのですが
一括でできる方法はないでしょうか?

■環境 : Unity4.51 f3です。
■目的 : 2Dゲームのマップチップ用の画像(スプライト)を
テキストデータに記述したマップ作成用データを元にして
チップごとにInstantiateで作成・配置したいのですが
プレハブ化するために複数のスプライトをまとめて
hierarchyビューなどにドラッグ&ドロップしてしまうと
「Create New Animation」と表示されてアニメーション
作成になってしまいます。

ご存知の方がおられればアドバイスいただけませんか。
よろしくお願いします。

347:名前は開発中のものです。
14/07/08 09:25:06.86 NX4W3vdm.net
アセットを買えばいいんじゃね

348:名前は開発中のものです。
14/07/08 09:29:06.74 Qd6T63my.net
>>338
ダメに決まってんだろこのアスペが。

349:309
14/07/08 09:51:12.27 4qnhUGqB.net
>>332
ありがとうございます。
hit.pointは衝突した座標が取得できると思うのですが
そこから立方体の各頂点、面はどうすれば判別できるでしょうか?
見当違いなこと聞いてたらすみません。

350:名前は開発中のものです。
14/07/08 10:02:05.26 ZJvtMt/G.net
>>333-316
返信ありがとうございます。
今度からはちゃんとバックアップ取っておくように気をつけようと思います‥‥

エラーが出てる箇所は
if(transform.position.y < fallLimit || transform.position.x < cam.transform.position.x -8){
Application.LoadLevel("menu");
}
Destroy(gameObject);
}
↑の

if(transform.position.y < fallLimit || transform.position.x < cam.transform.position.x -8){
この部分なんですが、どこがおかしいのかよろしければ教えて頂けないでしょうか?

351:名前は開発中のものです。
14/07/08 10:28:29.63 ytRwZWLO.net
>>313
URLリンク(uwebkit.com)
これがWindowsで使えるWebViewを提供してる、ただしプラットフォームがWin,Mac,iOSのみ
Win側の実装は別プロセスでWebKitブラウザサーバが動いていてそいつにレンダリングさせた画像を取得する方式
俺はコレとGreeのWebViewのAndroidとをラッパーと#ifでAPIそろえてから使ってる。
uWebKit単体はテクスチャレンダリングとかも含んでるのでAndroidを捨てるなら3Dゲームのシーン内で看板にしたりとかもできる

352:名前は開発中のものです。
14/07/08 10:28:45.55 t1kUpUtT.net
>>340
恐らくだが、

コンタクトポイントは物理エンジンが
衝突検知したときに生成してよこしてくる。

URLリンク(docs.unity)


353:3d.com/ScriptReference/Collision-contacts.html The contact points generated by the physics engine. コリダー自体はメッシュコリダーだけではなくスフィアやカプセル、 キューブなんかもあるのでコンタクトポイント生成の仕組みに 頂点や面は常に関係している訳ではない。 ということはメッシュコリダーを使った時に頂点や面の情報を提供するには 特別にその為の機能が実装されていてその情報をストアするデータ構造が 用意されていなければならないはずだがそういうものはない。 てあたりから考えるにコンタクトポイント配列から一番近い面、頂点なりを 割り出す機能を自分で実装するしかない、のではないかな。



354:名前は開発中のものです。
14/07/08 10:33:31.76 t1kUpUtT.net
>>341
その中身だと多分cam、が割り当てられていないとか
実行時に消滅しちゃってるとかそんな話じゃない?

355:名前は開発中のものです。
14/07/08 11:08:22.80 ZJvtMt/G.net
>>344
ご指摘通りcamが割り当てられていなかったみたいでした‥‥。
助かりました。ありがとうございます!

356:名前は開発中のものです。
14/07/08 12:18:46.50 QX88T4yM.net
>>333
>>335
ありがとございます
Raw Mocap Dataってアセットを使ってたんですが、
どうやらここのFBXデータは軒並みレガシー化が出来ないようです
理由はよくわかりませんがメカニム専用に作られてるんでしょうね
他のアセットでは出来ました

使いたいモーションはここのやつだったので残念です

357:309
14/07/08 12:42:36.02 4qnhUGqB.net
>>343
ありがとうございます。
そうですよね……
そもそも衝突したオブジェクトが立方体かどうかなんて
エンジン側には関係ないわけで、自分で計算するしかありませんよね。

その計算方法がいまいちピンとこないのですが……数学がんばっとけばよかったな。
また質問させていただくかもしれません。
回答くださった方、ありがとうございました。

358:名前は開発中のものです。
14/07/08 12:43:59.96 Qd6T63my.net
>>338
ダメに決まってんだろこのアスペが。

359:名前は開発中のものです。
14/07/08 12:48:54.92 t1kUpUtT.net
>>346
ちょっと開いてみたがこのデータはモデル(メッシュ)が入ってないんだわ。
なのでレガシーにしてプレビューしたいならまずRawMocapDataの
一番上の階層のDefaultAvatarのリグをレガシーに設定した上で
Animationsの中のクリップをレガシーにしてプレビューの右下にある
人マークをクリックしてotherを選べばFBXやPrefabの一覧が出てくるので
そこでさっきレガシーに設定したDefaultAvatorを選べばプレビューできる。
少なくとも俺のところではできた。

360:名前は開発中のものです。
14/07/08 13:23:17.22 xirEgGux.net
>>349
アセットをかったほうがいいよ

361:名前は開発中のものです。
14/07/08 13:57:39.34 ddu7OeuU.net
RPG、SRPG系ゲームのセーブ・ロード機能を作りたいです。
ググってみるといくつかサイトが見つかったのでバイナリでデータを
保存するという処理を見つけました。
URLリンク(github.com)

これってRPG、SRPG系ゲームのセーブ・ロード機能として使えますか?

あと実際ちょっとこの処理を使ってセーブをやってみたのですが、この処理の使い方に
「セーブしたい時はコードから"SaveLoad.Save();"とするだけです」と書いてありました。
なので、SaveLoad.Save();と書いてコールしてみましたが、以下のエラーが出ました。
IOException: Sharing violation on path C:\Users\user\Documents\RPG test\Save\SaveData.dat

デバッガで追ってみると上記コードの137行目bf.Serialize(fs, data);でdataの中身がnullでした。
おそらくこれが問題だと思うのですが、dataの格納処理はCrateSaveFileメソッドでのみやっています。
しかし、SaveLoad.Save();と記述してコールするとCrateSaveFileメソッドはコールされないようです。
これではどうやってもdataに値は格納されないと思うのですが、これは上記の元コードが
間違っているのでしょうか?それとも私の解釈が間違っているのでしょうか?

362:名前は開発中のものです。
14/07/08 14:07:46.08 baCtLp31.net
>>348
回転していない原点中心の立方体だったら点がどの面上か判定するのは簡単でしょ
逆に言えば逆行列を掛けてその状態までもっていけばいいんじゃないのかな

力技でいいなら立方体のコリジョンを面ごとに分割してもいけそうな気がする
試してないからうまくいくかは知らん

363:名前は開発中のものです。
14/07/08 16:59:41.35 XshOldtu.net
>>351
見る限りは初回のみCreate、以降はSaveで呼び出すみたい。

364:名前は開発中のものです。
14/07/08 18:29:48.19 ddu7OeuU.net
>>353
確かにその分岐で起動するとエラーメッセージは出なくなりました

この処理ってどう見てもsettingsクラスとconfigクラス内のものだけを
バイナリファイルにセーブする、っていう意味ですよね?

つまり主人公のパラメータだのセーブ時の主人公の位置だの
シーン名だの敵の位置だのイベントフラグだの、それら全部を
settingsかconfigクラスに列挙してdataの対象にする必要がある、という事ですよね?

365:名前は開発中のものです。
14/07/08 18:43:34.20 t1kUpUtT.net
そりゃそうだ。俺が何をセーブしたいか自動で判別してくれる
セーブロードクラスとか怖すぎるだろw
まぁゲームコントローラーで作った独自クラスの中身を
セーブするように改造してもそれほど面倒ではなさろうだけど

366:309
14/07/08 18:45:16.78 4qnhUGqB.net
>>352
私へのレスかな?(違ったらスミマセン)
実はその立方体は絶えず向きを変えながら動きまわってまして。。。

衝突点(RaycastHit.hit)と立方体の原点(RaycastHit.transform.position?)は取れると思うので
どうにか導きたい。
考えてみます。ありがとうございます。

367:名前は開発中のものです。
14/07/08 19:02:51.92 F4NuZqsK.net
>>354
俺もその投稿みたとき「何をセーブするの?」って思ったよw
そのアセットは触ったこと無いけど、
C#はクラスデータをserialize化する機能があるから、それでパックしてるんだろうね
となるとポインタ的な何かが必要で、それが無くてNULLなんじゃね?

368:名前は開発中のものです。
14/07/08 19:33:47.74 ddu7OeuU.net
>>357
単純にdataインスタンスにシリアライズしたsettingsクラスとconfigクラスを
入れるメソッドを経由してなかったからみたいです

これって例えばパラメータとかフラグ管理してるコンテナクラスとか
色んなマネージャークラスや敵クラスとか、ロード時読み出したいクラス全部に
System.Serializable ()]属性付けないといけないって事ですよね?

369:名前は開発中のものです。
14/07/08 19:42:19.15 GK/wakWz.net
>>349
ありがとうございます!
確かにおっしゃる通りで、DefaultAvatarをコピってDefaultAvatarLegacyってのを作って
それをLegacyに設定すると表示されるようになりました、感激です!
ただ
Raw Mocap Dataのうち例えば
Idle/Idle_Neutral_1
Idle/Idle_Neutral_2
など、表示はされるもののTポーズのまま動かない、みたいな状態になるものが多いですね

Idle/IdleR_To_IdleL_1
Idle/IdleR_To_IdleL_2
とかはピボットの位置と大きくずれてたり

でもだいぶ核心に近づいてきました!

370:333
14/07/08 21:23:19.99 baCtLp31.net
>>356
レス番号間違えたけどさっきのは329へのレスね
立方体が動き回っていても位置(position)と回転行列(rotation)が分かれば問題ないはず
衝突点と立方体中心の差分を取って回転行列の逆行列を掛ければ333に書いた状態になる(多分)

371:314
14/07/08 22:38:42.03 A3tN0KUo.net
>>356
難しく考えすぎだと思う
hit.pointはワールド座標ですが


372:transform.InverseTransformPoint(Vector3)でキューブオブジェクトのローカル座標に変換できます 後は(1,0,0),(-1,0,0),(0,1,0),(0,-1,0),(0,0,1),(0,0,-1)との内積を計算して1に最も近いのがヒットした面の法線方向です 立方体なら簡単に分かる問題 void Update () {  if(Input.GetMouseButton (0)) {   Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition);   RaycastHit hit;   if(Physics.Raycast(ray,out hit)) {    var hitPointLocal = transform.InverseTransformPoint(hit.point);    var faces = new Vector3[] {     Vector3.right,     -Vector3.right,     Vector3.up,     -Vector3.up,     Vector3.forward,     -Vector3.forward,    };    var face = faces.OrderBy((c) => Mathf.Abs((1.0f - Vector3.Dot(c,hitPointLocal)))).First();    Debug.Log (face);   }  } } こんな感じでどうでしょうか?(Linq使ってるのでusing System.Linq;を頭に追加してください)



373:名前は開発中のものです。
14/07/08 22:43:57.76 A3tN0KUo.net
あ、すまん。hitPointLocalは正規化したほうがいいかも

374:名前は開発中のものです。
14/07/08 23:47:44.77 GNYY4mLA.net
>>358
自前でやるのが筋。
とか思っちゃうおれはオールドタイプなのか?

ゲームシーンをごっそりセーブするなら、
Save Game-JSON+Binary
っていうアセットはどう?

375:名前は開発中のものです。
14/07/09 00:59:16.29 w8x3TA41.net
>>363
ありがとうございます。
そのアセット知らないので、ちょっと調べてみます

376:名前は開発中のものです。
14/07/09 06:19:09.35 qEp+Q++O.net
Unity2Dでsin cosを使ってオブジェクトを滑らかにカーブ移動させるのに、
参考になるようなサイトはないでしょうか?

377:名前は開発中のものです。
14/07/09 10:09:57.48 kwPBdcPP.net
>>365
普通に使えばええやん
ゲームで滑らかにカーブ移動させたいならスプラインとかエルミート曲線の方が良くないか?と思わないでも無いけど

どんな移動させたいのか具体的に書いてくれれば幾らでも参考サイトや有用Assetやらコードやら示してやれるがこの質問だけだとどもならんよ

378:名前は開発中のものです。
14/07/09 11:28:06.03 CEnQGpTX.net
>>366
アセットを買えばどもなるよ。

379:名前は開発中のものです。
14/07/09 11:32:48.63 kwPBdcPP.net
>>367
今回の質問には私の知っているAssetがあるが、使っても居ない君には示すこともできないだろうwwww

380:名前は開発中のものです。
14/07/09 12:10:31.54 CEnQGpTX.net
>>368
アセットを買わないと知っているから持っているに変わらないよ。

381:名前は開発中のものです。
14/07/09 12:23:24.35 pJQ0Abwo.net
今日のアセット担当は日本語レベルが低いな

382:名前は開発中のものです。
14/07/09 12:29:16.04 UnwO4uOl.net
だいぶあせっとるんだろう

383:名前は開発中のものです。
14/07/09 12:30:02.63 CEnQGpTX.net
>>370
アセットを買えば理解できるようになるよ。

384:名前は開発中のものです。
14/07/09 12:58:05.82 waqeFJ7J.net
必死にレスしてるw

385:名前は開発中のものです。
14/07/09 15:23:38.35 H9+HAVhV.net
天安門事件

386:309
14/07/09 15:44:09.25 bOZmpXlN.net
レス遅くなり申し訳ありません。

>>360
>>361
あ、ローカル座標に変換できるのですか。
確かにそうであれば動き回ろうと関係無い……
お二人はそれ前提で話されてたんですね、難しく考えすぎていました。

コードまで載せてくださってありがとうございます。
実装の参考にさせていただきます。
Linqは知りませんでした。SQLをそのまま書けるイメージでしょうか。
面白そうです。

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

387:名前は開発中のものです。
14/07/09 16:44:41.03 CEnQGpTX.net
>>375
アセットを買えばもう少し人生の余裕が出来るよ。

388:名前は開発中のものです。
14/07/09 17:05:38.35 69aPN37H.net
>>376
アセットおじさん。
彼女ができるアセットを教えてください。

389:名前は開発中のものです。
14/07/09 17:16:02.29 c/2zjphJ.net
アセットおじさん

オレが寝てても妖精さんが勝手にコードを書いてくれるようになるには
具体的にどのアセットを買えばいいのか教えてください。

390:名前は開発中のものです。
14/07/09 17:20:08.47 kwPBdcPP.net
おじさんの弱いところは358の返しに
URLリンク(www.assetstore.unity3d.com)
これを貼らないところかww

391:名前は開発中のものです。
14/07/09 18:00:23.83 K5w5Fazd.net
うにてぃちゃん、えらくすさんだトコ住んでるんやな
誰か可愛い部屋つくったれや

392:名前は開発中のものです。
14/07/09 18:09:35.30 g5+qSqKX.net
>>379
3枚目のSSで、もうほとんど
M字開脚&アヘ顔ダブルピースを喚起

393:名前は開発中のものです。
14/07/09 18:27:00.09 yYdGlLLJ.net
ちょっと待って、>>371がなんか言ってる

394:名前は開発中のものです。
14/07/09 18:41:53.55 69aPN37H.net
>>380
とりあえず、これ置こか?

URLリンク(www.assetstore.unity3d.com)

395:名前は開発中のものです。
14/07/09 19:55:30.85 ly6OeI7iU
マルチレンダしたいのですが、カメラ1つ増やさないと絶対にできないんでしょうか。
カメラのSetTargetBuffersやグラフィックのSetRenderTargetを使ってマルチレンダ自体は
しているのですが、マルチレンダをしたカメラの出力先がレンダテクスチャになってしまうので
仕方なくもう1つのカメラを使って画面に出力結果を出している感じです。
ドローコールが2倍になるのは避けたいです。
あとカメラとグラフィックの2つの関数の違いがわかりません。

396:名前は開発中のものです。
14/07/09 19:33:46.82 CEnQGpTX.net
>>380
アセットを買えば部屋もつくってもらえると思いますよ。

397:名前は開発中のものです。
14/07/09 19:44:59.75 He9lO1nK.net
珍しくアセットおじさんがまともなこと言った

398:名前は開発中のものです。
14/07/09 19:50:35.88 4BHyJEoT.net
作成した飛行系キャラクターに歩くモーションを適用したら
地面に降りて歩くようになってしまったんですけど
これは足のIKとかが関係してるのでしょうか?
どうやったら浮くようになりますか?

399:名前は開発中のものです。
14/07/09 19:56:04.45 X3K0xNpT.net
animatorコンポーネントの
ApplyRootMotionの項目のチェックをはずす。

400:名前は開発中のものです。
14/07/10 03:37:17.91 xx5UL/cu.net
AというオブジェクトのTransform(ポジションとローテーション)を
BというオブジェクトのTransformに近づけていくのに簡潔な書き方ってないでしょうか
下記のように書いたんですが

float x = Mathf.Lerp(A.transform.position.x, B.transform.position.x, t);.
float y = Mathf.Lerp(A.transform.position.y, B.transform.position.y, t);.
float z = Mathf.Lerp(A.transform.position.z, B.transform.position.z, t);.

float rotationX = Mathf.Lerp(A.transform.rotarion.x, B.transform.rotarion.x, t);.
float rotationY = Mathf.Lerp(A.transform.rotarion.y, B.transform.rotarion.y, t);.
float rotationZ = Mathf.Lerp(A.transform.rotarion.z, B.transform.rotarion.z, t);.

A.transform.position=new Vector3(x,y,z);
B.transform.rotation=new Vector3(rotationX,rotationY,rotationZ);

これだとちょっと冗長すぎて、もっと簡潔な書き方があると思えてなりません
どなたかアドバイス願えますでしょうか

401:名前は開発中のものです。
14/07/10 03:40:59.03 xx5UL/cu.net
あ、コードの最終行は

× B.transform.rotation=new Vector3(rotationX,rotationY,rotationZ);
○ A.transform.rotation=new Vector3(rotationX,rotationY,rotationZ);

でした


というか欲を言うと

A.transform += (A.transform-B.transform)*0.1f

みたいに一行で全て済むのが理想ですが、さすがにこれはないですよね…

402:346
14/07/10 05:46:31.66 xAErvCZm.net
>347
レスありがとうございます
2D横シューティングでよくあるような雑魚敵が画面真ん中くらいまで直進した後、
画面内側へ向かってカーブしていく動きを作ろうと思っています

403:名前は開発中のものです。
14/07/10 05:52:23.17 2vomgG9s.net
iTweenを覚えたらいいのに

404:名前は開発中のものです。
14/07/10 07:29:03.59 bIU8XwO6.net
移動中に攻撃したり撃破されたりする処理を書くことを考えたら
自分で移動処理書いたほうがいい気もする

405:名前は開発中のものです。
14/07/10 08:00:45.27 9ExPOmiK.net
>>388
おおっ
そんなに簡単に出来るんですか
ありがとうございました

406:名前は開発中のものです。
14/07/10 09:1


407:4:32.54 ID:eKSeBp7C.net



408:名前は開発中のものです。
14/07/10 09:14:35.97 U1Yt5b0K.net
>>389
positionに対してはVector3.LerpとかVector3.SmoothDampを使えばいい

rotationはQuarternionだからVector3は使えないし、xyzを線形補間してもスムーズに変化しない
Quarternion.SLerpを使おう

409:名前は開発中のものです。
14/07/10 09:17:10.37 /MrudUJp.net
>>391>>392が答えてくれてるけどiTweenってAsset買うか
URLリンク(www.google.co.jp)
をググると良い
Unity上の実コードだと
URLリンク(wiki.unity3d.com)
ここに実サンプルがある

410:名前は開発中のものです。
14/07/10 12:19:31.02 zK1oDZ7N.net
iTweenってタダだろ

411:名前は開発中のものです。
14/07/10 14:31:24.08 YqQyc3Kt.net
>>392,375,376,367
ありがとうございます!
全部参考にさせて頂きます!

412:名前は開発中のものです。
14/07/10 17:44:54.12 1NZl2Q51O
四次元のQuaternionと三次元のVector3が何故掛け算出来るのか理解出来ません

例えばtransform.rotation * Vector3.forwardをすれば
ローカル座標のz軸をワールド座標に変換して出力する。

結果がこうなるもんだと覚えるしかないと思ってます

413:名前は開発中のものです。
14/07/10 20:19:25.24 Ntyozi8+.net
レースゲームを作りたくて移動のキー入力まではしたんですが
キーを離した瞬間物体がビタッと止ります。
車のような制動距離や遠心力を付けるにはここからどうすればいいでしょうか。

void Update () {
if (Input.GetKey (KeyCode.UpArrow)) {
transform.Translate(transform.forward* 1f);
}
if (Input.GetKey (KeyCode.DownArrow)) {
transform.Translate (transform.forward * -1f);
}
if (Input.GetKey (KeyCode.RightArrow)) {
transform.Translate (transform.right * 1f);
}
if (Input.GetKey (KeyCode.LeftArrow)) {
transform.Translate (transform.right * -1f);
}

414:名前は開発中のものです。
14/07/10 20:27:57.36 2vomgG9s.net
Rigidbodyでしょうね

415:名前は開発中のものです。
14/07/10 20:32:16.10 mOHUqZSy.net
>>401
ホイールコライダー使うのもいいかも

416:名前は開発中のものです。
14/07/10 20:41:35.99 KpRwf/VL.net
>>401
アセットを買って使えばいいかも

417:名前は開発中のものです。
14/07/10 21:02:10.49 eKSeBp7C.net
>>401
とりあえずColliderとRigidbodyつけて
if (Input.GetKey (KeyCode.UpArrow)) {
rigidbody.AddForce(transform.forward*0.1f)
}
とかやっていけば多少それっぽくなる。
勿論このままだと無限加速してとんでもないことにはなるし
横滑りも収まらないのでアレだが。

無料のアセット配ってるのでみてみれば?
URLリンク(www.assetstore.unity3d.com)

418:名前は開発中のものです。
14/07/10 21:26:22.26 Ntyozi8+.net
>>402
>>403
>>404
さっそくの返答ありがとうございます。

wheel colliderとRigidbodyをつけてみますスクリプトを書き換えてみます。

419:名前は開発中のものです。
14/07/10 23:24:40.19 ZuKA9b6a.net
>>401のレースゲームみたいなので制動距離つけるには3DにしてFrictionつければいいと思うのだけど、
もしそれをRigitbody2Dで実現するとしたらどうしたらいいと思います?
updateで速度と反対方向にaddForceをかけ続ける感じになるでしょうか。

それならそもそもUnity使うより他の2Dエンジン使ったほうがいい、ってのはあるかもしれませんが…

420:名前は開発中のものです。
14/07/10 23:58:50.73 Z7LGASn7.net
ご存知の方がいたら教えていただきたいです。
Facebook SDK for Unityについて。

FB.AppRequestで送ったリクエストは、
スマホ用Facebookアプリのお知らせエリアに
表示できないんでしょうか?また、何か表示させる方法はありますか?
Webブラウザ版のFacebookでは問題なく確認できました。

421:名前は開発中のものです。
14/07/11 00:33:28.98 numCCkDS.net
>>407
それじゃダメなん?w
そもそも自動車の場合進行方向と横方向では
挙動自体が違う訳で本当にそれっぽくしようと思ったら
そんな単純にはいかんと思う。

422:名前は開発中のものです。
14/07/11 02:22:02.11 z/FG1Lf53
2Dゲーム作っているんですが
SpriteEditorでアトラスの切り出し&中心設定が面倒なんで
テキストデータかなんかから一気にスプライト作れませんか?

423:名前は開発中のものです。
14/07/11 01:45:42.27 RH+BKqCS.net
物理演算が必要なMMOを作ろうとした場合、敵の座標計算や物理演算などをサーバー側でやってもらいたいのですが、unity の物理演算をこなしてくれるサーバーシステムってあるのでしょうか?

可能であれば、Unityでプログラミングしたものをサーバー側(Linux)で画面ナシで動かせるど有り難いのです。

424:名前は開発中のものです。
14/07/11 02:13:53.43 numCCkDS.net
>>411
この辺?
URLリンク(docs-jp.unity3d.com)

425:名前は開発中のものです。
14/07/11 02:18:08.01 numCCkDS.net
特別なサーバーシステムといったものはないと思う。
サーバー的に動くプレイヤーをNoGraphicsで動かすとか?

426:名前は開発中のものです。
14/07/11 02:28:50.92 LjXj+et2.net
>>407
お答えありがとうございます。現在3Dで製作しています。
>>402>>403>>404
までのを参考にSphereColliderとRigidbodyを付けてスクリプトを書き換え
その後、Frictionをいじったらビタ止りはなくなりました。(ブレーキ付けないといけないですね汗)
 現在
void Update () {
if (Input.GetKey (KeyCode.UpArrow)) {
rigidbody.AddForce(transform.forward*=10f);
}
if (Input.GetKey (KeyCode.DownArrow)) {
rigidbody.AddForce (transform.forward*=-10f);
}
if (Input.GetKey (KeyCode.RightArrow)) {
rigidbody.AddForce (transform.right *=10f);
}
if (Input.GetKey (KeyCode.LeftArrow)) {
rigidbody.AddForce (transform.right *=-10f);
}

教えてもらったやつそのままですが(´;ω;`)
>>409
言われてみれば横方向と進行方向ではだいぶ違いましたw
もう少し調べて進行方向どブレーキを追加できるようがんばってみます。

427:371
14/07/11 02:29:14.38 Ndb5x14T.net
>>392 373 377
ありがとうございます

428:名前は開発中のものです。
14/07/11 02:57:51.08 /uldMMue.net
あらら
名前残ってるじゃんw

かっこわりぃorz
特に意味は無いんでお気になさらないでくださいまし。

429:名前は開発中のものです。
14/07/11 06:13:13.30 gotoO2+E.net
物凄く初歩的な質問で申し訳無いんだけど、
playmakerで『扉を1度クリックすると90度だけ開けて、もう一度クリックすると90度閉まる』
みたいな動きって、アクションブラウザのどの機能をどう設定したら出来るのかな
TransformのRotateを使うと90度で止まらずにいつまでもぐるぐる回転し続けてしまって上手くいかない……

430:名前は開発中のものです。
14/07/11 07:46:59.09 h0v6u8eB.net
>>417
そういうときはQuaternion.Lerpを使うといい
使用例はググればすぐに出る
もしくはiTweenを使うか

431:名前は開発中のものです。
14/07/11 10:02:08.17 4wDtwqZb.net
>>417
普通はアセット買って使うと思います

432:名前は開発中のものです。
14/07/11 11:41:34.25 3PaAgeVz.net
unityでゲームアプリ作ってます。
ios版だとロード時間が18秒なのに、
android版だとロードに82秒もかかります。
android版は何か特別な設定がいるのでしょうか?
ちなみに、テスト機種はiphone4sとnexus7(2012)です。

433:名前は開発中のものです。
14/07/11 12:35:10.29 IsWzNpN0.net
多分Texture周りじゃないかなぁ
減らしてみるといいかも

434:名前は開発中のものです。
14/07/11 12:53:38.30 3PaAgeVz.net
>>421
テクスチャ周りが原因だとすると
ios版もロード時間がかかるのではないでしょうか?
あるいはandroidはテクスチャの数や大きさに極端に弱いのでしょうか?

元々はios版でもロード時間が50秒ほどかかってましたので、
ドローコール対策も含め、テクスチャの


435:圧縮、サイズ減少、 数そのものを減らすなどの対策はして、現在のロード時間に 持っていきました。 この状態でandroid版も作れば問題ないだろうと思ってましたが、 まさかのロード時間4倍強に驚き、今回質問させて頂きました。



436:名前は開発中のものです。
14/07/11 13:16:41.05 IsWzNpN0.net
apk内にandroid非対応な画像形式でもってると、
起動するときに再圧縮したような記憶があるよ

調べもしないでてきとーなこといってっけどなw

これが原因かどうかはETC圧縮を始めから持ってるとかでやるといいと思う。

437:名前は開発中のものです。
14/07/11 14:02:32.00 peacAnX5.net
>>422
アセット買って使うと早いと思いますよ

438:名前は開発中のものです。
14/07/11 14:32:43.51 3PaAgeVz.net
>>423
起動時に再圧縮していれば
android版だけロード時間遅いのも納得できますね。

ちなみに自作のテクスチャは全てPNG形式で、
Unity上で各画像に対して「Override for Android」に
チェックを入れ、アルファ無し画像に関しては
「RGB Compressed ETC 4 bits」を、アルファ有り画像は
「Compressed」を選択するようにしています。

ただ、アセットストアで購入したものも多数あり、
それらの圧縮が漏れてる可能性もあるので、
もう少し調べてみます。


>>423
ロード時間を短くするようなアセットがあるのでしょうか?
少し調べてみましたが、それらしいのが見つけられませんでした。
よろしければ、お勧めのアセットを教えて頂けますでしょうか。

439:名前は開発中のものです。
14/07/11 17:22:11.52 /EkrBbsZO
>>417
iTweenで行けた!ありがとう!

440:名前は開発中のものです。
14/07/11 17:47:16.34 gotoO2+E.net
>>418
iTweenで行けた!ありがとう!

441:名前は開発中のものです。
14/07/11 19:08:07.87 F1C1ztkp.net
質問良いですか?
c#でVector3の配列を作ってインスペクタで入力したいのですがどう宣言したらいいですかね?
public Vector3[] hairetu=○○○○;
ググり方が悪いのかこの○○○○の部分をどう宣言したらいいのかわかりません

442:名前は開発中のものです。
14/07/11 19:17:46.48 F1C1ztkp.net
今は一個一個Vector3を作ってStart()関数内でVector3[]の配列に移動させるという
やり方でちゃんと動いているのですがどうみてもこれは違うだろと思い質問しました

443:名前は開発中のものです。
14/07/11 19:24:58.03 vZ0nnfC1.net
単純に
public Vector3[] hairetu;
ではあかんの?

444:名前は開発中のものです。
14/07/11 19:29:01.28 F1C1ztkp.net
>>430
おおおぉ
出来たようです!
サイズの指定なしでは配列の宣言なんて無理だと思い込んでました
インスペクタでサイズの指定も出来ます
どうもありがとうございます
こんなシンプルで良かったんですね~

445:名前は開発中のものです。
14/07/11 19:36:54.95 DF7rDM9S.net
最初からサイズまで指定したければ
public Vector3[] test = new Vector3[10];
とか書く方法もある。

446:名前は開発中のものです。
14/07/11 19:55:37.74 rjhmR5tU.net
なぜVector系はnewでインスタンス化する必要があるのか
その理屈が分かりません。なぜですか?

447:名前は開発中のものです。
14/07/11 20:10:53.00 rq/v5QCI.net
>>433
ポールがそう作ってしまったから

448:名前は開発中のものです。
14/07/11 20:18:50.89 DF7rDM9S.net
むしろその質問の意味がわからんw
Classである以上コンストラクターを呼び出して
インスタンスを生成するってのはそういうるーるなんじゃねぇのかw

449:名前は開発中のものです。
14/07/11 20:50:32.36 Bika1xz9.net
Unityからプログラミング始めた人はクラスとかわからないし、
UpdateとかStartがどのプログラミング言語にもあると思い込んでると思うんだ。

ちなみに揚げ足取るわけじゃないけどVector3はクラスではなく構造体なんだ。

450:名前は開発中のものです。
14/07/11 20:59:52.23 DF7rDM9S.net
メソッドもったり演算子オーバーロードしてるのに構造体なわけねぇだろw

451:名前は開発中のものです。
14/07/11 21:32:16.05 GhL2obWA.net
>>436
C#の構造体って値固定じゃ無かったっけ?

452:名前は開発中のものです。
14/07/11 21:57:41.37 DF7rDM9S.net
って宣言見てみたら構造体やった…。すまんかった。
てかC#の構造体って殆どクラスと同じなんや…。
今までC系の構造体と同じものとしてしか使ってなかったわ…。

453:名前は開発中のものです。
14/07/11 22:03:51.64 /zzya8j3.net
>>439
C#の構造体はローカルに宣言されているとnewで生成してもヒープじゃなくスタックに生成してくれる優れものと思っておくとちょっと得するかもしれない。

454:名前は開発中のものです。
14/07/11 22:12:31.53 3PaAgeVz.net
js使ってるけどVector3の宣言にnew付けたことない・・・付けるべきなんだろうか

455:名前は開発中のものです。
14/07/11 22:24:56.15 4wDtwqZb.net
>>441
アセットを買ったら付けなくてもいいと思いますよ

456:名前は開発中のものです。
14/07/11 22:30:56.72 hZitemvU.net
逆に付けても構文エラーになるんじゃないのかJSだと

457:名前は開発中のものです。
14/07/11 22:43:28.10 rjhmR5tU.net
>>435
クラスだったんですね、なら当然ですよね・・・
すみませんクラスという事を知りませんでした

458:名前は開発中のものです。
14/07/12 00:02:19.44 NpK5hahF6
SKETCHUP使ってモデル作ってるんだけど
サイコロとかプレステ1のゲームみたいな建物なら普通にインポート出来るんだけど、
ちょっとポリゴン数増やすと(と言っても、1100エッジ、490ポリゴン程度)
テクスチャが表示されなかったり表示されてもむちゃくちゃナナメってたりするんだよね。
同様のトラブル事例があるなら、解決方とか教えて貰えると嬉しいので、よろしくお願いします。

ちなみに手順としては「SKETCHUPでモデリング+テクスチャ貼り付け」→「daeでエクスポート」→
「AutodeskのFBXConverterでfbxに変換」→「Assets→Import New Assetで取り込み」
って感じにやってる。

Assetの中のMaterialフォルダにも、テクスチャはちゃんと入ってるし、
テクスチャ張ったオブジェクトのInspector見ても正しく指定されてる感じなんだけど。

SKETCHUPはVer8。Unityは最新バージョンです。

459:389
14/07/12 01:01:23.55 dGHiydMC.net
>>412-391
なるほど、というわけでCentOS6.5 64bit上で
「-batchmode -nographics」オプションで実行してみました。

-----------------------------
"-batchmode" command line argument is only available when publishing using Unity Pro.
-----------------------------

オーマイガッ!!Proじゃないとダメなのかよ!!
と、絶望に暮れたものの、
Pro版の30日間試用アクティベートを実行していなかったことを思い出しガッツポーズ。

今週末にPro試用版で試してみます。

460:名前は開発中のものです。
14/07/12 09:41:02.80 MznMnlQW.net
>>436の補足
//【C#構造体の挙動】
var vec1 = new Vector3( 1, 2, 3 );
var vec2 = vec1;

vec2.x = 10;
vec2.y = 20;
vec2.z = 30;

Debug.Log( vec1 );
Debug.Log( vec2 );

//////////////////
//上のvec1とvec2は違う値になる。
//vec2 = vec1で行われたのはコピー(値渡し)なので、
//Vector3が構造体なのがわかる。
//////////////////

461:名前は開発中のものです。
14/07/12 09:42:35.91 MznMnlQW.net
>>436の補足2
//【C#クラスの挙動】
var transform1 = gameObject.transform;
transform1.position = new Vector3( 1, 2, 3 );

var transform2 = transform1;
transform2.position = new Vector3( 10, 20, 30 );

Debug.Log( transform1.position );
Debug.Log( transform2.position );

//////////////////
//上のtransform1とtransform2は同じ値になる。
//transform2 = transform1で行われたのは共有(参照渡し)なので、
//Transformがクラスなのがわかる。
//////////////////

462:名前は開発中のものです。
14/07/12 11:50:59.39 tHzLBeeu.net
c#講座ワロタ

言語の質問するレベルで
unityさわってどーすんだ

463:名前は開発中のものです。
14/07/12 11:53:24.90 MznMnlQW.net
プログラム書けなくてもゲームが作れるのがUnityのウリでもあると思うの。
Unityからプログラム始めると変な癖がめちゃくちゃ付いちゃう気もするけど、それはもう副作用だと思うの。
あ、アセット買えばプログラミングしなくて良いかも(おじさんに便乗)

464:名前は開発中のものです。
14/07/12 13:01:53.29 VhoejcNi.net
>c#講座ワロタ
>言語の質問するレベルで
>unityさわってどーすんだ

むしろ、完全にゲーム制作素人でこれからunity始めようという人なら
そういう人って多いと思うけどなー

visualStudio環境と違ってunityは構文チェックがリアルタイムでインスペクタで値が視認できるから
むしろunityでC#勉強する方が良いと思う時がある

便利なものはガンガン使って先人の技術者に追いつくのが若者の義務だろ

465:名前は開発中のものです。
14/07/12 13:05:21.70 VhoejcNi.net
>プログラム書けなくてもゲームが作れるのがUnityのウリでもあると思うの。

ちなみにそれ幻想だから
無理っすよ

466:名前は開発中のものです。
14/07/12 13:19:07.16 E2/tpFdC.net
新しい開発環境に移行する時には
持ち越せるものなんて一部なんだから
考えるだけ無駄
プログラムを仕事にして
モリモリ飯を食いたいならC++覚えときなさいよとしかいえない

467:名前は開発中のものです。
14/07/12 13:34:11.84 WzHyMOXs.net
>>450
COBOLじゃだめなん?(´・ω・`)

468:名前は開発中のものです。
14/07/12 13:35:34.80 CD50KUS/.net
>>448
C#スレだとvar使うなカスって言われるけど
unity的には使っていいの?

469:名前は開発中のものです。
14/07/12 13:43:21.82 ICQ1CTK2.net
ちょっとど忘れしたんだけどいいですか
FBXをインポートしたところにあるanimationのタブのことなんですけど
前までそこにwrap modeを選択する項目があったと思うんですけど無くなったんでしょうか?
バージョンは4.5です
一体どこでwrap modeの設定をしたらいいんですかね?

470:名前は開発中のものです。
14/07/12 14:00:26.19 VhoejcNi.net
>>455

void Start ()
{
var unity的には使っていいの = false;
if (unity的には使っていいの) {
print ("知るかボケ");
} else {
print ("使えるものは親でも使え");
}
}


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