トップページgamedev
1001コメント361KB

【3Dゲームエンジン】Unity 7

■ このスレッドは過去ログ倉庫に格納されています
0001名前は開発中のものです。2011/12/20(火) 03:42:43.52ID:PZuN57ft
3Dゲームエンジン「Unity」のスレです。

公式サイト(英語)
ttp://unity3d.com/unity/

JavaScript、C#といった汎用言語を使用できるのが特徴です。
個人向けバージョンは商用含め完全に無償です

wiki
ttp://www24.atwiki.jp/unity2ch/

前スレ
【3Dゲームエンジン】Unity 6
http://toro.2ch.net/test/read.cgi/gamedev/1322167021/
0707名前は開発中のものです。2012/01/17(火) 12:59:10.32ID:t4w82ltl
ゾンビゲーがそれだろ。
0708名前は開発中のものです。2012/01/17(火) 13:01:22.71ID:Trei4Oc+
>>706
ごめんなさい
ホント勘弁してください
そういうのは
0709名前は開発中のものです。2012/01/17(火) 13:21:33.61ID:qnMLnE8d
skyrimのモバイル版作って
寝転がってskyrimしたいから
0710名前は開発中のものです。2012/01/17(火) 13:53:53.28ID:rAKLcsR9
>>706 みたいなのは韓国でしか流行らないよ。
0711名前は開発中のものです。2012/01/17(火) 14:25:37.40ID:OpEWgune
3.5の正式ばんていつになるんだろ?
0712名前は開発中のものです。2012/01/17(火) 15:16:32.59ID:t4w82ltl
正式ぱんてぃにみえた
0713名前は開発中のものです。2012/01/17(火) 17:03:35.38ID:ZnzDmk7B
ヲタク大国の日本らしく、
正式ぱんてぃプロジェクトを立ち上げるんだ
0714名前は開発中のものです。2012/01/17(火) 18:06:03.01ID:KnsQ2VQU
ギャルガンとかそういうやつか
撃つと服が脱げるFPS
0715名前は開発中のものです。2012/01/17(火) 18:28:34.18ID:OpEWgune
windows版のMonoDevelopでUnityのDLLのデバッグをしたいんだけれども、
どうも上手くいきません。

Assetに収めているのでUnityの再生で動作はするのですが、
MonoDevelopでブレークを張ると、
UnityのAsset内にあるブレークポイントは正しくとまるんですが、
ステップ実行していきDLL側に入ろうとすると緑色になって内部に入っていけません。

上手くデバッグできている方いますか?
0716名前は開発中のものです。2012/01/17(火) 20:15:44.56ID:2Ydiowgh
1つ疑問なんだけどBlenderで作ったモデルをFBXでエクスポートしてUnityにインポートする時に
Generate CollidersをONにしてもスキンメッシュアニメーションが付いたモデルだとコライダーを作ってくれない気がする
こういう場合自分でBoxとかCupsule型のコライダーをセットするしかないの?
それともメッシュコライダーを自動で作る方法がある?


0717名前は開発中のものです。2012/01/17(火) 22:25:50.43ID:t4w82ltl
再生中のアニメーションのフレーム数を取得するのにいい関数あるかな?クリップの総フレーム数じゃなくて何フレーム目かを知りたいんだ。
0718名前は開発中のものです。2012/01/18(水) 00:05:57.03ID:YknLDbua
おお 良いスレ発見! 
今unity勉強してて分からないことあるので質問させてもらいます。

質問の内容
Prefabで大量生産したcube(クローン)の最大の高さを調べたい。
今現在Instantiateでcubeを複製して積み木のように積み上げていくゲームを作っています。
図で説明しますと



      ■←※この高さを調べたい
     ■■
    ■■■
   ■■■■
---------------------------
このような感じですね。
■はPrefabで大量生産したcubeです。

で このcubeの今現在cubeが生成されている中で最大の高さにあるcube Yを調べたいのですがうまくいきません。

誰かアドバイスお願いします

0719名前は開発中のものです。2012/01/18(水) 00:24:35.01ID:gEc8yIzE
1. instantiateの戻り値を全部取っておいて後で最大値を求める
2. 上の方から判定調べて一番最初に当たったcollisionのgameobjectを取得
0720名前は開発中のものです。2012/01/18(水) 00:35:56.64ID:PCgexi41
>>718
崩れたとき以外は一番最後に置いたのがもっとも高い可能性をもっているってことなら
崩れたときだけ全スキャンして、それ以外は置いた時にチェックして最高値をinstance自体から求めればよくない?

勘違いしてたらゴメンね
0721名前は開発中のものです。2012/01/18(水) 00:40:25.46ID:YknLDbua
>>719
>>720

ありがとうございます 試してみます 出来なかったら改めで質問します
0722名前は開発中のものです。2012/01/18(水) 00:40:30.41ID:A2PxLQTG
>>699
それは、つまり一つのクラスというか、一つのScriptでAIもPlayerも操作するということですか?
jsの名前こそ、PlayerControllerですが、多分今やってることと同じなんですが・・・
このスクリプトの長さが尋常じゃないんで、ちょっと整理したかったんです

>>700
同時に操作するかもしれないし、しないかもしれないです
0723名前は開発中のものです。2012/01/18(水) 00:40:36.86ID:YknLDbua
>>719
>>720

ありがとうございます 試してみます 出来なかったら改めで質問します
0724名前は開発中のものです。2012/01/18(水) 01:58:57.71ID:YknLDbua
>>718
すいません
>>719
>>720
さん やってみたんですがいまいち分かりませんでした
今現在のプログラム載せるので説明お願いします
ちなみに今現在のプログラムはクリックした位置にキューブを出現させ落とす作業です
--------------------------------------------

//プレハブ収納
var cube : Transform;

function Update () {

//クリックすると
if (Input.GetButtonDown ("Fire1")) {

//ワールド座標
var screenSpace = Camera.main.WorldToScreenPoint(transform.position);
//クリックした座標取得
var downPos:Vector3 = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z);
var curPosition:Vector3 = Camera.main.ScreenToWorldPoint(downPos);

//Debug.Log(curPosition); // 正しい座標が取れる

//マウス座標をプリセットに代入
transform.position = curPosition;
//複製
Instantiate(cube, transform.position, transform.rotation);
}
}
0725名前は開発中のものです。2012/01/18(水) 02:41:03.21ID:x1uBG00Z
コピー元のプレハブにタグを付けておくと、任意のタイミングで、
同じタグの付いたオブジェをリスト化して、比較することができるよ、

663で同じような事やってるから見てみて
0726名前は開発中のものです。2012/01/18(水) 08:54:24.10ID:juQpxdOh
>>724
>今現在のプログラム載せるので説明お願いします

それ、クリックした位置にインスタンス生成するテンプレのような処理しか書かれてない
から、ここに貼る意味まったく無いと思うが。 あと、わからない時は、どこがわからないのか書くといいよ
今ぶっちゃけ、丸投げになってる

>>725 も言ってるが、>>663 が参考になるよなきっと
0727名前は開発中のものです。2012/01/18(水) 09:10:54.99ID:0buvljqx
>>724
1時間後に再質問て、せめて1週間くらい調べて考えろよww
丸投げと言われても仕方ない
0728名前は開発中のものです。2012/01/18(水) 09:20:24.52ID:KkaV1aOv
タグ付けてオブジェクトのリスト取得してループで回して最大座標算出するだけだろ?
0729名前は開発中のものです。2012/01/18(水) 09:29:00.79ID:OjFpVJId
阿鼻叫喚だな。
0730名前は開発中のものです。2012/01/18(水) 09:33:44.79ID:OiVqvAa4
ようは全部のCubeが参照できればいいので
1. タグつけて回収する
2. Instanciateした戻り値のGameObjectを保存しておく
3. 親GameObjectの下にInstanciateして子GmaeObjectとして回収する
方法はいくらでもある

0731名前は開発中のものです。2012/01/18(水) 09:37:10.06ID:OiVqvAa4
FBXでモデルをインポートしてスクリプト貼り付けるとPrefabのリンクが切れるのが地味に不便。
対策としてはスクリプトが詰まったGameObjectの下に子GameObjectとして置く、
でいいのかな? いまいちUnityのセオリーがわからん
0732名前は開発中のものです。2012/01/18(水) 09:53:38.89ID:2jOCt1+f
基本的な事はココで質問するより自分で調べた方が良いと思う。
ぶちゃけこれから物凄い量の情報を掌握しないといけなくなるので逐一聞いていたのが馬鹿みたい
と思うよ。
0733名前は開発中のものです。2012/01/18(水) 10:13:40.73ID:gEc8yIzE
>>731
よくわからんがprefabにスクリプト貼り付ければいいんじゃね
0734名前は開発中のものです。2012/01/18(水) 10:33:38.55ID:OiVqvAa4
Prefabにスクリプトは追加できないぞ
0735名前は開発中のものです。2012/01/18(水) 11:06:08.56ID:YknLDbua
なんとか出来ました!

やはりまだ自分未熟ですね・・・
回答してくださった方ありがとうございました!

0736名前は開発中のものです。2012/01/18(水) 11:11:46.30ID:gEc8yIzE
>>734
出来るよ
0737名前は開発中のものです。2012/01/18(水) 11:22:50.99ID:OiVqvAa4
ごめん嘘。できた。
スクリプトを追加できないのはインポートしたFBXモデル(なんて言うのあれ?)。
それをPrefab化すれば追加できる。けどやっぱりそれはメンドクサイので標準アセットのように、
CaracterController(スクリプトは基本ここ)
  |- FBXモデル(モデルはここを差し替え)
  |- Main Camera
  |- Blob Shadow Projector
みたいな構成が個人的には良いと思う。
欠点はanimationとかが子階層にあるのでGetComponentInChildで回収しないといけないこと。
Unity触り始めたばかりでチラシの裏すまん
0738名前は開発中のものです。2012/01/18(水) 11:37:21.49ID:A2PxLQTG
ステージの背景はTerrainで作るのか?

俺、今は移動できる範囲だけTerain作ってんだけど、地平線とかないしリアル感皆無
0739名前は開発中のものです。2012/01/18(水) 11:38:29.11ID:gEc8yIzE
つまり同じスクリプトを持った別モデルのオブジェクトを沢山作りたいの?
すると自分は試したことないけどこれとか参考になるんじゃない
http://unity3d.com/support/resources/example-projects/charactercustomization

或いはモデルのバージョンをアップさせたいだけならプロジェクトフォルダ内の同名ファイルを入れ替えるだけでOK
0740名前は開発中のものです。2012/01/18(水) 11:57:26.76ID:OiVqvAa4
開発中にモデルを適時更新したいだけです
そのチュートリアルはまだチェックしてませんでした
これから調べます。
たぶん>>737の方式で行く

Unity劇的に手間が減らせるけど突っ込んだことを考えだすと
玄関開けたら2分でゲームとまでは行かないね。


0741名前は開発中のものです。2012/01/18(水) 12:30:09.55ID:auS4qUk4
東方みたいな弾幕が作れるアセットってありませんか?
なかなか見つからないのだけど、弾幕とか海外だとあんまり需要ないのかな。
0742名前は開発中のものです。2012/01/18(水) 15:45:11.47ID:OjFpVJId
split animationを"string"ではなくk、intで管理する方法は無いのでしょうか?
0743名前は開発中のものです。2012/01/18(水) 17:15:20.29ID:986y06VI
>>738
RenderSettingのSkyboxMaterial
0744名前は開発中のものです。2012/01/18(水) 17:20:20.29ID:UDkUtOyt
>>742
あれ不思議だよね。なんでString限定なんだろう
文字列決め打ちでスクリプト書くわけにはいかないから
AlimationClipを保存して常にjumpClip.nameみたいな感じで使うマイルールにしている
0745名前は開発中のものです。2012/01/18(水) 17:21:53.17ID:UDkUtOyt
>>738
地平線が見えるゲームなんてねー
基本遠景は板ポリが立っているだけ
空はSkyboxだし

0746名前は開発中のものです。2012/01/18(水) 18:01:13.79ID:OjFpVJId
>>731
>>735
こういうことがよくあるよ。ちょっとしたことで数時間・・・・
0747名前は開発中のものです。2012/01/18(水) 18:04:15.79ID:OjFpVJId
>>638
>欧米人=生まれつき英語ができる

なんでだ。なぜそうなる。
0748名前は開発中のものです。2012/01/18(水) 19:06:09.67ID:UDkUtOyt
あるある。わかってる人ならすぐ出来ることが数日とか
シーンを一旦停止してコンフィグ画面に移行しようと思って数日使ったわ
でもあきらめずにゲームを作ってやる
0749名前は開発中のものです。2012/01/18(水) 21:52:23.44ID:5RX6dknN
>>748
結局どうなった?
シーン遷移
0750名前は開発中のものです。2012/01/18(水) 22:03:22.43ID:OjFpVJId
複数のスクリプトで共通の変数や型ってどこに置いておいたらいいのかな?
0751名前は開発中のものです。2012/01/18(水) 22:17:02.08ID:O3KdN8pb
>>748
お前は確実にイケメン
0752名前は開発中のものです。2012/01/18(水) 22:30:00.91ID:UDkUtOyt
scaleTime=0にしてシーン全体の進行を止める
別シーンとして開発したレベル(GUIのGameObject)をAdditiveLoadで追加
終わったらGUIのGameObjectを削除してscaleTime=1にして再開
これがセオリー。GUIは進行を止めても反応する。
こういう肝心なことを解説してくれよ > Unityではじめるゲームづくり
Save/Loadとかは.Netの機能をそのまま使う

だいたい調査は終わったので2月から本気出す


0753名前は開発中のものです。2012/01/18(水) 23:55:35.41ID:fhKcG6L3
まだまだ寒い
0754名前は開発中のものです。2012/01/19(木) 02:32:34.85ID:Fi1kI6rw
俺のゲームはつまらないんじゃないか、と思ってきた

最初は熱いゲームだと思ってたが、こうマンネリ化してくると、熱も冷めてきた
今となっては、楽しくなるはずだった場面を思い出すことができない
0755名前は開発中のものです。2012/01/19(木) 06:11:18.93ID:TdikwRaa
生成したGameObjectの子オブジェクトってどうやって取得するのでしょうか?
0756名前は開発中のものです。2012/01/19(木) 06:12:11.67ID:Fi1kI6rw
Unityすげーよ!
クラス継承したら、親クラスのメンバーまでInspetorに表示されたよ!
ここまでやってくれるとは思ってなかった
0757名前は開発中のものです。2012/01/19(木) 06:27:40.83ID:TdikwRaa
>>755はC#です
0758名前は開発中のものです。2012/01/19(木) 09:37:23.88ID:uXkl8hIP
unity使って、個人で有料スマホゲーム出した人いるのかな?
0759名前は開発中のものです。2012/01/19(木) 10:28:39.73ID:Gd6xy/+Z
>>755
TransformクラスのgetChildCount(), getChild(string), getChild(index)もしくは
foreach(Transform child in transform)。
すべてTransformクラスが帰ってくるのでGameObjectが欲しい時はさらにchild.gameObject

なぜかgetChild関数はドキュメントに記載されてないんですよね...なんでやねん
あとHierarchyビューで見るとGameObjectが階層構造を持っているのに、
スクリプトではTransformコンポーネントが持っているというのが意味不明。
このへん内部実装の不味さが透けて見えて面白い。。。。
0760名前は開発中のものです。2012/01/19(木) 11:37:59.59ID:uyMsy6zi
getChildの引数は何指定すればいいの?タグ?
0761名前は開発中のものです。2012/01/19(木) 11:44:15.66ID:Gd6xy/+Z
stringの事を言っているのなら使ったことがないので知らん
GameObjectの名前かタグだろう
0762名前は開発中のものです。2012/01/19(木) 12:09:30.12ID:sNbstNTS
オライリーのUnity本が電子化してるよ。
値段も実本より1000円ぐらい安かったと思う。
0763名前は開発中のものです。2012/01/19(木) 12:11:11.46ID:Ayt7yW8D
>>759
横からだけどものすごく助かった
そうか、なんとなく予感はしてたけど、やっぱりリファレンス不備があるのか…
thx
0764名前は開発中のものです。2012/01/19(木) 12:31:28.92ID:6FLu4Qkn
オライリーって2月に安売りするんだっけ?
0765名前は開発中のものです。2012/01/19(木) 13:05:41.03ID:0AxQpD2t
Unity勉強してもどうせネタはないんだろ。これ作れって

ttp://gigazine.net/news/20120119-assassin-of-the-mushroom-mountain/

0766名前は開発中のものです。2012/01/19(木) 15:47:28.99ID:MH/yecKO
Unity の ShaderLab 経由で Cg を調べてて、リファレンス本買ってこようかと思ったが、
さしあたり 日本語版PDFみつけたので貼り。古いけど。全300ページ
ftp://download.nvidia.com/developer/cg/Cg_Users_Manual_JP.pdf
0767名前は開発中のものです。2012/01/19(木) 15:51:59.04ID:Gd6xy/+Z
今時Cgなんて何に使うんだ?
0768名前は開発中のものです。2012/01/19(木) 16:03:38.22ID:eR8yo7zz
>>767
たぶん君の程度では使わなくていい
0769名前は開発中のものです。2012/01/19(木) 16:19:45.86ID:qMI+ZH7R
>>768
君の程度ではそれくらいの発想しかないんだな
0770名前は開発中のものです。2012/01/19(木) 16:27:48.03ID:MH/yecKO
>>767-769
お前ら、何を思ってそのレスを書いたか、もっとはっきりしやがって下さい

Cgダメなら、HLSLベースにしろと? 個人的には OpenGL(ES) 派なんだけど、Cg 面白いなぁと思って最近いじってる
0771日系アメリカ人2012/01/19(木) 17:02:24.10ID:Kh5wvxfu
お前らさあ本当にゴミだね
まじつまんねーから
そんなゲーム誰もやらないよ お前らが作ったゲーム
85円とかで売っててもゴミくせえ
バカ?お前らそういう「ゲーム作りたい!」とかいってるなら
大手会社行けば良いじゃん バカだな お前らクズだな
Unity(笑) まじつまんねごみみてえなカスども カスくさっ

凄いやつは昔からOpenGLとかそういうの使ってプログラムバリバリ書いてんだよ
ゲーム開発ゆとりのお前ら Unity 「プログラミングは不要になるなあw」とかほざいてるゴミに何が出金だよゴミ
おい
ゴミだな欧米以下のゴミゲー つくらなくていいよ
やちまえ

作っても既に出てるゲーム以下w
0772名前は開発中のものです。2012/01/19(木) 17:04:11.83ID:6FLu4Qkn
お前らの言ってることは理解できん。
いいシェーダーが出来たら売ってください。お願いします。
0773名前は開発中のものです。2012/01/19(木) 17:06:46.52ID:2/tFr+2G
言語覚えなくったって、シェーダーツリーで間に合うだろ。
0774名前は開発中のものです。2012/01/19(木) 17:13:16.94ID:eR8yo7zz
>>770
ttp://unity3d.com/support/documentation/Manual/ShaderTut1.html
どっちも使えるってよ。ほんとマニュアル読まないんだなぁ
0775名前は開発中のものです。2012/01/19(木) 17:16:39.66ID:GysxupSo
>>774
それを知らないって誰か言ったか?
0776名前は開発中のものです。2012/01/19(木) 17:29:10.77ID:MH/yecKO
>>774
いや使えるのは知ってるし、読んでるよ。てか、そんな話はどうでもよくて、
上にも書いてるが、俺は単にCgに興味があって、本買おうかと思ってる中、リファレンス見つけたから貼っただけさ

そしたら、「今時それを何に使うのか」 と聞かれたから、CgでないならHLSLにしろと?と返事した
つまり、何故そのレスがついたのかと思って、「何を思ってレスしたのか」 と聞いた。 それだけの話

>>773
言語に用があるんだよ俺は
0777名前は開発中のものです。2012/01/19(木) 17:41:25.78ID:hZ0I/NSm
CgってRadeonやIntelオンボとの互換性大丈夫なの?
0778名前は開発中のものです。2012/01/19(木) 18:09:46.58ID:MH/yecKO
>>777
ね、そこだよね。正直その辺の事情こそ、まさにシラネ
調べないとワカンネ
0779名前は開発中のものです。2012/01/19(木) 18:20:46.77ID:ZQOsQdVy
>>762
電子書籍て何で呼んでます? iPadとか?
0780名前は開発中のものです。2012/01/19(木) 19:31:46.03ID:6FLu4Qkn
パーティクルいじるとすぐ止まるなー。パワー不足ではないようだが。
0781名前は開発中のものです。2012/01/19(木) 20:24:50.72ID:9aFQ835Y
cameraに映っているGameObjectを一括で取得する方法はありますか?
0782名前は開発中のものです。2012/01/19(木) 23:50:47.79ID:Fi1kI6rw
UnityのGrassってゴミじゃね?
岩とか地面とかはテクスチャでリアル感だせるけど、どうして草だけチンゲみたいなんだ?

不自然極まりないわ
まだ、全部Bushとかで埋めた方がましだわな
0783名前は開発中のものです。2012/01/20(金) 00:04:52.91ID:NAJB7xFq
デフォで入ってるgrassはゴミもいいとこだね
仕組み自体は他のPCゲーと同じなので自前で用意すれば大分良くなる
0784名前は開発中のものです。2012/01/20(金) 00:09:58.17ID:ut7Nriyc
>>759
もうしわけありません
使い方がわからないのですが
Transformクラスはtransformクラスとは違うものなのでしょうか?

イメージでは

GameObject tmobj = (GameObject)GameObject.Instantiate(tamaOri);

GameObject tmani = tmobj.Transform.getChild("tama").child.getObject;
tmani.animation.Play("rot");

こんな感じでいけると思ったのですが・・・
0785名前は開発中のものです。2012/01/20(金) 00:26:57.77ID:ut7Nriyc
あ、こんな感じでいけました

GameObject tmobj = (GameObject)GameObject.Instantiate(tamaOri);

GameObject tmani = tmobj.transform.FindChild("tamapos/tama").gameObject;

tmani.animation.Play("rot");

FindChildってやっても全部を拾ってくれるわけじゃなくて
階層が複数あるときはちゃんと記述しないとダメということでした

ありがとうございました
0786名前は開発中のものです。2012/01/20(金) 00:34:48.79ID:7bXmoleY
>>784
>Transformクラスはtransformクラスとは違うものなのでしょうか?
Transform はクラスだけど、GameObjectの transform は、クラスじゃなくてメンバ
なので、>>759 にある通り、

GameObject obj; // と、した場合、
for(int i=0; i<obj.transform.getChildCount(); ++i) {
 Transform tr = obj.transform.getChild(i); // これで、Transform クラスのインスタンスが戻るから、
 GameObject 子のゲームオブジェクト = tr.gameObject;
}
って事。 イテレータブルなようなので >>759 にある通り、勿論 foreach で取得した方がスマートだが



0787名前は開発中のものです。2012/01/20(金) 00:35:17.50ID:7bXmoleY
リロってなかった orz
0788名前は開発中のものです。2012/01/20(金) 01:59:31.73ID:n0jxG2+w
関数の利用

それは、大量の汚いコード一行に簡易化し、複雑な処理させているという事実を
隠蔽しようとするための、自己嫌悪の緩和を目的とした悲しき手法にすぎなかった
0789名前は開発中のものです。2012/01/20(金) 02:22:50.22ID:rJVnXUra
大手のゲームは手間かかってるなあ。
個人ではちょっと無理がある。
0790名前は開発中のものです。2012/01/20(金) 02:25:25.13ID:7bXmoleY
>>788
おい
0791名前は開発中のものです。2012/01/20(金) 02:41:05.47ID:Mxs7pFNj
>>788
あるあるw
一度しか使わないような変数や関数までやれクラスだのゲッターセッターだのついつい作ってしまうw
0792名前は開発中のものです。2012/01/20(金) 02:57:29.41ID:rJVnXUra
やる事が多すぎる。
全部やってたら十年かかる。
0793名前は開発中のものです。2012/01/20(金) 07:54:40.73ID:zb5MO8he
iOS 向けに作成したアプリを実機に転送してテストプレイして見たら、
一度描画したモノが残り続けてしまい、消えないモーションブラーみたいになってしなうのですが、
何かしらの設定が必要でしょうか?
別のシーンをロードしても、前のシーンで描画したラベルとかでさえ残ってしまいます…

0794名前は開発中のものです。2012/01/20(金) 09:25:32.49ID:7WHauiix
>>789
俺は超大作を考えなければ1人でフリーソフトだけ使って作れそうと思った
というかまじで作るわ。今どういうゲームにするか考え中
0795名前は開発中のものです。2012/01/20(金) 09:36:58.06ID:La3ZnR8G
考えるだけなら誰にでもできる
0796名前は開発中のものです。2012/01/20(金) 10:39:59.86ID:Z2eddOft
3Dキャラ移動システムをつくり、現在更にカメラ視点変更を入れようと思うのですが
カメラを回したとき、キー操作もカメラの向きに合わせる方法がわかりません

function Update () {
var controller : CharacterController = GetComponent(CharacterController);


if(Input.GetKey(KeyCode.Z)) {
this.animation.CrossFade("attack", 0.1);
}

if(controller.isGrounded && !this.animation.IsPlaying("attack")) {
velocity = Vector3(Input.GetAxis("Horizontal"), 0, Input.GetAxis("Vertical"));
velocity *= walkSpeed;
if(velocity.magnitude > 0.5) {
transform.LookAt(transform.position + velocity);
this.animation.CrossFade("run",0.1);
}
else {
this.animation.CrossFade("idle",0.1);
}
}

velocity.y -= gravity * Time.deltaTime;
controller.Move(velocity * Time.deltaTime);
}

どの様にすれば、プレイヤーキャラの移動方向を
カメラに合わせられるでしょうか?
0797名前は開発中のものです。2012/01/20(金) 11:18:55.87ID:7WHauiix
根本的にまずい方法で実装しようとしている(不可能ではないが)
カメラはプレイヤーの子オブジェクトして置く。これで何もしなくても常にプレイヤーとカメラが同じ方向を向く。
素直な実装ではキャラクターはローカル座標で常に+Z方向を向いている。
ワールド座標系での移動方向はtransofrm.TransformDirection(Vector.forward)
標準アセットのCharactoer Controllerに「First Person Controller」と「3rd Person Contoller」があるので
それをインポートして触ってみたほうがいい。そういう実装をしようとしているという事は事前の調査が足りてない。
あとUnity Example Projectにキャラクターが動くだけのプロジェクとがあるから見ておいたほうがいい。
解説なしだけど見ればだいたいわかる。
http://unity3d.com/support/resources/example-projects/



0798名前は開発中のものです。2012/01/20(金) 11:54:54.68ID:x8z+SDZo
>>792
自分にどこまでの技術と知識の経験があって、
どこを目指してるか、
の2点の位置によって、かかる時間の距離は違うのよ
0799名前は開発中のものです。2012/01/20(金) 12:18:14.07ID:oFdqnee1
>>794
考える前に試しにピンボールゲーム作って冠接させるといいぞ
見えてくるものがある
08007972012/01/20(金) 12:48:34.18ID:Z2eddOft
>>798
返答どうもありがとうございます
試しにスクリプト乗っけなおしてみたら、少し想定とは違っていたものの
むしろこっちの方がよさげな動きをしました
元が、黄ウニ本の見下ろし視点だったのがまずかったか……
入門としてはいい本だったのですが

ただ、このままだとスクリプトの中身把握しきってないので
新しく見つけた白ウニ本見ながら、再度勉強しなおしてみます
どうもありがとうございました
0801名前は開発中のものです。2012/01/20(金) 16:37:00.85ID:rJVnXUra
もっと普通にテクスチャアニメーションできないのコレ?
08028002012/01/20(金) 16:44:00.75ID:Z2eddOft
すいません、名前と安価の数値間違えてました
正しくは名前796、安価797氏でした、もうしわけありません
0803名前は開発中のものです。2012/01/20(金) 17:06:29.50ID:WZOjJ9x4
>>801
普通ってなんだよ
普通テクスチャアニメーションて、自分でDirectXやOpenGL使って実装するときは、Indexedな頂点バッファをアサインなどしたあと、
割り当てるTextureを自分で切り替えるか、シフトしてdrawって流れになるから、
その辺隠蔽してる Unityみたいなシステムは、そこにあるものが全てだぞ。その意味で、統一された簡単な仕様なんてない
0804名前は開発中のものです。2012/01/20(金) 17:13:23.00ID:rJVnXUra
>>803
マテリアルの項目にTilingやOffsetがあるんだから、そのそばにTransformをつけてキー打てるようにしてくれればだいぶ違う。
それすらパーティクルやスクリプト経由ってめんどくさすぎだろ。直して欲しいわ。
0805名前は開発中のものです。2012/01/20(金) 17:55:18.74ID:n0jxG2+w
なんか、配列クラスが継承できないんだが・・・
普通のメンバ変数とか、メンバ関数は継承できてるのに

var array = skill[]; (skill[]っていうのは自作クラス)

継承したクラスでこの関数使うと、使えない
エラーが出る。(array index out of rangeとか、object reference not set)

こういう仕様なのか?
0806名前は開発中のものです。2012/01/20(金) 18:00:26.02ID:3gtCRxbs
>>804
まぁやってほしいわな

シェーダーに手を出すと、機種チェックしなきゃいけない範囲が広がるような予感
Unity使う意味が無くなって来る
■ このスレッドは過去ログ倉庫に格納されています