3 :
名前は開発中のものです。:2012/04/20(金) 17:25:31.76 ID:kyHpdsTm
質問する前にちゃんとUnity起動するんだぜ?
4 :
名前は開発中のものです。:2012/04/20(金) 23:55:56.77 ID:7fiPj2LB
いやどす
Unityでビルドしたファイルって、設定で直接入力した情報以外で
アカウント名とか自分のPCの情報とか埋め込まれるでしょうか?
GUISkinを作成後、フォントサイズを設定するも変化しないんだがなんでなんだぜ?
フォントは適用されてるし、Normalでテキスト色の変更もできるし、Paddingで場所の調整も出来る。
ちゃんとGUISkin自体は適用されてるっぽいんだがなぁ・・・・。
↓の警告出るから確認したけど、フォントはちゃんとdynamicになってる。でも警告出るw
Font size and style overrides are only supported for dynamic fonts.
UnityEngine.GUI:Label(Rect, String, GUIStyle)
ScoreKeeper:OnGUI() (at Assets/GameController/ScoreKeeper.cs:65)
dynamic自体がプラットフォームwin,macじゃないと使えない
大元のフォントサイズをいじるしかない
なるほど、Android向けでゲーム作ってるから使えないのか。ありがとー。
・・・ってことは表示するテキストごとにフォント複製してサイズいじる必要あるってことか(´・ω・`)
>>7 ありがとうございます。
じゃあ、匿名でネタゲー出すのは無理っぽいですね。
オンラインのテストプレーで効率いい方法って何かない?
今は毎回ビルドしてエンジンからと実行ファイルの両方から起動してオンラインでの挙動を確認
しているんだけど、これだと少し修正しただけで、またビルドしなおさなきゃならん
QuadUIのsprite2Dを動かす方法知りませんか?
以下の方法で出来ると聞いて試したのですがまったくダメです。
ゲームを実行すると、しばらくして画面からsriteさせたいオブジェクトが消えてしまいます。
作成方法
@QuadUI Editorでclassをspriteに選択
各フレームを指定してBake!ボタンを押す。
A最初から動かしたいので、作ったオブジェクトのInspectorから
sprite2DのplayonAwakeにチェックをつける。
B空のゲームオブジェクトにQuadUI(Main)を追加する。
QuadUI(Main)のCamera欄に使っているカメラを追加する
私の場合QuadUIEditorから追加できる2DCameraを指定した。
すみません自分が原因でした。
画像を作るときにデフォルトでscaleを小さくしようと
QuaUIEditor.csのBakeQuadメソッドに
go.transform.localScale-=new Vector3(0.9f,0.9f,0);
という一文を差し込んだのですが
たしかにデフォルトで縮小できたものの
spriteにするとおかしくなるみたいです。
今までボタンばかり作ってたので気づきませんでした。
違うやり方を考えねば・・・
お騒がせしてすみません。
16 :
名前は開発中のものです。:2012/04/22(日) 21:26:46.42 ID:INpYAm1V
SimCityみたいにオブジェクトの表面にグリッド線のようなもの引く方法、誰か知りません?
しかも盛り上がった山とか流動的な川の地形に沿って綺麗に引くことって無理でしょうかね?
シェーダー作ればいいじゃん
18 :
13:2012/04/22(日) 21:45:50.57 ID:iWP1sjMX
結局デフォルトで小さくする方法がわからなくて
prefabをResourcesフォルダ内に指定して作成
Resourcesからロードしてlocalescaleを変更、
その後にprefabをReplaceしてみました。
この方法ならsriteもちゃんと動くのですがごり押し感半端ない・・・。
もともとマップチップを手作業で何百回も生成するのが面倒で改造しましたが
こんな穴があるとは・・・英語力が欲しいです。
ソースはこんな感じで、BakeQuadメソッドの最後に追加しました。
Vector3 pos = new Vector3(0f,0f,0f);
GameObject hoge = Instantiate(Resources.Load("Prefabs"), pos, Quaternion.identity) as GameObject;
hoge.transform.localScale -= new Vector3(0.9f,0.9f,0);
PrefabUtility.ReplacePrefab(hoge,p);
Editor.DestroyImmediate(hoge,true);
21 :
名前は開発中のものです。:2012/04/23(月) 13:10:25.41 ID:2r/AS9Yr
あげ
Colliderを子に持ってるGameObjectは、子のColliderをまとめて一つのColliderにしてくれる
と思ってたんだけど(ColliderはSimpleCollider)
OnTriggerEnter()使うスクリプトを親のGameObjectに貼り付けてもその親のColliderでしかトリガーされない
全部に貼り付ける以外の方法ない?
一応RigidBodyも親に貼り付けてみたけど効果なかった
自己解決した、すまん
子objectにTriggerありのColliderとなしのColliderが混じってると、Triggerがうまく動作しないらしい
本スレが終わったな
これからはこのスレだけで続けよう
25 :
名前は開発中のものです。:2012/04/23(月) 19:59:40.86 ID:XR1t+PgM
別にその内立てるから気にせんでいいよ
質問スレなのに、本スレよりも質問に答えてくれる人少ないんだけど
2つもいらないから統合しようぜ
29 :
名前は開発中のものです。:2012/04/23(月) 22:18:21.61 ID:JFZbSlGt
本スレにunityの質問なんてあった?
うにてぃ弄った事ないけど
顔差し替えつつ、顔の表面の形を分割した肉片パーツを配置して爆風で吹き飛ばせばそれっぽくなりそう
33 :
名前は開発中のものです。:2012/04/24(火) 11:40:18.44 ID:QPaG4CI6
まだ提案だがUnityに関係ない質問で荒らされそうなのでルールを考えたよ
よかったら修正なり書き加えるなりしてくれ
//このスレに書き込むには次のいずれかの条件を守ってください
//1、Unityを起動して確認あるいは実証、2、Unityリファレンス用語を用いる、3、Unity関連ページのリンクを貼る
今回のルール案の設定基準
解りやすく覚えやすい、違反特定も可能な明確なルールを目指す
質問者はUnityを起動してるという条件を大前提に
回答者はUnity立ち上げて無くてもリファレンス用語を用いて答えることが出来る
ニュースに関連した仕様変更への質問も受け入れる、など
面倒だからやだ
ルールは荒らさない奴のためにあるんであって、
荒らす奴は、それを逆手にとって自治厨として自作自演とかして荒らすから逆効果。
2chに詳しくないなら、余計な俺の考えた凄いルールは出さない方がいい。
作りたいなら止めないけど普通に
「Unityプログラミング」スレで良いだろ
>>33は
あくまで提案であって、今すぐ議論する気は無い
これからみんなの信用を得る回答とともにルールをアピールしていくよ
今Unityでカメラ制御書いてるんだけど
ボタンはInput.GetMouseButtonで取得出来るけどホイール動作って取得できない?
ホイールでカメラの距離変えるために使いたいんだけど
>>38 getAxis系統でできるはず
Edit>>project settings >>input でマウス・スクロールホイールってのがAxesの中にあるから
>>37 いやいらないっす
どこかHPつくってやってください
>>38 一応コレで動いたよ
function Update(){
transform.Translate(Vector3(Input.GetAxis("Mouse ScrollWheel"),0,0));
}
>>32 パーツを差し替える事ってできるの?でもそれって結局アニメーションになっちゃうよね
>>42 SkinnedMeshRendererのsharedMeshで
メッシュの変更なら出来るよ
>>42 Unityを起動してもいないような稚拙な発言はおやめください
公式サイトでも破壊前と破壊後でオブジェクトを入れかえる手法が有効って書いてあった
C#で書いているんだが、クラスをnewでインスタンス化することってできない?
結局staticなメソッドばかりになってJScriptで組んでいるのと変わらない気がするんだけど
>>48 C#、JavaScriptにかかわらず、
System.Objectとか継承したクラスなら普通にインスタンス作れるよ。
>>46 一瞬で変わるほうが楽だよね。徐々に顔が壊れていく演出は中々難しいと思うw
あ、なるほど、継承が足りなかったのか
ありがとう
>>48-49 MonoBehaviorを継承したクラスは自分でnewしたら駄目
その他は好きにしろ。これがUnityのルール
>>52 プラットフォームチュートリアルで見た記憶がある
ドラム缶の破壊前、破壊後だったはず
>>54 そういうの本とかでも解説してくれたら良いのにね
>>51 >>48のレスを見る限り、
>>49のレスも不思議だけど、それに納得するのも不思議だ
継承がどうこうじゃなくて、実装手段に問題あると思う
Unity以前の話だけど
ついつい手続き型っぽく書いてしまう俺の悪口はやめろ
>>60 JavaScriptは無理かも(まったく使わないのでわからん)
Unityで作るとデフォルトで継承するから(全消ししてもいいけど)
VisualStudio上で新しくクラスを追加すればいい
>>61 自分もJavaScriptはほとんどやったことないです。
こういうゲームエンジン使うのも初めてなのでちょっと混乱してます
UnityAPIを使うにはUnityEngineのusingディレクティブとMonoBehaviourの継承が必要で
UnityAPIを使わないなら、普段C#でアプリ開発するみたいにVisualStudioで作成できる認識でいいすか?
>>63 そう。原則全部MonoBehaviorを継承
Unityに関係ないクラスなら別に何で作って何を継承してもOK.
すっきりしました。ありがとうございます。
プログラム書くのに日本語ドキュメントしか読めません、なんて言わないよね?
カメラについて質問なんだけど後ろや横に壁があるとして、カメラがすり抜けちゃうんだけどみんなはそこんとこどうしてる?
カメラにはリジッドボディ利かないんだよね
>>67 親オブジェクトにRigidbodyを付けて、
カメラをその子オブジェクトにする方法もある。
>>67 カメラ位置からraycastして反対方向にraycastがhitした位置に変更する
めんどくさい人は3rdPersonShooterのカメラをパクるといいよ
Unity使うのにUnityAPI使わないで、何かいいことあるの?
>>67 プログラムはあの黄色い本どおりにやれば打ち込めるんじゃね?英語わからなくても
>>70 Unity用のフレームワークを作成して、保守性を上げるため
APIベタ書きで長々と書くより、一行で済ませられる方が楽じゃない?
それにVisualStudioの方がコーディングしやすいしね
だれかAndroid用のPlayerPrefsってどこに保存されてるか知らない?
その気になれば、PCと同じでデータ改ざんとかできちゃうかな
androidもiphoneもroot取られたら、何でもできると思われ。
>>75 System.IOで好きなように保存すればよい
>>77 Androidの仕様で、とあるアプリがファイルを書き出せる先のディレクトリって、パーミッション的に決められてたような
好きな場所に書き出しは出来ないよな当然
80 :
名前は開発中のものです。:2012/04/25(水) 13:18:16.39 ID:gF0wb1xO
グローバル座標のz軸を常に0に固定したいんですがどうやったらできますか?
>>70 Unityに関わらないロジック(AIとか、ネットワーク系の処理とか)は、
UnityAPI使わないでもいいのでは?
継承しないことで、抽象度も上がって汎用的になると思うのですが...
>>80 なんかのオブジェクトの?
どんな状態になるのを回避したいか
もっと具体的に
84 :
名前は開発中のものです。:2012/04/25(水) 13:31:30.99 ID:4TQsIO/O
プレイヤーと絡んでくる場所ではunityAPIつかるざるを得ない
自分が使ってないのは構造体んとこくらい
>>70 の質問は大雑把過ぎて、受け取った人によって全然違う観点の答えが返ってくる可能性
どういう場面について、その質問なのかって話。
すぐ上の
>>69 の話に対して言ってるとしたら、とんちんかんな話
軸固定はコンストレイントでできる。
88 :
名前は開発中のものです。:2012/04/25(水) 15:27:00.08 ID:gF0wb1xO
>>82 ありがとう。このサンプル昔からあったっけ?
iphoneのマルチプレイヤーのサンプルまであるじゃないか。
>>83 いや、もう解決した。単純にz軸に変な値が入って増えていってしまってた。
今度はローカル座標のグローバル位置の制限をしなくてはいけなくなって困ってるw
>>86 >>87 リジッドボディ>フリーズだね。
でもこれ効かなかったわ。
問題ないので毎フレーム指定して補正してるが。
89 :
名前は開発中のものです。:2012/04/25(水) 15:30:38.39 ID:bLg81VCW
∧,_∧ ∧,_∧
(`・ω・´) (`・ω・´)
/ \ ペチチチ / \ ペチチチ
レ'\ γ∩ミ. レ'\ γ∩ミ.
> ⊂:: ::⊃)) > ⊂:: ::⊃))
/ 乂∪彡 / 乂∪彡
デバッグ時に手作業でマップを作成するのは時間が掛かるのでプログラミングコードで生成したいのですが
そういうことはできますか?
もしくは実行時の状態を保存してそれに対して編集できるようにできないものでしょうか?
霧ってどうやって表現すんだ?
プレイヤーの周りに球体作って霧のマテリアルつけりゃいいと思ってたが
なんか違和感がある、自然な感じの霧を出したい
./ / /'  ̄ ̄\i|/ ,/´
~~\ / /ノ / ミ `ヽ~
`r{ / ミ / ,、 ,≡≡, ,,ヽ
`ヽ、{ ミl ヽ,,':-…-〜' ).|
ノ i ,,,,i `'``',三,,,'`~ ヽ、
{ ':': l {: : } , `'~~(~~'} ヽヽ
) :':イ`iヽ: :iヾ:´ 丶 ; | ,, ト:} 逆に考えるんだ
):':':':':|'人 }: :i ,ニ、ヽ, ; |丶ニ .ヽ)
く ':':':':':i.V'人ト ぇ,-Fテ`,/}}}`f士 ,|´,,_
/':':':':':';='ミ\‐-ニ,, ̄-<´{~`ヽ-一ミ,_,';';)
~くミ川f,ヾヽ ヾ~ヾヽトシヽ| }': ,〈八彡'';')
>,;;`` ヽ丿川j i川|; :',7ラ公 ,>了
>>91 To see the Render Settings choose Edit->Render Settings from the menu bar.
Enabling Fog will give a misty haze to your scene.
95 :
名前は開発中のものです。:2012/04/25(水) 18:27:18.02 ID:gF0wb1xO
>>91 unity fog camera light
なんかで検索すると出る。
96 :
名前は開発中のものです。:2012/04/25(水) 18:31:41.41 ID:gF0wb1xO
localposition同士の移動制限とかどうしたらいいんだ?
localpositionのアニメーションを制限したい。ムリ?
97 :
名前は開発中のものです。:2012/04/25(水) 19:45:01.86 ID:y+uq+pUL
Detonator Explosion Frameworkの
Detonatorを使って爆発をさせているんだけど
Detonatorの爆発によって当たった相手の変数(HPとか)を減らすには
どうしたらいいのか分からん・・・
調べていくとパーティクルとCollisionとの衝突を拾うのは
OnParticleCollisionやWorldParticleCollisionとかがそれっぽいんだが
これじゃぁDetonatorの爆発は俺は拾えなかった
Detonatorはパーティクルに含まれないからか・・・?
整理すると やりたいことは
Detonatorの爆発に干渉した相手にSendMessageなどで動作をさせたいんだ
具体的にいうとDetonatorの爆発を間近で受けた敵はダメージを喰らう
っていう事がやりたい
お願いします
>>97 球系のコライダじゃダメか?
パーティクルでないとならない事情があるなしょうがないけど。
____ ) 『 ケツの速さでうんこから光出したらどうなるの?』っと、
/⌒ ⌒\ )
/( ●) (●) \ )/⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y⌒Y丶
/ ::::::⌒(__人__)⌒::::: \
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ カ
| l l||l 从人 l||l l||l 从人 l||l カ タ
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、. タ
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
┌┬┬┐┌┬┬┬┐┌┬┬┬┐┌┬┬┬┐
,. - ''"| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ρ ̄`l
100 :
名前は開発中のものです。:2012/04/25(水) 20:24:58.97 ID:y+uq+pUL
>>98 出来ました ありがとうございます
一応球Collisionもやったつもりだったんですが出来てないまま
飛ばしてたようです
レスされない質問は内容が伝わってない、スクショでも撮って聞き直せよ
103 :
名前は開発中のものです。:2012/04/26(木) 00:42:48.02 ID:oILniGVh
糞っ俺に英語かエスペラント語ができれば苦労しないのに!
105 :
名前は開発中のものです。:2012/04/26(木) 01:32:17.60 ID:Y38l/gTY
度々質問失礼します
色々調べてはいるつもりなのですが、色々試行錯誤してみたものの衝突判定が上手く行きません JavaScriptです
調べたところ衝突判定には相性があるとかでCollider 同士がダメとかRagidBodyが関係あるとかトリガーが関係あるとか...(以下 衝突判定の相性 と呼びます)
衝突する側 SphereCollider-IsTrigger=off 下記の衝突Scriptをつける
衝突された側
その1:タグ=BOX BoxCollider-IsTrigger=off RigidBody-IsKinematic=off
その2:タグ=Enemy SphereCollider-IsTrigger=on RigidBody-IsKinematic=on
Radiusを使って主機が近づくと反応する 探知用Colliderを兼ねた本体です
カプセルの形をした本体のColliderをSphereColliderにして探知用にしてます
その3:タグ=Player RigidBody-IsKinematic=on CharacterController
衝突Scriptの内容
function OnCollisionEnter(collisionInfo : Collision){
if (collisionInfo.gameObject.tag == "Box"){
collisionInfo.gameObject.SendMessage("ApplyDamage");
print("箱");
}
同様にしてEnemy,Playerも記述
}
現状では Boxタグがついているものにはしっかり衝突判定がされます Boxタグをつけている箱のタグをEnemy,Playerに変えると正常に動作するので
問題はここでいう衝突する側と衝突される側の衝突判定の相性(?)が原因だと分かっています
衝突する側・・・爆発イベント
衝突される側・・・ 自機:近くにいると被害 敵:近くにいると死ぬ 箱:ぶっとぶ
”その1”以外の”その2””その3”にも衝突判定をさせるにはどう修正したらいいでしょうか
わかりにくい点がありましたらレスします
長文失礼しました よろしくお願いします
106 :
名前は開発中のものです。:2012/04/26(木) 03:25:18.23 ID:9CZ03IBI
animation.clip.length
と
animatio.state.length
の違いってわかります?
同じ値が出るんですけど。
>>105 敵が地雷踏むゲーム?
衝突する側にもRigidbodyを(Playerの判定させるために)
あと、
>同様にしてEnemy,Playerも記述
が気になった。
Enemyはトリガーが付いてるからOnCollisionEnterじゃなくてOnTriggerEnterでは?
>>106 対象のanimationが同じなら、むしろ同じじゃないの?
片方ReadOnlyだとは思うが、立場が違うオブジェクトだし
>>90 デバッグ時にマップを手作業で作成する、って言う状況がよくわからない
それを保存しておく、も。 もしかしてTerrarainでの操作をマクロ化できないか、って話?
>>110 デバッグ時?デザイン時?作業時?言い方がよくわからないですが
ゲームをしていない作業時に、マクロかプラグインなどで
画像を元に地形や建物を事前に生成して、LightMappingしたいんです
あと、実行時の特定の条件下のテストをしたいときに、
ゲームをして同じ状況を作り出すより、マクロなどで同じ場面を生成できたほうが楽だと思ったので
デバッグ用に別のプロジェクトを作ってやるしかないのかな
>>112 マップのスクリプト(マクロ)生成とかの方針は理解できた。
ようはレベルデザインのエディターがほしいってことだね、Assetどっかで見たよ、根気よく探してみ
しかしライトマップベイクは自作する以外不可能に近いな
話は変わるがUnityにはエディタークラスというAPIもあるよ
俺にはまだ使いこなせないので誰か、あとは任せた
シレンやF14みたいにするのか。
影をオブジェクトでやればマッピングせずに軽いぞ。
味方助けないでずっと回転
わざと味方カットして攻撃当て続ける
ランダム部屋で今日一日でこれだけやってる、ホストは蹴らないからメッセ送ってやっと理解させる
他にいて結構いい感じの通信する二人にメッセで送ったら上記のステゲーも発覚
117 :
名前は開発中のものです。:2012/04/26(木) 13:39:13.51 ID:9CZ03IBI
映像が描画されるタイミングってどこになるんだろ?
updateの直後?
>>114 それただのダンジョンのランダム生成してくれるAsset入ってるだけじゃね?
みなさんよく言ってらっしゃるアセットストアというのはどういうものが売られてるんでしょうか?
キャラクターの素材とかステージとかそれだけですか?プログラミング言語とかも同梱されてます?
>>118 それすらなくね?
ただのダンジョンパーツっぽいが
DCCツールのソースデータでもないのに
こんなんで75$とか
本スレと違ってすげぇ良スレだな
以前のプログラマが集うスレみたいでいいわぁw
124 :
名前は開発中のものです。:2012/04/26(木) 16:34:22.82 ID:9CZ03IBI
モーションの終わりをどうしても検出できない。
仕方なくモーション終わってから1フレーム前の座標を保存したものを使って座標を繋いでるが、1フレームガタつくw
どうすればww
>>124 アニメーションをスムーズにつなげる目的ならレイヤーを使えば解決する
ほかはAnimation.IsPlayingで監視するとか
126 :
名前は開発中のものです。:2012/04/26(木) 17:07:59.44 ID:9CZ03IBI
>>125 今はモーションの切り替わり後に動かしてるんだけど、それだと切り替わった後のモーションの座標が1フレームだけ再生さえてしまうんだ。
変数A・・・常にモーションの座標を取得
変数B・・・常に変数Aをコピー(1フレーム前の座標を保存)
新しいモーションに切り替わると変数Bを反映する。
これだと新しいモーションの座標で1フレームだけ再生されてしまう。一手遅いんだ。
モーションが切り替わる前に座標を上手く次のモーションの1フレーム目で反映させた上で再生させたい。
ところが、モーションの最終フレームを検出しようとするとnormalizedTimeしかないんだけど、これが最終フレームで上手く1.0にならない。
検出条件を0.95〜0.9にしたけど、これで検出するとまた次のフレームで同じように検出してしまって、以前のモーション座標を二度検出してしまったりしてうまくいかない。
どうしたらいいんだろ?normalizedTimeが正確にモーションの終わりを出してくれればいいんだけど、そういうものってあるかな?
北中丸村┐
山中村┤
東間村┤
北本宿村┤
深井村┼中丸村┐
宮内村┤ │
古市場村┤ │
常光別所村┤ │
花ノ木村┘ ├ 北本宿村 - 北本町 - 北本市
│
下石戸上村┐ │
下石戸下村┤ │
石戸宿村┼石戸村┘
高尾村┤
荒井村┘
>>126 新しいモーションに切り替えるのをUpdateで行って
>新しいモーションに切り替わると変数Bを反映する。
↑の処理をLateUpdateですると
>これだと新しいモーションの座標で1フレームだけ再生されてしまう。一手遅いんだ。
↑が防げるかも
>>126 >検出条件を0.95〜0.9にしたけど、これで検出するとまた次のフレームで同じように検出してしまって
とりあえず検出条件を(AnimationState.time + 1/AnimationClip.frameRate) >= 1.0にしたらどうかな
AnimationClip.frameRateがフレーム数か確かめてないけど意味は解るよね
大丈夫です
>128
lateupdateの後に次のフレームの描画が始まるのかな?
試してみるよ!
>>129 今それに近いやり方を試してるけど
update上ではstateもズレる。
ノーマライズで似た事をやってるけど
やはりずれてしまう。
四捨五入して精度を高めたり、
アルゴリズムを見直してる。
でもこれって次のモーションの描画前に
座標補正のタイミングを合わせるって話だよな。
よく考えたら…
updateでモーション変わった直後に検出しても既に次のフレームが描画されてるって事は
描画→update→描画
ってなってるってことかな?
描画→update→lateupdate→描画
だから
>>128なのかな。
うーむ。
133 :
名前は開発中のものです。:2012/04/26(木) 19:30:24.59 ID:VnJ/NVON
Unityインスコしてアセットにアクセスすりゃいいだけなのになw
>>119 Asset storeにはテンプレになりそうなゲームをソースつきで売ってるよ
簡易モデラーもスプラインカーブ生成も人工知能も売ってる
>>132 asset storeを自分で覗いてみろとしか。。。
まあ確かに見るだけならWebで見れてもいいかもしれない
要望出してみたら?
ランダムダンジョンジェネレーターとか経路探索とかAIとかのスクリプト欲しいが
自分のゲーム用にカスタマイズできるか不安で手が出せない
>>137 勉強して自分で書いた方がいいぜ
ロジックわかってて省力したいなら、持ってきた方が早いけど
139 :
>>105の者です:2012/04/26(木) 20:55:45.65 ID:Y38l/gTY
140 :
名前は開発中のものです。:2012/04/26(木) 20:58:07.91 ID:1WC00Ipk
どういたしまして〜
141 :
名前は開発中のものです。:2012/04/26(木) 21:43:30.61 ID:9CZ03IBI
unityの再生ボタンを押したままfbxをapplyして五分経つのだが。どうしたらいいですかね?
142 :
名前は開発中のものです。:2012/04/26(木) 21:56:58.92 ID:wEL4lfcw
>>141 再起動じゃないでしょうか?
もうしてるかもだけど。
>>131 何だかわからんがアニメーションWindow開いてモーションの終わりくらいにイベントセットしたら任意のfunction呼べるよ。
インポートして編集できないアニメーションならCtrl(command)+dで複製したら編集できるアニメーションになるよ。
144 :
名前は開発中のものです。:2012/04/26(木) 22:37:09.31 ID:9CZ03IBI
>>141 やってみた。何とか動いてるがモデルファイルは全部入れなおした。unityの挙動がおかしい。
みんなも気をつけるんだ。
>>143 ありがとう。どうもonceで読み込んでるモーションが再生されると再生の最後に再生1フレーム目と同じ位置に戻ってしまうのがいけないみたいだ。
処理じたいはキレイなもんだった。なんでこんなことになってるのかわけがわからない。
たしか自動で最後のキーフレームの後ろに1フレーム目を追加していたような?
関係無かったらすまん
>>145 おお?!?それが怪しそうだ。
調べてみるわ。
http://unity3d.com/support/documentation/Manual/Animations.html loop frame If enabled, an extra loop frame is inserted at the end of the animation. This frame matches the first frame in the clip. Use this if you want to make a looping animation and the first & last frames don't match up exactly.
インポートする時にLoop FrameをONにしたなら最後のフレームの後に第1フレームが追加されてる
これが探している情報かどうかは知らない...
148 :
名前は開発中のものです。:2012/04/26(木) 23:14:59.41 ID:9CZ03IBI
>>147 インポート設定はonceです。だがこれだろうな。
俺なんて再生ボタン押して1時間後に再生開始とかザラだぜ
前これで再起動したらデータぶっとんでたからもう再起動はしないけどな
FBX周りはカオスだな。FBXを作った会社のものとは思えん。
3Dの共通フォーマットってそんなもんだろ。なんだかいつも苦労するw
おまじないとしてAutodeskのFBX Converterを通してみると
おかしなデータが直ったりとかもあるよ
モバイルでテキストのサイズ指定が出来ないから、
一度PHP通してテキスト→画像にして表示しようと思うんだけど
それ以外に何かいい方法ある?
AndroidならPluginでNativeなモジュールにピクセル情報書き込ませて、UnityレベルでSetPixelsするとかも出来ますよ。
>>153 ありがとう。Androidです。
それって大きいサイズにしてもギザギザにならず
うまく表示できるものなのかな?
そもそもこれは確かなのか?
> モバイルでテキストのサイズ指定が出来ないから、
どうやって表示してるか知らないけど簡単な方法がありそう
>>153 そのネイティブなモジュールは、ARM他の環境でも動作するの?
158 :
名前は開発中のものです。:2012/04/27(金) 18:42:01.74 ID:eIkVaGKW
キャラクターの子オブジェクトをモーションで動かして、動き終わったら子オブジェクトのの座標を親に反映させる形で動きを繋いでるんだけど、
この子オブジェクトの動きを制限するとなぜかおかしな方向にオブジェクトが吹っ飛んでいってしまう。
入れてないはずの値が加算されていってしまう。なぜだろう?誰かエスパーして。
blenderの .blend 形式も対応してるよ! って聞いたのにUnityに上手いこと持っていけなかった…。
fbxにしたら大丈夫だったけど、どの出力形式がベストとかあるのかな。
ワールド座標+ワールド座標になってるんじゃないか
色々試したけど、fbxがベスト
>>159 .blend形式でも、内部的にはfbx形式で読み込んでるから(blenderでfbx形式でエクスポートするなら)結果としては同じハズ。
読み込み自体できないなら、.blend拡張子が関連付けられてないから。インポートするときはUnityがBlenderを呼び出してる。
>>154 大きいサイズでも大丈夫ですよ。
但しTexture2DのSetPixels -> Applyは遅いので内容が変わるときだけテクスチャ作り直しさせる必要があります。
>>157 ARMというかandroid sdkでビルドするんですよ。
>>154 大きいサイズでも大丈夫ですよ。
但しTexture2DのSetPixels -> Applyは遅いので内容が変わるときだけテクスチャ作り直しさせる必要があります。
>>157 ARMというかandroid sdkでビルドするんですよ。
失礼、ちょっと地下鉄入って書き込み失敗したかと思って再度送ってしまいました。
>>163 ありがとう!
確かにピクセル操作はこれでもかというほど遅い…
167 :
名前は開発中のものです。:2012/04/27(金) 21:53:32.51 ID:eIkVaGKW
二つのAとBというモデルがあって、モデルの座標が同じだけど、カメラから見て奥側にBを描写したい場合はどうしたら良い?
カメラはz軸のプラス側にあって、モデルのz座標はマイナス側にある。
170 :
名前は開発中のものです。:2012/04/27(金) 22:46:51.29 ID:eIkVaGKW
>>169 ズラさずにタグやカメラ関係でなんとかなりませんかね?
depthと距離いじって何とかならなきゃベクトルでズラした方が楽そうだが
Zバッファクリアとか特定の場面限定になるが・・・(unityでできるか知らんけどw)
Unityじゃないけど、例えば3Dモデラみたいなソフト作る時、
モデルとボーンの形状モデル重ねて、ただしボーンは必ず手前に描画させたい時とか、
バッファスワップ前にZバッファクリアしてから描画とかするな
Unityで出来るかはシラネ
描画の順番っていじれるのかな?
ピクセルシェーダで座標いじって描画とか?
175 :
名前は開発中のものです。:2012/04/28(土) 01:11:09.22 ID:qot3DyCv
RendereSettingsでFogの効果付けられてよかった
これがあるとだいぶ雰囲気が違うことが分かった
>>170 タグ付けてカメラ2つで2回レンダリングすればいける
ただめんどくさいよ
誰もレイヤーに触れないんだな
>>171 2.5D的なアイデアで乗り切りたい。
>>172 レンダー時に前後を変えるんですかね?
これできたら夢が広がる。
>>173 工夫でできないかなと。
>>174 それ重そうじゃない?
>>176 ヒントをありがとうございます。
少し知恵を絞って見ます。
それはコンパイルエラー直してから実行してね〜って注意だから
具体的なエラーコンソール見ないと誰も分からないんじゃないかな。
コンソールの表示は確かウィンドウ→コンソール
>>181 その青くなってるところをダブルクリックして。
Unity曰く
newMaterialというローカル変数は既に定義されています
チンコ洗ってから出なおしてこいボケナス
連投ゴメン
安易だけど125行目のvar消してみてはどうか
>>185 125と126のnewMaterialを適当な名前に置き換えればokだったと思う
newMaterial2とか
>>189 そっちじゃない。
>>188が言ってるのは125行目の左側の変数だよ
同じ変数名のやつをリネームせんと
スペースは不要
おお、なんで
>>189になるんだ
125-126行目の変数名置き換えるなら
for (var newMaterial2 in fade.alphaMaterials)
;
Destroy(newMaterial2);
こうだよね
へんな改行入ったけどそこだけスルーしておくれ
>>178 描画の仕組みを詳しく知ればわかるんだけど
描画する順番なんて単純な問題じゃねーんだよ
3Dの描画はZバッファちゅーもんが描き込み時にピクセルごとのZ値を保持しておいて
次に描くもんが描画するべきか否かを判断してるっちゅーわけよ
なので前後ろをきっちりわけたいゆーことは
このZバッファをクリアして次のもんを描画するか(その場合3D前後は保障されないポリゴン単位でおかしくなるので注意が必要)
Zバッファ機能をそもそもOFFにすることが必要になる
大抵3Dの描画は速度アップのために
不透過オブジェクトは前から描画(そうすることで後ろのもんは描画しなくてよいのでかなりの速度アップが見込める)
透過オブジェクトは後ろから描画(透ける=後ろのものから描画しないといけない)
になっているのでたとえZバッファをクリアしてオブジェクト同士の問題を解決したところで背景に一気に塗りつぶされる危険アリ
理由はわかるな
市販のもんできっちり前後わけられてるようなゲームはおそらく
どっかのテクスチャに一旦描画してそれをビルボードかなんかでもう一回描画してんじゃなかろーか?
>>191さんの通りにやったら無事にプレイ画面に行きました。ありがとうございます
>>190 勘違いですいませんでした。
195 :
名前は開発中のものです。:2012/04/28(土) 16:39:59.08 ID:0wIWnV8V
webプレイヤーって30fpsがデフォルトなん?
そんなことはない
デフォルトいくつだっけ?
確認できませんか?
質問です
blenderから読み込んだ3dモデルがrigidbodyを追加しても他のrigidbodyを追加したオブジェクトを通過してしまいます
どうすれば物理挙動をしてくれるのか教えて下さい
>>200 改めて検索したら出てきました、スレ汚してすいません
3DPlatformTutorialはバージョン古いときの奴で今といろいろ違ってトラブル出るし
ちょっとUnityやプログラム理解しないと対処しづらいからチュートリアルとしてはちょっと、と思った
203 :
名前は開発中のものです。:2012/04/29(日) 01:20:49.11 ID:eMZ/a5pp
>>202 質問以外は総合スレに書くようにしてくれまいか。すまんね。
自分アニメーションは基本AnimationStateのオンオフで部分ごとに使い分けてるんだけど
これだとCrossFadeの時みたいに自然な切り替えができない
こういう場合、やっぱりWeightをいちいち変えていかないとダメかな?
なんだか良くわからんがアニメーションレイヤーはわかる?
知ってるって何が?全然関係なくね?
なくねえよw
ゲームエンジンってライブラリと違うの?
C++でも使えますか?
>>202 同意。FPS Tutorialの方が100倍わかりやすい
>>208 どんなライブラリですか?に対して、ゲームエンジンだ、と答えるような場面もあれば、
このゲームエンジンの中の物理演算部分は○○ライブラリを利用してると答えたり
目的やまとまりの概念、その名称のこと
C++でコーディングインタフェースは、Free版での提供は無いけど、
そう言う意味でなく、C++で書いた自前のメインコードから利用する、みたいな意味なら基本的に無理
(3D)ゲームエンジン=(3Dゲーム)ツクール
ライブラリ、フレームワーク、API、ゲームエンジン、アーキテクチャ
このあたりの言葉って結構あいまいだよね
>>212 簡単に言えば文脈と意図の表現だもんな
だから初心者の人がひとつの説明だけで丸覚えの暗記だけで済まそうとすると、
コミュニケーションの道具にも使えないって罠
一応念のため、文脈と意図 って話を1レスで補足しておくと、例えば
何かの実装方法について話している時に、方法論的な主題に焦点があったりして、そんな時に
「それは Unityのフレームワークではこういう考え方や手段で実装して云々」 とか、
具体的な何か、例えばラスタ画像処理のパッケージだとか、音声処理だとか、その他もろもろ何でも
処理のパッケージ単位について話す時、「そのライブラリはこういう利用のされかたを想定してるようで云々」 とか
もっと実装の実際のコード、個別な細かい何かについて話す時、「それはこのAPIだと、この関数やクラスで云々」 とか、
全体設計面で、例えば Unityでの描画パイプラインなんかについて話す時、
「Unityのそのアーキテクチャは利用コード側の責任で何々、API側が云々と階層を成していて」 だとか、
ざっくり目の前のフレームワーク、ライブラリ、API群について、その目的について話す時
「これはゲームエンジンと呼ばれる種類のプロダクトで」 だとか、そんな感じの区別。
つまりここの人たちって理解の仕方がとっ散らかってるレベルなのね
別の意味で納得した
>>215 初心者多いところはどこでもそうだよ
誰でも最初からわかる人なんていないでしょ
学問じゃなくて、どっちかというと商売の分野だから、
同じものに違う名前付けたり、時代によって呼び方変えてみたり、環境の変化で指すものが変わってきたりするから、早い話正解はない。
モーションの再生を完全にupdateと同期させる方法は無いでしょうか?
どうもフレームの進行とは関係なくモーションが再生されてるようだ。
>>218 deltaTime使ってる?
使わないとアニメーション再生速度に問題が出るよ
>>219 いや、使ってません。delta.Timeを応用してモーションの再生速度を規制できるんでしょうか?
と思ったら誤字ってなかった
質問者が勝手にドット入れてただけだった
すまんwww
読んでみてね
>>221 これはスクリプトによって動きを作ってる場合に時間ごとに処理をさせるためのものですよね?
俺が言ってるのはモーションをフレームと同期させたいという事なんですよ。
あるモーションの再生時間を見ると終端がいつも違う値になりますよね?
これだとうまく処理できないんです。なんとかする方法がありませんかね?
>>222 deltaTimeですね。気をつけます。
>>223 animation.Playあたりにこれを使えればいいんですけどね。いや、でもこれ使えても時間に同期するだけか。
俺の作ってるゲームはモーションタイミングは誤差で構わないから、あんまり意識してないんだが
FixedUpdate内でdeltaTime使えば、同じ時間のタイミングでモーションを起こして、同じ時間の経過でモーションが終わらないか?
unityは可変フレーム式でモーションとフレームを同期させるのは合わないんじゃないの
フレーム管理はエンジン側だろうし
>>225 それだと、俺の場合はちょっと重すぎるかな。フレームきっちり終わるように作れって事なんですかね。
1フレームあたりで進行するモーションの速度が違う。その代わりにモーションはフレームのズレを無視して美しく再生されるってことか。
>>226 わかるけどね。そういうものが必要とされる状況が少ないから、ほとんどの場合でフレーム無視して作ったとおりに時間通りに再生されるほうが需要が多いというのは。
分かってないじゃないか。
FixedUpdateだと重いとかあるの?
基本FixedUpdateだからわかんね
FixedUpdate+deltaTimeじゃないと環境の処理速度によって動作が変わるから困ると思うんだが・・・
フレームとモーションを同期したい理由がわからない
フレーム単位で処理したいだけならFixedUpdateの方が楽な気がするし、
しょぼい環境によってはモーションが飛ばされるから使いたくないってくらいしか理由が思いつかん
・deltaTimeを使用しない
毎フレームFBXのモーションを1Fづつ読み込むので可変フレームだと環境・状況によって10秒のモーションが11秒だったり9秒にもなる
>>224にあるようにモーションの再生時間がいつも違う値になる
・deltaTimeを使用する
間隔時間で補間するので10秒のモーションなら10秒で終わる
さっき暫く試したけどやっぱ上の様な処理になる
フレームに合わせたいと書いてあるけどUnityはデフォルトでフレームに合わせてFBXからモーション取得するので
FPSが30にも40にも変動する環境上、モーションの再生時間がいつも違う値になるのは当然な気がするのだけど
deltaTimeを使用しつつ、deltaTimeカウントするだけでいいんじゃねーの
誤差も0.1〜0.2秒くらいだろ
それも嫌なら、正直、ゲーム設計から考え直した方がいいんじゃ・・・
>>231の言う通り、FPS自体が変動するから、完全に同期しても動作がめちゃくちゃになるだけだと思う
つか、deltaTime試した?
試してから次のレスを頼む
基本60FPSで出力するところを24FPSで出力してない?
アニメーションの時間がおかしい場合は、その可能性が一番高い。
ツールにもよるけど再生フレーム数と出力フレーム数が違ったりするとたまにそうなる。
モーションの再生フレームレートってどこで見れんの?
1フレームで1フレームだけどモーションが再生されれば良いのに。
switchcase文の条件分岐15個とかあるんだけどこれって普通?
こんなんで1フレームずつ進むかな
var animName : String = "";
var frame : int = 0;
function Start () {
animation.Play(animName);
animation[animName].speed = 0;
}
function Update () {
++frame;
var state : AnimationState = animation[animName];
var maxFrame : int = Mathf.FloorToInt(state.length * 60);
frame = Mathf.Repeat(frame, maxFrame);
state.time = frame / 60.0f;
}
フレーム数を固定にする事もできるの?
Asset Store からダウンロードまではできるがインポが…
Error while importing package: Couldn't decompress package
UnityEditor.AssetStoreContext:OpenPackage(String, String)
ちなみに64bit環境。
>>242 保存先のパスに日本語が入ってると失敗するみたい
>>241 完璧に固定は不可能だがFPSの指定は可能
指定した値から若干上下するが10にも300にも出来る
>>245 d
固定フレーム数の時に処理が遅れた場合って、強制的に描画スキップするのかな?
海外製のエンジンだから、スローになったりするイメージはないんだけど…
FPSでリロードする時のアニメーションはどうやって作れば?
マガジンの入れ替えとか結構精密な動作あるから、Blenderで動きだけ作って
Unityにインポートしてから手のボーンの子に武器を配置するのだと、結構誤差がでてくると思う
Blenderで武器もインポートして武器ごとそのリロードアニメーションとして出力するってありかな?
>>246 Unity自体は可変フレームレート前提で固定フレームレートにするなんて設定は無いだろ
>>245の言ってるのはApplication.targetFrameRateでフレームレートの上限が設定できるって事でさ
固定フレームってフレームレートが固定されてる状態の事を言ってるなら
常に目標フレームレート以上出してそれを制限するんだから処理が遅れてる時点で実現できてないし
フレームレートが固定されている前提で組まれてる処理の事なら
Time.deltaTimeを見なければそれっぽくなると思うが
当然処理が遅れるとスローになるしアニメーションとかPhysicsの処理は
エンジン側で勝手に時間基準で進められるから
フレーム基準のUpdate内の処理と時間基準のアニメーション・Physicsがずれて変な見た目になりそう
>>239のでアニメーションは無理やりフレーム基準な状態にできるっぽいけど
360のコントローラーを使いたいのですが
Lトリガーで左の武器、Rトリガーで右の武器を使うようなのはどう実現したら良いんでしょうか
9th axisと10th axisがLRに対応してるようなことが海外のサイトに書いてあったのですが、全く反応してくれません
初心者なので用語の使い方が間違っていたらごめんなさい
>>250 まず値を取ることから始めましょう。そのパッドはとてもイージーです。俺も苦労しました。
面倒なので3から10まで順に割り当てて見たところ、やはり9と10で理想の動作をしてくれました!
さっきは動かなかったのに・・・
>>251 Debug.Log("L:" + Input.GetAxis("L_Trigger") + " R:" + Input.GetAxis("R_Trigger"));
と書いていましたが、ずっと0と表示されていました
Vector3(1, 2, 3)って内容のv3って変数があった時に、v3.Set(3,2,1)したら
Vector3(3,2,1)に変わるみたいな?
>>254 ありがとうございます。transform.positionに入れるのと同じですよね?
「=」するよりもSet()関数の方が速いという噂。
なんだと・・・
書きなおすの面倒だからいいか
実装とか速度はわからんけど、なんでセッターゲッターがあるかというと、
オブジェクト指向的に入出力は直接アクセスしないでそれ使えってのと、可能ならメソッドチェーンできるから、くらいの意味かね。
めちゃ勉強になります。
話変わるけど、
俺の場合、VC#のフォームデザイナーでEditorとか作るとユーザーコントロール作って何個も置いたりするから、オブジェクト指向っぽくなるけど、
ゲーム作ってると手続型に近くなるんだよなー
何個も似たようなクラス作って継承するくらいなら、最初のクラスを拡張すればいいじゃん?
みたいな気分になる
マップ管理もキャラクター管理も結局一箇所にデータまとめた方が楽に感じるんだよね・・・
敵と味方と村人の違いは配列に属性持たせてメソッドの振り分けで終わっちまう
>>260 >>261 オブジェクト志向できない俺としてはだな。
拡張を繰り返してる内に、
イチから別クラスを立ち上げた方が良いと判断する時って
わかりやすさとめんどくささによるから
人によるというだけの事なのかな?
と思う。
>>261 よければその具体例をくれ
俺の場合、最初にデータ読み込んで、そのデータ通りにキャラを置くから、そこで一緒に管理した方が楽ってなってるのかもしれん
Unityとは関係ないけど、作りこんだクラスなら、あとでいくらでも使いまわしできるけど、
その場限りで同じ処理あるからまとめとけって使い方なら、サブルーチンでも関数化でも同じようなレベルってだけだと思う。
だから、クラスにまとめようが、まとめないでやろうが、そんなに変わりはないってだけじゃないかね。
>>264 サブルーチンや函数化ってオブジェクト指向とあんまり相性よろしくなくない?
引数を得て操作した結果を返すってのと、オブジェクトに対して操作要求(メソッド呼び出し)って
意味論的にものすごく相性悪いと思うのだけど
>>258 >実装とか速度はわからんけど、なんでセッターゲッターがあるかというと、
>オブジェクト指向的に入出力は直接アクセスしないでそれ使えってのと、可能ならメソッドチェーンできるから、くらいの意味かね。
C#はプロパティが使えるから、セッターゲッターは過去の産物だろ。
>>266 それ、ただのシンタクスシュガーでしょうが…
持ち主が知らぬ間にメンバの書き換えが起こりうる状態を避けたいとか、入出力の際にその判断や関連する動作を書ける、ってのが要点で、
それがメソッドの形でも、それを隠したプロパティの形でも、
意味する所は同じ。
>>267 プロパティがあるのにあえてVector3.Setを用意する意味は?
って話じゃ?
>>268 代入のためだけに一時変数作らなくていいからだろ
>>270 まあ確かに
>>258は的外れになっちゃってるかも
一般的なセッター・ゲッターについて書きすぎてて
元のVector3.Setについての質問とは少しずれてきた感じ
スクリプトリファレンス見たらSetの返り値がvoidになってたからメソッドチェーンできなさそうだし
でも一般的なセッター・ゲッターについてならあまり間違ってない
>>269 >代入のためだけに一時変数作らなくていいからだろ
float3つ分の一時変数が作られる罠。
Vector3を1つ作るのより遅そうなイメージ。
>>272 最適化かかると同じになるかもしれないとは一応言っておくが
こんな感じと言えばわかるか
Vector3 piyo;
があるとして
piyo.Set(1, 2, 3);
は
piyo.x = 1;piyo.y = 2;piyo.z = 3;
piyo = new Vector3(1, 2, 3);
は
Vector3 temp;
temp.x = 1;temp.y = 2;temp.z = 3;
piyo.x = temp.x;piyo.y = temp.y;piyo.z = temp.z;
書いてるのと同じ
つまりnew Vector3(1, 2, 3);の部分が無駄になる可能性がある
ただし
Vector3 hoge;
がある場合
piyo.Set(hoge.x, hoge.y, hoge.z);
と
piyo = hoge;
はほぼ変わらんだろう
むしろ読みやすいから
piyo = hoge;
の方がいい
よくわからんが数千個だか設置して比べるのが確実じゃね
>>274の言うとおり試してみるのが確実だがテキトーなテストコードを書くと
キャッシュのヒット率とか最適化の関係で
実際に使う時のコードで計測した場合と別の結果が出る事があるので注意
あと一時変数が作られる程度の無駄なんて1フレームに数回通る所じゃ気にしなくていい
1フレームに数万回以上呼び出される所だと気にしないと遅くなるけどな
あくまで一般論だけど、変数1個ずつアクセスできるってのと、
まとめてでしかアクセスできないってのは違う。
piyo.Set(1,2,3);
と
piyo = new Vector3(1,2,3);
それぞれ
500万回実行
俺の環境でそれぞれ
69ms
82ms
何度か回したが
大体1.18倍程度かなあ
参考まで。
ちなみに時間計測にはStopwatchクラスを使用。
Setの方が早いのか。
>>273 見てる人はわかってると思うけど一応書いておくと、
=で結んでコピーって、C#の場合、対象がstructとclassで動作違うから注意な
structがディープコピーで、classはシャローコピー
structでシャローコピーさせたい場合は ref しないとダメ
piyo = hoge;
と
piyo.Set(hoge.x,hoge.y,hoge.z);
それぞれ500万回も同様にやってみたがそれぞれ、
24ms
60ms
だった。
ドット三連コストの負けか。
>>279補足助かる
まだC++の感覚のまま書いててたまに間違えそうになるからな
>>280の結果はhogeの読み出しにコストかかってる感じかね
>>280 >>277のテストタイムと合わせて考えると、より低レベルで実装されてるであろう構造体のコピーだけってのが単純に速いって感じかも。
>>273 もうテスト結果も出たし蒸し返す必要ないけど、一応。
>piyo.Set(1, 2, 3);
>は
>piyo.x = 1;piyo.y = 2;piyo.z = 3;
それは参照渡しの場合ね。
Set関数は値渡しだから、
float x = 1;
float y = 2;
float z = 3;
piyo.x = x; piyo.y = y; piyo.z = z;
って事をやってる。
piyo = new Vector3(1,2,3);
の時間が
Vector3 hoge;
hoge.Set(1, 2, 3);
piyo = hoge;
ってやってそうな感じの時間だなぁと思ったり
>>284 まあ引数を渡す機構上そうなるのは知ってるんだが
参照渡しの場合はその表記になるって事は
参照渡し版Set関数が実装できてそっちの方が速いって事?
ゲーム完成させてから気にしたらよくね?
気になるならC#スレいったらいいと思うよ
タコってくれるから
>>282 C++のイメージで言うと、先にオペレータオーバロードされてないか、
とかが真っ先に浮かぶよな
POD型としてのコピーももちろんそうだけど
>>286 ゲームはすでに完成したので気にしてます。
とりあえずセット使ったほうがいいってことか?
>>289 とりあえずは
速[ただの代入>Set>わざわざnewして代入]遅
みたいだから
piyo = new Vector3(1,2,3);
って書くくらいならSetした方がいいってだけ
Vector3にVector2をオペレータ通して代入するとかになるとまた計測してみないとわからんが
>>287 昔書けるからってVector3をoperator+で繋ぎまくってて
一時変数が大量にできてたのを知った時
何とも言えないがっかり感を覚えたのは良い(悪いかもしれない)思い出
>>290 その場合って、普通const 参照の受け返しだと思うが
あぁ、つないで結果を返すからか
+= と勘違い
すごく初心者ぽい質問ですまないけど、c#でかいても、MSの実行環境CLRだっけ?で動かすわけでないから、
仕様はunityの環境に左右されるんじゃないの?
JSがスクリプトとして実行されるのでないように。
まあ変な勘違いなくすために踏襲されてるところが多いんだろうけど
>>293 全然分かってないw
「MONO」から調べるべしw
うすら馬鹿ー
別に間違ったことは言ってないでしょ。
Mono知らないだけで。
>>297 PCでは問題無いけど、iPhone用なんで、
チューンアップできる所はすべてやるつもり。
60fpsは厳しいけど、常時30以上は保ちたい。
iphoneは60でないだろw
>>298 うん、だからウィークポイントを計測した?
>>301 多分、速度のボトルネックになりそうな箇所を特定したら、そこになったのか?
と聞きたいんだと思う
「そこ」って何??
ますます意味不明。
どうでもいいけどプログラム板のC#の質問スレって異様な雰囲気だな
ほとんどの質問者がフルボッコにされて泣かされている
あいつら頭おかしい
ムとマは初心者お断り 初心者にはvipのミングスレのがまし
>>303 検証方法も不明なのに君はなにをやろうとしてるの?
馬鹿?
開発にもこいつなにやろうとしてんだろうとか思ったら
頼まれてもいない最適化に時間使ってる馬鹿がいてマジなぐりたくなった
一応どんな検証したのか聞いてみたら検証データも残してないし
基準になる数値も残ってない
なにとなにを比較したのか聞いてみても複数の要素をあっちこっちいじってて比較すらできてない
とか完全に時間の無駄やってて
3日でお払い箱にした派遣の○○くん思い出したよ
ハヤクシンデネw
まぁ描画に時間かかってるなら代入をいくら速くしても無意味だしな。
ゲームの開発現場に派遣入れてるのか。
しかも自由度高そうだし。
だから最近のゲームは粗末なモノ出してしまっても
次に反省をいかせないのか
折角いい感じで情報の蓄積が始まったのに、質問スレで雑談初められても・・・
お なんかきもいのきてる
>>307 無意味では無いでしょ。
例え1%であっても速くなるのなら意味はある。
特にモバイル機ではオーバーヘッドはなるべく減らすべき。
>>312 無意味ではない。
無意味ではないが必要ないというところか。
物事は質ではなく量で考えよう。
実際には充分な速度を持てるのに
高速化に時間を費やすのは無駄。
可能な限り無駄でもやる。
これが日本の病。
>>313 高速化を無駄だと思うなら君はゲームプログラマ向きじゃないね。
sin関数よりやや速い疑似sin関数を使ったり、
2点の距離を測るのにルートを使用しない関数を使ったり、
ゲームプログラミングはそういう効率化の積み重ねだから。
>>314 >sin関数よりやや速い疑似sin関数を使ったり、
は?(笑)
>>315 知らないってことはゲーム機での開発経験ないでしょ?w
PCはいいよねぇリソース無限でw
つーか、今のスマホは、昔のゲーム機みたいなカツカツだからな。
ちょっとでも速度や軽さ稼ぎたいってのはわかる。
PCだったら、作りたいものにもよるが、そういうレベルで気にするもんでもない。
極限まで最適化するなら、マシン語とかになる。極端な話。
だから、時代や環境や制作コストに合わせた、費用対効果でできる範囲でやればいい。
絶対に○○しないといけないんだ!みたいな先入観にとらわれないように。
いや、1フレームの描画に15msかかって、それ以外のあたり判定やらの処理が5msくらいで終わるなら、CPU側の処理を短縮しても意味なくない?
>>318 実行環境にもよるだろうから、コスト0で速くなるなら絶対にやった方がいいけど、
実際にやるかどうかは、ケースバイケースだろうな。
>>ID:oinbkdqk
俺はキミの言ってることに賛成だよ。
レジが一台しか無いスーパーで、いつもレジが大渋滞になってる場合に、
個々の商品の陳列の順番を多少変えたところで客の回転に関しては
“あまり”意味がない。こういう文脈では無意味って言ってもいいと思う。
文脈って大切だよね。
>>320 完全に完結したプログラムでそこ以外一切いじらないならそうだけど、
修正や追加したときに、その前提条件なんてすぐに変わるよ。
まぁ、絶対に変わらないって自信があるならいいけど、
かなり限定された条件での話になるな。
これからはハードの有り余る処理能力をふんだんに消費して楽をする時代になる。
>>321 〜という前提であればっていう話だよ。
だからその前提であればその通りだねって言ってるだけ。
〜という前提はあるが、状況はいつでも変わりうるからなんとかかんとかって
そういうのはこの文脈においては“意味が無い”と思うよ。
状況によりけりだから、○○という状況であればって話をしてるわけだしさ。
話を交ぜ返して状況によりけりだからって言うのにいったい何の意味があるの???
そろそろスレチ。他でやってね。
やっぱり間違ったレスを見たら、修正してあげないとなw
質問スレだしw
>>322 そう思っていた次期がわしにもありました
家庭用 Famicom->MegaDrive->PCEngine->SuperFamicom->PlayStation->PS2->PS3
PC 8001->8801SR->9801->IBMPC ここからビデオカード -> S3 -> Matrox -> PowerVR ->Geforce ->GForceFX(ココまで涙目)
最近やっとだw
>>316 で?
それはunityでも意味があるって話をしてるの?
うぜえから消えろカス
>>330 それはこちらのセリフだ
一生懸命Setの時間なんてはかってるから意味があるのか?って聞いたら
予想通りの返答だよなカス
お前みたいなクズはこのままじゃなにも作れない
絶対だ
それはお前の人生がなにも積み上げてこなかったからだ
砂の上に柱立てて、砂の上に土台作って、砂の上に・・・てな具合だな
まず、砂の上でやるなよwって当たり前のこと言ったら君は逆上したんだ
俺のやることに口出すなよってね
周囲からみたら馬鹿にしか見えない、お前大丈夫かよ?って誰でもいうだろw
今回だってよく自分の行動を分析してみるべきだと思うぜ
なんでSetの速度なんて測ろうと思った?
君の目的なにかな?
どうして目的忘れてそんなことしちゃったのかな?
ゲームは完成するかな?ってね
アホに釣られてレスやりとりしてると質問スレが潰れますよ
ここは質問と回答だけあればいいスレです
解答無いから2パターン答えとくと、UnityがGPUとCPUで並列処理を行っている場合、恐らくネックになるのはGPUだから30FPSを目指すなら、そっちを改善した方がいいよ。
仮にCPUでの処理が足を引っ張ってるなら完全に設計が悪いのでSetの高速化なんてやってる場合ではないよ。
そもそも最近のゲームがUnrealScriptやらC#やらJavascriptと言ったCやC++の20倍くらいは遅い言語で問題ないのかというと、
当たり判定やルート探索みたいなNativeで行ってる処理以外は殆ど問題にならない程度の負荷しかないからだよ。
だから、そんなとこが問題になるようなら設計見直した方がいいよ。
で、GPUとCPUが直列でしか処理できないなら、格ゲー・弾幕STG以外のものを作ってるならUnity以外のもので作った方がいいよ。
格ゲーや弾幕STGみたいに1フレ2フレ単位で技の判定が行われるゲーム以外、1フレーム内にCPUとGPUの処理を押し込む意味は殆ど無いよ。
逆に言えば描画が1フレーム遅れる場合、格ゲーをUnityで作るのは完全に不向きだと思うよ。
まぁシビアじゃないものを作るなら別だけど。
俺がpositioxとsetの質問をしたばかりにこんなことに…
最高に笑えるぜ!
Vector系やQuaternionやRect等はUnityが昔からもってる機能だけど、Setが実装されたのはUnity3.5から。今更な感じが逆に気になったから実測してみただけ、折角だから結果を投げ込んでみたが、ただのデータだ、解釈は好きにすればいいさ。
俺の中の結論としては、
シチュエーションにあわせて普通に使えばいいって程度の差で、古いソース書き換えるほどの話では無いってのがわかったから満足。
今更っぽさと最近のUnityの開発方向からみて多分スマホ系向けの最適なんじゃないかと思うが、俺はスマホに興味ないから興味あるやつがいるならそっちは勝手に調べればいいよ。
あと煽っても何も出さないよw
>>331は何で威張ってるの?w
それが一番無駄っぽいw
>>335 スマホでは速度だけでなく、バッテリー消費量も重要だからね。
オーバーヘッドを減らしてバッテリー消費を少しでも抑える努力は
プロなら必要になる。
でも趣味でやってるだけなら別に気にしなくてもいいよ。
>>335 そこが気になったとしたら、恐ろしくセンスないな
むしろ気にならない方がエンジニアとしてのセンス無いよ。
言われた事だけやってるタイプ。
>>314 ・・・そういうにわかがよく出しそうなゲームプログラマな自分を装う例は釣りなのか?
キャラニ体をアニメーションさせてるだけなのに
drawcallが54もある。
これって普通?
マテリアルが分かれてたりメッシュが分かれてたりするとそうなる。ワンメッシュワンマテリアルで。
そうなのか。多いのか。
ライトが多かったみたい。
リアルタイムライトをメッシュ一個に当てるとドローコールが+1
二個に当てると+2
>>249 遅レスですまないが、となると普段は固定フレームで処理が重くなったらスローになるような昔ながらのゲームは作りにくいって事かな。
>>345 いや、別に
Hierarchyに1つだけおいたゲームオブジェクトのAwakeとUpdateしか使ってないよ俺
Updateの中で16ms越えたら〜ってやってる
普通に動くよ
描画を止めるってできんのかな?
描画だけはUnityにまかせて動いてない静止画をたくさんかいてもらってる状態
止められるのかな?これ?
>>346 タイマーつけて時間がくるまでupdateさせないとか?
>>345 >>249だが確かに少し作りにくいかもしれない
自分のスクリプト内で処理する移動量とかは
1秒でx軸に+100の速度で移動する場合
pos.x += Time.deltaTime * 100;
とするが
60fps前提で処理が重くなったらスローにする場合
pos.x += (1/60.0f) * 100;
にする
つまりTime.deltaTimeを使用して経過時間基準にしている場所をフレーム基準の係数に置き換えるだけでいい
ただしFixedUpdateは処理が重くなった場合に連続して呼ばれた気がする(うろ覚え)ので注意
アニメーションは通常UpdateとLateUpdateの間でTime.deltaTimeを使ってUnityが進めるようなので
>>239のようにする
あれは再生後に再生速度に0を設定してUnityが時間を進めるのをキャンセルし
Updateで1フレームずつ進んだ場合の時間を設定してる
わざわざフレーム数を保持しなくても
state.time += 1 / 60.0f;
でもとりあえずは動きそうだが長いアニメーションだと計算誤差が溜まったりするかも?
で、方法がわからんかったのがPhysics
あまり使ってないからというのもあるが
Physics関連の進み具合を調整する方法がぱっと思いつかなかった
誰か処理が重くなったらスローになるようにPhysicsの設定ができるなら教えておくれ
なので自分としては「アニメーションに少し細工が必要だがPhysicsを使わなければ可能」と思ってる現状
fpsの上限設定はApplication.targetFrameRateで
でもEditor上だと設定が無効っぽい?
アニメーションの方法ももっと簡単にできる方法があれば誰か教えてくれ
>>348 ごめん。よくわかんないんだけど、アニメーションが再生してる間はズレてて、再生が終わったときにモーションの長さからあるべき時間を計測して
その時がくるまで静止させておいてるってこと?それってキャラクターが1体だとそれでいいかもしれないけど複数のキャラクタがモーションを切り替えるタイミングが異なってる場合ってどうなる?
>>349 そこはビルドしないとダメらしい。謎仕様の一つだね。
>>350 普通にアニメーションを再生すると
フレーム基準で進ませたいのにエンジン側はアニメーションを時間基準で進めてしまう
それによってスローになった場合もアニメーションだけはスローにならないので見た目がずれる
という問題点が出る
それを解決するために
アニメーションは再生状態になっているがエンジン側のアニメーションを進ませる処理を無効にして
自分でアニメーションを進めるというのが
>>239の処理
>>239の処理にコメントを書くと
function Start () {
animation.Play(animName);// 再生する
animation[animName].speed = 0;// エンジン側のアニメーションを進ませる処理を無効にする
}
function Update () {
// 何フレーム目までアニメーションが進行してればいいかを計算する
++frame;// フレームを進める
var state : AnimationState = animation[animName];// AnimationStateの取得
var maxFrame : int = Mathf.FloorToInt(state.length * 60);// アニメーション全体のフレーム数を計算
frame = Mathf.Repeat(frame, maxFrame);// ループさせる
// フレーム数から時間に戻して設定する
state.time = frame / 60.0f;
}
って感じになる
なんで実際は
同じオブジェクトに付いているAnimationコンポーネントを利用して
フレーム基準でアニメーション進行をさせるスクリプトを書く
それを各キャラに追加していくって感じになるかな
切り替えのタイミングは関係ないと思うの
止めておくわけでは無いのか。
どうもありがとう。
よくわかりました。
unityがわで揃えてくれたらなあ。
そもそもアニメーションをフレームレート基準にしたいとおもうのが間違えてるんじゃ???
よく知らないけど
>>353 アニメーションをフレームレート基準にしたいのは
作る物がフレームレート基準で混在させると処理が重くなった時にずれるから
なのでアニメーションをフレームレート基準にしたい事自体は間違ってないと思う
ただし作る物がフレームレート基準なのが間違ってるかどうかは
要求されてる仕様等によって変わるから要求を知らないと判断しようがない
判断しようが無いので知っている範囲でフレームレート基準にする場合の方法を書いてみた
自分でフレームレート基準の物をUnityで作った事は無いから気づいてないだけで見落としはあるかも
Physics関連の部分はフレームレート基準にする方法が思いつかなかった
要求まで見えていてフレームレート基準よりも時間基準にした方がいいと判断できる場合
その要求なら時間基準の方がいいと説明をする方が親切だとは思ってる
日本語でおk!
fbxインポーターにloopのチェックボックスが二種あるけど
なんのためにあるのでしょう?
次のゲームループで何か作業をさせたい場合に
モーションが進みすぎてると困る。
そういう処理具合の問題。
>>356 ループ動作はWrapMode側で指定。
Loopのチェックボックスは、
綺麗にループするようにエンドのあとにスタートが繋がった形で再生が進むようになるんだと思う。
チェックされていると、前フレームからの経過時間がエンドを超えていた場合などはたぶんエンドフレームをすっ飛ばして再生が進んでエンドには到達しない可能性が高くなる、
そのかわりループは綺麗に繋がると。
>>358 それはスプリットのフレーム数を指定する業の末尾にあるloopのチェックボックスですよね。
なんかその上の方にもループやonceを選べるリストがあるよね?
あれとフレーム数を入れる欄の違いがわからん。
スプリットした分と、
スプリットしない分の違いだけで、
スプリットした分だけならフレーム数を入れるとこだけ見てれば良いんだよな?
ああ。俺は何を言ってるんだ。
>>359は無視してくれ。ありがとう。、
>>354 >Physics関連の部分はフレームレート基準にする方法が思いつかなかった
メインループ見えてれば、なんの苦労もなく bullet で言う stepSimulation 叩くタイミング確認するだけなのにな
その辺が残念だ
今更ながら下記ブログ記事「UnityとUIKitの合成表示」を試しています。
ttp://radiumsoftware.tumblr.com/post/4306788939 記事中に「Unityの画面同期方式としてDisplayLinkを選択した場合、
インタラクション中に描画が止まる」とあり、まさにそのようになっているのですが、
DisplayLinkをオフにする方法が分かりません。
同期方式の設定欄がどこにあるのかすら分からないのですが、
どなたか教えて頂けませんか?
>>326 「画面同期方式」からQualitySettingsのVSyncCountの事かもしれないと予想
おまえらいい加減FPS依存やめろや
移動Pathの設定からなにから時間依存に変更しないとめんどくさいことこの上ないぞ
とメガドライブでPAL/Secam仕様の時の愚痴を述べる俺は老人
昔のゲームはPALバージョンだと少し遅くなってたよねw
フレームレート基準のやり方について書いといてなんだが
基本的に時間基準の方がいいよな、Unity自体が時間基準だし
まあ時間基準にしててもNTSCからPALにした時に繋がらなくなるコンボが出るとか聞いた事あるから
単に時間基準にしてれば全て解決ってわけでもないのだろうけど
>>367 >まあ時間基準にしててもNTSCからPALにした時に繋がらなくなるコンボが出るとか聞いた事あるから
それは時間基準のロジックが根本的に間違ってるんでしょw
60fpsか50fpsの違いでコンボが出なくなるなんて酷過ぎるw
うん、たぶん根本的に間違ってたんだろうな
おそらく入力の判定間隔が少し長くなったせいで1発目と2発目の攻撃間隔が少し長くなって
ぎりぎり当たってた2発目が当たらなくなったんだと思う
元を作ったのは別の会社でその海外版対応をしてたらしいんだが
その現象が起きるせいで各種コンボがそのまま繋がるかをチェックしてたみたい
大変そうだなぁと思いながら聞いてたけど
X座標の値だけを特定の値に指定したいんだけど、どうしたらいい?
どうしたらいいと思ってる?
まずは自分の考えを言ってみなよ
そうすればいろいろと見えてくるから
>>370 rigidbodyならconstraintsってのがある。
スクリプトからでもインスペクターからでも変えられる。
この場合「移動を制限」を英訳してぐぐればみつかったはず。
>>371 じゃあ言ってみるよ。
new Vector3(X座標に特定の値,Y座標に今の値,Z座標に今の値);
これをpositionなりにぶち込む。
でもなんだかYとZの値は変えないのにぶち込む処理をするのが無駄な気がしてる。
なんとかしたい。
でもXだけの値を参照する事はできても、Xだけの値を変更する事は微妙にできない気がするんだけど。
以前の値にXの値だけ増減させるってのならできるんだけどね。
>>372 Vextor3構造体のXだけいじれないってのがキモだけどなあ。できるのかな?
transform.position.xにそのまま数字なり変数なりぶちこめばいいんじゃね
こうじゃないの?
function Update () {
transform.position.x = 0;
}
まあC#で
void Update () {
transform.position.x = 0;
}
だとコンパイルエラーになるけどな
>>374-375 そう。C#だとそれだとエラーになる。参照してるだけとか言われる。どうしよう?
>>377 なぜC#でそれができないのか?
それはVector3がstructで、C#のstructは「値渡し」だからです。
transform.positionはVector3の参照ではなく、
値をコピーして返しているので、ダイレクトに中身の変更はできないのです。
なのでnew Vector3()で丸ごと変えるのが正解。
>>378 という事は俺は正解に不満をいだいていたのか。
でもインスペクタの値を変える方法があったような。
探ってみるかな。
>>290を考えるとC#の必要がないならJAVAで直代入の方が早いってことか
そういう話してると、またボトルネック厨が発狂しちゃうよw
>>378 >>379 別にメンバで Vector持っておいて、コピーしたらいいんじゃないの?
実際の挙動はイコール演算子の動作定義によるが
>>380 C#のクラスは参照渡しでしょうが
なので、Vectorが struct でなく class であれば無問題だけど、
本来 Vector みたいなデータ構造は、そのまま構造体でいいはずなので、
どっちかって言うと ref で渡せるメソッド経由が正解
作っててそんなこと疑問に思わなかったからなんだと思ったら
俺のプログラムはフレームで描画前の描画モデルの更新のときのみしか
ゲームオブジェクトへの値の更新は行ってないわ
ゲームオブジェクトへの値の更新が1フレに何度も行われるって設計がヘンテコなんじゃね?
>>383 キミが作ってるのはどんなゲームなんだ?確かに一度にすべきかもしれんがな。
↑
衝突とか一切ないゲームなの・・・?
>>385 描画前に一度しか値をセットしない?
初期値しかセットしてないって事?
もうちょっと正確に
Asset storeからゾンビのモデル落としてきたんだけど
これにモーション付けるにはどうしたらいいの?
やっぱUnity以外のソフトが必要?
>>388 基本的にはそう
まず3Dキャラクタのアニメーションって、どういう仕組みで動いて見えるかは、わかってるとすると、
そのモデルにまずボーンなりなんなりがあるか、とか
そのボーンを動かす為の回転情報を並べたキーフレームの情報はどうやって割り当てるか、とか考えて
やらせたい内容によって、コード書いて計算してやるとか、Unityのパネルからやるか、とか、
または別の統合系3DCGソフト使うか、とか、選択肢色々
ソフトに関しては、CG板とかの該当スレへ
>>385 だな。描画の前にまとめるべきだよな・・・
でもめんどくせえ。処理がバラバラwwでも動くwwwそもそも位置調整の間に結構その位置情報に基づいた処理が入るのでどうしても2回は位置移動が入ってしまうんだ。
ってか、同じフレームの間に結構動かないか?
>>389 なるほど。さすがにモーション付けの機能まではUnityにはついてないんだな
落としたモデルは、ボーンすら入ってないモデルだったから、簡単にはいかなさそうだ
>>391 ボーン情報無いとすると、3DCGソフトいるかな
Unityが便利に用意してるAPIを使わないで、力業でやればやれない事はないが、
それはそれで面白いかもしれないが、現実的じゃないかも
ソフトゲットしておくれ
位置は速度によってのみ更新されるように作れば良い。
>>393 そんな単純なゲームじゃないんだ。もう雑談スレでやろうぜ。
>>393 それで良いところなら良いが、
プレイヤーやNPCみたいに、処理で都度座標更新する事が多いでしょ
>>395 その話とこの話は関係ない・・・設計になっていないのがおかしい
>>395 速度や加速度で与えるべきでは?
というか何にしろ1フレーム中に値を直接何度も書き換えてるのはおかしい。
>>397 unityの仕様なんだよ。
1フレーム中に何度もモーションを描画したりしてるし。
難読化ツールに何を使ってますか?
>>400 業務開発でって事? 個人だと使ってる人いるんだろうか
どの道リファクタしたら終わりだしって話も
>>401 そうなんですよ
難読化は絶対やってくれっていわれてて
フリーの難読化ツール使ってみたのですが
使うと動かなくなってしまうという状態です
コードの難読化のため?
データの難読化のため?
両方でしょ。
うちはumac使ってるけど。
まぁ割れ使ってるデータなんて
そのまま表に出したらエライことになるからな
割れのデータって?
adobeとかこと?
あれ、ガセだって聞いたんだが...
407 :
368:2012/05/15(火) 12:28:28.64 ID:Cy9rqVY1
>>406 ステガノグラフ
で検索してみろ。
画像には様々な負荷情報が含まれる。
3Dソフトで作ったファイルにもビット単位でシリアル情報、IPなんかも入ってる。
ヘッダに入れてるんだ。
ステガノグラフがヘッダに入ってたらバレバレじゃん。
自己レスです
難読化はAssembly-CSharp.dllファイルを
このソフトを使用することで難読化できました。
Nandoku
http://uwa.potetihouse.com/soft/nandoku.html そのときにスクリプトがゲームオブジェクトに関連付けられているクラスやメソッド名は
難読化のときに変換してしまうと実行したときに動かなくなります。
具体的にはMonoBehaviourクラスを継承したクラスや
AwakeメソッドやUpdateメソッドを難読化してしまうと動かなくなってしまうので
上記のクラスやメソッドは除外して難読化するとちゃんと難読化しても動作しました。
AwakeやUpdateがprivateでも実装しなくても呼ばれたりするから
SendMessageとか使って呼ばれてるのかね
そして名前で呼ばれてるから難読化の名前変更されると動かなくなると勝手に予想
iOSのパブリッシュでエラーがいくつか出るけど、動作確認では問題ないように見える。これはほおっておいても大丈夫なのだろうか。
>>411 エラーの内容次第でしょw
うちは出ないしw
413 :
名前は開発中のものです。:2012/05/16(水) 20:59:17.06 ID:obxA2Hgh
レンダリングを行わず、前フレームの結果をそのまま表示する方法はありませんか?
あるフレームだけレンダリングを行わないようなことをやりたいのですが、
どの設定を変えればレンダリングされないようにするのかわかりません。
いい質問だなー
オフスクリーンバッファを… って書こうとして、最近 Unity捨て気味なので
出来ないかもしれないと思い出した
そこまでローレベルな操作は出来ないと思うに一票
CameraのtargetTextureにRenderTextureを設定して描画すれば
前のフレームの描画結果を後のフレームでも使えると思う
Cameraのenabledをfalseにすればレンダリングしないと思う
思うだけなら簡単
すまんな、今Pro版が手元になくてRenderTextureが試せないから思うって付けてたんだ
前に試した感じだとそれでできるハズ
>>417 そもそもレンダリングを行わせない方法は無理ですか?
Pro版が手元にないのでRenderTextureを試すことができないのですが、
仮に使えたとしてもtargetTextureで指定したものを描画すると思います。
可能であれば何かしらでレンダリングという処理自体をスキップさせたいなと。
>targetTextureで指定したものを描画すると思います。
targetTexture に、描画するだよな。 で、オフスクリーンのレンダ先である
RenderTexture にも、描画はさせたくないと。 画面に出ないだけでなく、処理自体をと。
422 :
417:2012/05/17(木) 18:01:10.88 ID:e2deK++y
>>420 描画してる状態でCameraのenabledをfalseにすると真っ黒になった
つまり勝手に画面はクリアされるから前フレームの結果すら描画しない
ってのは無理だと思う
描画のスキップ設定は見たことが無い
真っ暗になるくらいなら、真っ暗になる前のフレームを描画できない?
>>422 画面クリアって無効にできないっけ?
スカイボックスで塗りつぶすか、黒で塗りつぶすか?
ぐらいしか設定できないっけ?
425 :
422:2012/05/18(金) 08:17:40.96 ID:dUxS5lqW
>>424 うん、その設定を完全に忘れていたよ
思い出したから描画をスキップっぽい事できたけどアクセス規制で書き込みづらい
過疎ったな。
unityは現実見えて、ブームで終わるか。
プロ版を無料でバラ撒いて欲しい。
描画を派手にするのは役に立つけど
それ以外のロジックはなんも助けてくんねーしね
コリジョンも背伸びしないで球で判定したほうがよっぽど動作がよかったよ
ある程度ジャンルかシーンに特化しないとゲームエンジンって範囲が広すぎて役に立たないよね
質問です
SU3DJPFontを使って日本語を表示する所までは何とかなったのですが
長めの文章を1文字ずつ一定のスピードで表示していくのにつまづいています
何か参考になるページなどありませんでしょうか
理想はドラクエの会話やノベル物の文章表示のような感じです
他の処理はPlaymakerと2DToolkitを使っているので文章周りもそうしようかと思ったんですが
何か選択を間違ってる予感がして…他の人がどうしてるのか知りたいです
>>426 現実見えようがなんだろうが、iphoneとandroid対応してて安い3dゲームエンジンって他に選択肢が無い。
UDKはandroid非対応、UEのライセンス買わなきゃいかんし、
Shivaはまだまだって感じだし。(コンソール機対応見込むとこっちのほうが先あるかもしれないが...)
で、内製エンジンや内製フレームワークではないことによってできないことや苦手なことの認識差が抑えられる(ここ多分一番重要)
と、ステマでUDKの偽情報を流すのであった。
>>430 シンプルな2DゲーがiPhoneで10fpsしか出なかったぞw
使い物にならんわw
>>431 動くかどうかじゃなくて、ライセンスが提供されてないんだよ。
>>431 はいはい。
udn.epicgames.com/Three/DevelopmentKitFAQJP.html
>>432 じゃあUNITY制でiphoneで出てるシンプルな2Dゲーはなんなんです?
ああ、ネガキャンか。
巧みだなー。
わかったから、android対応のudkはどこだ
>>440 ならお前の言う嘘ってなんなんだよ
頭おかしいだろ
>>441 嘘っていうのは「UEのライセンス買わなきゃいかんし」ってとこ。
前半でUDKがAndroidで動かないという真実を言って、後半で高額なUE3ライセンスを買わなきゃいけないという嘘を織り交ぜることで、巧みなネガキャンをしてるな。と思っただけ。
>>442 お前が文盲なだけだろ
UEなしにAndroid向け開発をするって目的は達成できるの?できないんだろ?
>>443 プラグインでできるようになってるよ。
だからUE公式ではAndroidは非対応。
結構知らない人は多い。
他にレスみた人が誤解したら嫌だなと思ったなら自分で補足すればよい。
それもせずに嘘だステマだと喚いてるんだから、こいつはただ食ってかかりたいだけだろ。
>>444 それだと情報として不十分すぎて反応に困ると思う
ライセンス上どうなのかとか、誰がどこでリリースしてるのかとか
何このアスペ村
>>428 表示したい文字列全体のうち何文字目までを表示すべきかを文字表示を担っているUpdate()のなかに伝える手段を用意しておけばそれでいいじゃないの
豚切すみませんが質問です。
最近Unityの起動がやたらと遅いです。
空っぽに近いプロジェクトを開こうとしても、
インストールしてすぐの時よりも、今の方が時間がかかっている気がします。
キャッシュが溜まっているのかと思い、Unityフォルダ内を調べたのですが
これと思われる物がありませんでした。
エディタ上でRunさせる時や、素材インポートの速度も出来れば速めたいです。
パソコンを強化する以外で何か良い方法はありませんか?
Ver3.5.2f2、Pro版を使用しています。
>>428 たぶんこんな感じ?
var text : String = "abcdefghijklmnopqrstuvwxyz";
var time : float = 0;
var charTime : float = 0.1f;
function Update () {
guiText.text = text.Substring(0, Mathf.Min(text.length, time/charTime));
time += Time.deltaTime;
}
453 :
422:2012/05/21(月) 09:24:09.13 ID:I+tyOMbN
>>413 >>420 >>424 やっと書き込めるようになった
var drawCamera : Camera;
var pauseCamera : Camera;
Do();
function Do() {
pauseCamera.cullingMask = 0;
pauseCamera.clearFlags = CameraClearFlags.Nothing;
drawCamera.enabled = false;
while (true) {
pauseCamera.enabled = drawCamera.enabled;
drawCamera.enabled = !drawCamera.enabled;
yield WaitForSeconds(1);
}
}
これで描画スキップっぽくなった
C#って「#ifdef」みたいなのある?
プラットフォームがWindowsならこのコード、
Androidならこのコード、って感じで分けたいんだが。
C#のプリプロセッサは、値の定義と評価は出来るけど、引数を取るマクロは使えないんだよな
458 :
名前は開発中のものです。:2012/05/23(水) 13:47:14.83 ID:ZDAo3J9p
UDKって何?
Unityでコンパイル定数の定義はどうすればいい?
Build SettingのDevelopment Buildで"DEVELOPMENT_BUILD"が
オンオフされるのは知っているが、もっと細かく自分で制御したいんだ。
全ソースの先頭でdefineするのは流石に格好悪いし・・・
463 :
460:2012/05/23(水) 19:24:41.88 ID:lCdZG/h+
>>461 >>462 ありがとう。462の方法で上手くいったよ。
エディタで起動した場合はsmcs.rspの変更が反映されない問題があるが
macからXcodeプロジェクトを吐く時には大丈夫そうだった。
ちなみにUnityのバージョンは3.4.2f2を使ってる。
プレハブを動的に作成したいと思っています。
ただ、プレハブを事前にResourcesフォルダに入れておくのではなく、
実行時にサーバからプレハブをダウンロードし追加という形を考えています。
Resources.Loadでは事前に追加でないとダメでした。
何か上手に実装する方法はないでしょうか?
>>465 有り難うございます。
AssetBundleですか、見た感じやりたいことが出来そうなので挑戦してみます!
AudioSource1つだけで複数の音を同時に鳴らす事は可能?
無理
複数の異なる音=複数のAudioのSourceが鳴っている状態
名前通りそのまま
AudioSourceで音がなり終える前にAudioClipを差し替えるとどうなるの?
GameObjectを配置する際に、インスペクタの値を自動で入れさせる方法ってありますでしょうか?
経路探索のノード用オブジェクトをマップにたくさん配置したいんですが、
そのノードと繋がる別ノードを手動でインスペクタから登録するのは面倒くさいので、自動でやらせたいんですが・・
>>472 インスペクタの項目って、GUI上はああ見えてるけど、実態はメンバとして触れるがな
てか、経路探索ロジック用なのに、ビジュアルに配置する必要があるの?
そうでないなら、普通はコード上に論理データとして持つと思うが…
ただ、マップ構造を計算して作ってないなら、位置確定しづらいから、GUI経由して配置したくはなると思うが
474 :
472:2012/05/26(土) 14:24:55.72 ID:MKcIfn2N
475 :
名前は開発中のものです。:2012/05/26(土) 15:45:49.49 ID:XJ0Slss7
Spaceボタンと方向キー2つを、3つ以上同時に押したままのものが検知できないんだが、
みんなできる?
別のキーならOKなんだが、
例えばスペースキーをジャンプに割り当てた時、
斜めに移動しながらジャンプするということができない
どうすればいい?ジャンプの割り当てキー変えないといけないのかな?
キーボードは、ハード的に同時押し二つまで
キーボードのハードの都合で同時押しが効くボタンと効かないボタンってあったよねたしか
昔はプログラムの授業で仕組みを語ってくれる先生がいた
いまはそんなこと知らん先生のが多いだろうけどね
478 :
名前は開発中のものです。:2012/05/26(土) 20:46:00.44 ID:4xMmuy1l
ハードの都合っていうよりただのコストダウンだろ
昔の日本製PCはそんなことなかったしな。
>>475 ゲームにスペースキーは使っちゃダメ。
ShiftやCtrlなら3つ同時もおk。
PC/AT時代からの制限。
ゲーム用のメカニカルかリアフォとか買え
腱鞘炎になるぞ
>>478 なんでコストダウンなんだよ。仕様の話だろうが。
昔のとか言い出すならご存知のはずだが、その昔の日本製PCでも、
内部がパラレル接続の物と、シリアル接続の物があっただろうが。
SHARPのMZ700とかはパラレルで、X1とかはシリアルだ。さらに言えば 富士通のFM7なんてもっと特殊だ
482 :
名前は開発中のものです。:2012/05/27(日) 12:42:43.12 ID:RZchP6w9
俺のキーボード
文字キーなら4つまで認識してるけど
SPACE,CTRL,SHIFTもいれたら同時に7つまで認識してる
幅広く遊んでもらうならキーボード買うんじゃなくてキー配置を制作者が工夫しなきゃな
スティックを倒した方向にキャラの腕が向けられるような動きはどうすればいいんでしょうか
ボーンをスクリプトで直接角度指定すればよさそうなんですが上手くいきません
iosアプリを作っているんですけど、
unityで、スクリーンショット時にiphoneがサウンドスイッチが
オフになってても音を鳴らす事って出来ますか?
こういうエラーが出て上手く動きません
you probably need to reassign the idleAnimation variable of the 'CharacterWalk' script in the inspector
>>488 何をどうしたらそのエラーが出たのかとか、その辺何も書かないで聞くと問題外だと思うが、
そのメッセージに出てる変数や内容は確認したの?
\ _
r-''ニl::::/,ニ二 ーー-- __
Unityがしゃべった!! .,/: :// o l !/ /o l.}: : : : : : :`:ヽ 、
/:,.-ーl { ゙-"ノノl l. ゙ ‐゙ノノ,,,_: : : : : : : : : :ヽ、
ゝ、,,ヽ /;;;;;;;;;;リ゙‐'ー=" _゛ =、: : : : : : : :ヽ、
/ _________`゙ `'-- ヾ_____--⌒ `-: : : : : : : :
...-''"│ ∧ .ヽ. ________ / ____ ---‐‐‐ーー \: : : : :
! / .ヽ ゙,ゝ、 / ________rー''" ̄''ー、 `、: : :
.l./ V `'''ー-、__/__r-‐''"゛  ̄ ̄ \ ゙l: : :
l .,.. -、、 _ ‐''''''''-、 l !: :
| / .| .! `'、 | l: :
l | .l,,ノ | ! !: :
/ '゙‐'''''ヽ、 .,,,.. -''''''''^^'''-、/ l !: :
r―- ..__l___ `´ l / /: :
なんだこの茶番www
>>485 「ボーンをスクリプトで直接角度指定」で合ってるはずなんだけどな
肩とかの制御したいノードになってるGameObjectの
transform.localRotationを書き換えれば制御できる
ただしアニメーションが流れてる場合Updateで書き換えてもアニメーションの値で上書かれるけど
Unityで3Dモデルの頂点モーフアニメってできないでしょうか?
何かプラグインとか…
表情モーフすでにいっぱいつくってしまったので涙目
>>490 you probably need to reassign the idleAnimation variable of the 'CharacterWalk' script in the inspector
恐らく「CharacterWalk」のidleAnimation変数に検査官の中のスクリプトを再び委託する必要があります。
日本語でおk
Unityで作ったスマホアプリから、外部のDBに接続したりできますか?
何かできなさそうな雰囲気がするんですけど・・
諦めるな!!!
そもそも直接外部にアクセスするなよw
webサーバ間にはさめ
>>499 「直接」とは言ってないのでは?
webサービスを通してでも接続出来るのかどうかという質問かと。
答えは「可能」。
>>495 まあそうなるだけだなそのエラーメッセージからじゃ
CharacterWalkスクリプトのidleAnimation変数がおかしいんだろうとしかわからん
>>489が言ってる通りエラーメッセージ貼り付けるだけじゃ答えようが無い
同じエラー出した事あるヤツなら答えられるかもしれんが
自分はそんなエラー出した事無いし
>>500 それじゃdbへ接続なんてしてないし
ウェブからデータとってこれますか?と質問するだろ
リモートjdbcとかじゃねえの?
>>472 サンプルっぽいの
[piyo.js]
var list : piyo[];
function OnDrawGizmos () {
Gizmos.DrawWireSphere(transform.position, 1);
if (list) {
for (node in list) {
if (node) {
Gizmos.DrawLine(transform.position, node.transform.position);
}
}
}
}
[hoge.js]
@CustomEditor (piyo)
class hoge extends Editor {
function OnInspectorGUI () {
var node : piyo = target as piyo;
DrawDefaultInspector();
if (GUILayout.Button("Create Child")) {
var newNode : piyo = GameObject(target.name+"+").AddComponent.<piyo>();
newNode.transform.position = node.transform.position + Vector3(3, 0, 0);
newNode.list = Array([node]);
var tempArr : Array = Array(node.list);
tempArr.Push(newNode);
node.list = tempArr;
}
}
}
>>494 Asset Storeに幾つかありますよ
MegaFiersとかSpeecher(高いけどw)
Blend Shepers Toolが一番安いね、後はWikiでFreeを参考にして
自作するかですね
>>468 >>469 情弱乙!
PlayOneShot関数を使えば一つのAudioSourceだけで
複数の音を同時に鳴らせる。
>>505 一つのソースで、複数種類の音鳴らせるのか。驚いた
>>504 ありがとうございます!
Blend Shepers Toolが安くてよさそう
508 :
472:2012/05/29(火) 23:55:01.76 ID:zMjiJmef
>>503 わざわざソースまで書いていただきありがとうございます。
スクリプトで普通にInspectorで設定した値を変えられるとは思ってなかったので。。
エディタの拡張も勉強になりました。こんな簡単に出来る物だとは思ってなかったです。
ご迷惑おかけしました。
UnityとBlenderで開発をしています。
Blenderで作ったモデルデータ、アニメーションデータをPrefabとしてプロジェクトに取り込んで利用していますが、
Unityのスクリプトでそれらに変化を加える というような機能を実現したいときに利用できるコンポーネントなどはありますでしょうか。
例えば、人間の雛形のようなものをBlenderで作成し、
Unityのスクリプト上で「腕力」の変数によって腕の部分の太さだけ変えたり、
「人種」の変数によって肌の部分のマテリアルを変更するなどです。
大きさを変えたくてTranceformを触ってみましたが、一部だけ変えるのは難しそうです。
また、Blender側である種の設定が必要な可能性もあると思いますので
そちらについてもお分かりになるならば教えていただけるとありがたいです。
よろしくお願いいたします。
スクリプトはC#でやっています
ボーンをスクリプトでいじればできるけど、
継ぎ目が汚くなる。
だから実質無理だな。
そうならない様に3Dソフトで調整した範囲でいじらせるしかない。
ボーンを上手くBlenderのほうで作っておけばできなくもないということでしょうか
ボーンをいじるコンポーネントみたいなのはあるんですね
公式を調べればわかるものなら、名前だけでも教えていただけるとありがたいです
あーそれともUnityのアニメーションビューでいじれってことなのでしょうか
モデルのウェイト調整はかなり精密にやらないといけない。
ユニティでそれやるのはできたとしてもかなり徒労になる。
3Dソフトで調整して、許せる範囲でユニティでいじれる様にふればいいよ。
3Dソフト側での調整っていうのを自分がまったくわかってないのが問題のようですね。
何か手法など具体的な名前とかありましたら教えていただけると助かります。
だからウェイト調整だよ。
これをやればユニティでボーン単位で操作しても形が破綻しない。
ありがとうございます
調べてみます
こういうのってとっかかりがないと結構行き詰ることが多いので助かります
>>505 もうクラス名と役割が意味不明だなw
後で動作変わりそうで怖い
かっちょ悪いから修正しそうな予感
つか、こういうライブラリ見るたびに思うんだけど
なんで単にロードしておいた音を鳴らすだけの仕組みがねぇの?って思う
AudioClipとAudioSourceとかUnity使ってほしい人が対象とはとても思えない
AudioSourceだけでいいだろと
面倒臭ぇからいっつもラッパー作るハメになる
決まって同じ仕様
ロード時にハンドル確保してハンドル指定で音が再生できるラッパ
そのくせやたら凝ってる風でいて曲や音のクロスフェードなんかはちっともできない
今後もどうせできる予定ないんだから割り切って作れよセンス悪いなぁ
その話題は数スレ前でもループしてたな。
同じ奴かよ。
ラッパーのような愚痴だ
>>518 AudioClipがまんまハンドルじゃん。
そういえば福岡の彼っていまだに無職なのかな?
>>521 馬鹿
Clipに用がある奴なんて世界中探してもいねぇよ
そいつ鳴らすと前にSourceで鳴ってた音が止まる
>>523 PlayOneShot知らない情弱は市ね
> そういえば福岡の彼っていまだに無職なのかな?
それってこの間ニコ生やってたアイツのこと?
どのみち性格に難有りってことで候補から外されてたじゃん。
いやむしろダメな人かな…
思わず書き込んじゃったけど、
そもそもここでは出てなかった話題のはずなんでよく分からん。
いろいろ開いてたせいで最初気付かんかったスマソ。
528 :
509:2012/06/01(金) 23:35:09.76 ID:E3gyJsYL
その後いろいろ調べまして、
自分の考える機能は
複数のモーフィングを適用することで実現できることがわかりました。
UnityではBlenderのShapeKeyを複数同時に適用するには
MegaFireというAssetをStoreから買う必要があるとのことでしたので
150$と割高でしたが
円高なので思い切って買ってみました
楽をしてるとはいえ、Unityって結構お金掛かりそうですね・・・w
質問です。
日本語で表記されたボーンが存在する.blendファイルをUnityに読み込ませると、
Unity側のボーン部分が文字化け(空欄?)になってしまうのですが、
対処する方法はありますでしょうか。
アルファベットに直す。
SketchUpから3Dモデル吐き出してるんだけど、テクスチャが貼られない事が多くて困ってる
自分なりにwebで調べて、以下の手順でやってるんだが上手くいく時といかん時がある
1.Sketchupからdaeでエクスポート
(オプションは両面、三角形化、階層、テクスチャマップエクスポートにチェック)
2.FBXConverterでfbxにコンバート
(オプションはembed mediaにチェック)
3.Unityのプロジェクトビューにドラッグ&ドロップ
4.ImportSettingのGenerateCollidersにチェック、Normals&TriangleのNormalsをCalculateに変更
って感じでやってるんだけど、他に注意点とかあったら教えろください
おかしい時も、テクスチャは微妙に反映してて、テクスチャに差し替えるとオブジェクトの色味が変わったりしてる。
(例えばレンガのテクスチャだと、テクスチャ貼られてなくても、全体的に赤っぽい)
>>532 そのデータメチャクチャだから。効率も悪いし。細長いテクスチャとか平気で貼ってあるし。
直す事考えたらイチから作ったほうが良いよ。少なくともコンバートだけではダメだね。3dソフトを経由してデータをチェックしたほうが言い。
マテリアルも多いし、ドローコールがえらいことになるから。
>>532 >>533 も言ってるが、手順や「やり方」レベルの確認じゃなくて、出来上がるデータ内容が一番大事なので (主に処理効率の観点)
モデルがどういう状態になってるか確認した方が良いよ。 そこにある手順だけでも不安になる要素沢山ある訳だし。
元のモデルデータ自体に、マテリアルの跨ぎやUVのアイランド化があるかとか、そもそもエクスポータやコンバータは
どんな内容にしてくちゃうとか… ゲームみたいなリアルタイムアプリケーションで使う前提でなく、デザイナが好きに作ってる物を
持って来ようとしてる時点で、それを利用するプログラマ的には、真っ先に内容を不安にならないといけない
アレでしょ?ネットで無料で公開されてるやつでしょ?
SUから持ってきたデータなんて使い物になるわけ無いじゃん…
536 :
532:2012/06/02(土) 15:51:53.37 ID:+1sw5u7k
>>533 >>534 >>535 いや、データは自分で作ったデータなんだわ
四角いブロックとかおもちゃの自動車みたいな簡単なモデルだと成功するんだが
複雑な建物作ると、すぐテクスチャがわけわかんなくなる・・
おかしなをモデルを自分で造っちゃってるんだろうなー
とりあえずモデリングを1からやり直してみるよ。レス感謝!
想像以上に低レベルだった。
質問スレでそういう煽りはいいって
モデリングやり直したってSketchupじゃ意味ない。
総合スレで相も変わらず質問繰り返すやつもいるしな
最初はちゃんと使い分けできてたのにね
>>532 SketchUcationにある、OBJexpoterはお使いですか?
(Unity Community Wikiで紹介されてますが)
うまくいくか判りませんが
使ったことなければ、一度試してみてわ
ネットワーク対戦ゲームの基本概念を教えてください。
たぶんこのような過程があると思うのですがよくわかりません。
@同じゲームを起動してる人を探す。
Aデータを交換する相手のアドレスを取得する。
Bそこにパケットでまとめたものを贈りつける。
RPCってやつでやりとりするのでしょうか?相手のIPアドレスを取得してパケットを贈りつければいいのでしょうか?
質問です
kinematicな剛体の板の上に、kinematicでない通常の剛体が乗っかっているとします。
そのときに下の剛体を左右に動かしても、上に接地している剛体はほとんど引っ張られません。
これを引っ張られる挙動を実現したい場合、スクリプトを書く他仕方ありませんか?
>>542 そこに書いてる内容(誤解も含んでる)以上の話をレスで説明させる?
Unityと無関係に、ネットワーク利用したプログラミングそのものを、
まず勉強しておくれ。
そしてそれより前に、まずネットワークそのものについて、先に勉強しておくれ。
じゃないとなにも出来ない。真面目な話。
そしてそれらが当たり前にわかってる前提で、その次にさて、今度は集中型サーバ構成で多数のユーザを非同期に連動するには、とか
逆に同期するには、とか、そもそも最初にマッチングサーバ構築してクライアントtoクライアント(P2Pなど)にするには、とか
不意のエラー時のフローはとか、応用編(ゲームなど)の話になって、
で、じゃあそれをUnity環境で実現するにはって話になるので、
大前提の大前提がわからない状態だと、無理
uowaaaaaa
>>544 ありがとうございます
とりあえず今回のケースではスクリプトでなんとかなりました
ネットワークゲームの難しさって
まずゲームの作り方を知ってることと
何のデータをいつどんな頻度で送信するか?ってのを自分で決めなくちゃならないことだよね
これは作るゲームによって違うのでちゃんと自分で考えないといけない
他人に聞いても絶対答えなんて返ってこない部分
定石もない
なのでまずガッツリプログラムが組めることってのが条件になる
毎日プログラム漬けで経験5〜10年は必要
昔、ネトゲーを作る技術が無い会社が通信エンジンを採用して作る
時期があったけど、サーバが不安定で1年もたない所が多かったな。
通信自体よりも、データやゲームロジックの方で不具合が出るんだよ。
で?
>>552 基本的な事知らなかったら、そもそもサンプル見ても意味わからんと思うが
さすがに自力で勉強しろよ
ネットワークを1から10まで教えるなんて金取れるレベルだろ
UNITYの本にUNITYコミュニティは某掲示板のような攻撃的な回答者はおらず
親切な人ばかりです と書いてあったが、ここは某掲示板だったか
攻撃的じゃなくて、当たり前の指摘が並んでるだけ
そのレスが既に攻撃的なんだよなぁ
本当、どうにかしてるぜ
被害妄想乙
甘ったれんのもいい加減にしろ
ID:EdONZZcA
↑
本日のゴミクズ
能力が低いんだから回答者ヅラしてねーで消えろ
>>560 発狂してないでそこに書いてある内容ちゃんと読んでみろよ頭悪い坊や
ネットワークの基礎がわからない人間に理解できると思うの?どうなの?ん?
自分が気に入らないからって、妄想で人格批判したあげく、
ごく当たり前な話をしてる人間をゴミクズだって?
帰っていいよ君。大人になっても、こっちの業界に来ないでね
ID:Mi3lsy6/
↑
本日のゴミクズ
ここが2chということも忘れて回答をクレクレしてねーで消えろ
>>561-562 言い返せないので火病ったね
回答者はおまえみたいなゴミ求めてねーの
能力が低く
嘘しかつけず
自尊心だけ無駄に高い
ゴミ=おまえに需要はねーんだから、ツイッターで不気味な独り言でも言ってろw
例えば
>>537みたいな質問者を煽ったり馬鹿にするレスはノーセンキューで間違いない
でも
>>542に付いているレスを攻撃的と捉えるのは無理があるだろう
答えれる範囲内で答えているだけ
難しい話程、質問者は具体的に書くべきであって
質問スレでも抽象的な質問や自分で考えたように見えない質問はレスが付かないもの
逆に具体的な質問であっても、難易度が高い場合や説明量が多い質問はスルーされることはある
本件の場合はID:Mi3lsy6/が他の回答者を煽る意味はないし、参考になる話があったのなら、あったよ!と置いていってあげればいいだけ
攻撃的なのは
>>559の方では?
質問スレで煽るバカは叩き出していいとして
回答はボランティアだから、質問に必ず回答する義務はないし、回答内容にクオリティの保証もいらない
だからこそ質問者は気軽に質問ができる
クオリティを保ちたいと思うのならば、ID:Mi3lsy6/がこれから出てくる質問を全レスするしかないだろう
全レスとまでは行かなくても、クオリティが足りないと思ったら補足するとか
そこまで質問スレに思い入れがあるのなら、そうしてくれてもいいけど、もっと気軽に構えた方がいいのでは?
触ったら負けのレベル
また日系来てるのか。
>>563 それ、丸々そっくりお前の事だよ
そして何より一番攻撃的だ
完全なキチガイ
なんかスレが伸びてると思ったら。
>>568 こいつ一時間粘着して煽りレスかよ
しかも業界人アピールしてるしキモすぎワロタw
>>553 まあ本当に基本的な事知らなかったら意味わからんかも
でもこのサンプルのここが分からんって質問なら答えやすいからさ
自分はこの辺の動画で解説してるのとかも見てた
ttp://www.youtube.com/watch?v=1YS8BDjFvIs >>555 コミュニティってFacebookのUnityユーザー助け合い所かと思った
あっちは親切な人多いよ、ちゃんとしたレスを望むならあっちで聞いてみるのもいい
それでもスルーされてる質問がないわけではないけど
あと自分の英語力だとそのままだと読めないんで翻訳かけて
>>559の先見たんだけど
いいチュートリアル無い?>この辺とプラグイン>無料がいいんだ>無料のいいチュートリアルなんて無い>無料の動画チュートリアル発見、これでやってみる>あと実装について注意点
って感じの流れなのかな
Skyboxの作り方って、もとの画像は当然あるものみたいに
書かれてるとこばかりなのですがどっから得る(というか作る)んでしょうか?
GUISkinの使い方がどうしても分かりません。
やりたいことは作成したGUIのフォントサイズや色を変えたいのですが、
ttp://unity3d.com/support/documentation/Components/class-GUISkin.html に書かれている、GUISkinを作成しtextfieldのactiveの色とついでにbuttonの色を変更、
「Applying GUISkins」の下のサンプルコピーして実行しても文字は違う見た目の同じボタンが二つ出るだけです。
他にも色々GUISikinについて書かれているサイトを見たのですが、
「var customSkin : GUISkin;」の宣言と、「GUI.skin = customSkin;」の意味がどうしても分かりません。
「GUI.skin = customSkin;」はGUIクラスのskinにcustomSkin変数の中身を入れている。ということでしょうが、
customSkin変数は宣言しただけでどのタイミングで中身を入れているのでしょうか。
「var customSkin : GUISkin;」は宣言しているだけにしか見えませんし、どこのサイトを見ても変数名が違うだけで、「: GUISkin;」の部分は一緒です。
何らかの方法で変数「customSkin 」に作成したProjectのGUISkin(New GUISkinなどを)指定しなければならないと思うのですが。
すいませんがヒントなどよろしくお願いします。
クラス内で宣言したクラス等のオブジェクトはInspectorで指定できる
スクリプトを空のGameObjectに付けていたら、そのGameObjectのInspectorのScriptの欄に「GUISkin」があるはず
サンプル見てないので、指定して動くかどうかは分からん
ありがとうございます。おかげで出来ました。
外部から指定するようなイメージですね。
これで今日はよく寝れそうです。
578 :
sage:2012/06/07(木) 18:59:13.93 ID:iHNmflor
スクリプトからAudioClipを指定して取得する方法ないかな?
ネットや本を漁ってもインスペクタから放り込む方法しか見つからなかった。
Resources.Load("hoge" , AudioClip);
で放り込めませんか?
>>579 おおう、できました。
ほかの悩みもついででまとめてなんとかできそうです。
ありがとうございます。
>>579 この関数っていかにも「ファイルからメモリにロードします」って
印象与えるけど、Resourceフォルダ内のアセットは
最初から全部メモリに読み込まれてるらしいね。
なんか騙されたみたいで悔しい。
>>581 一部のデータはResourceからstaic変数に入れてるけど、入れる必要ないってことになるかな?
毎回この関数を呼ぶと記載が面倒になるからやらないけど
それって、でかいゲーム作るとメモリ不足で不安定になるってことか?
PCは問題無いけど、iPhoneでは結構重要ポイント。
Resoucesフォルダはあまり使わない方がいい。
今までFlashで作ってたような色々動く感じのホームページを
Unityで作ってみた人って居ないですかね…
比較してどうだったとかやめといた方がいいとかあったらお聞きしたいんですが。
今の所
・初回にプレイヤーの読み込みが割と長めなのが気になるような許容範囲なような…
・でもPlaymakerとか各種Asset使えばかなり早く良い感じに仕上がるので
出来ればUnity一本で組めるようになりたい
そんな感じです
Unityはそういう用途で作られてないでしょ。
不安定なPCで観覧すると、下手すると落ちることも。
UnityでScaleform使ってFlashの代わりにするんですね。
分かります。
scaleform待ちの人ずっと前からいるよね。
ほとんどできてあとはscaleformだけってかいてあったと思うけど待つ時間が無駄じゃない?
そんなにscaleformいいの?
おそらくほぼscaleformのデータをどうやって作って費用がいくらかかるか知ってないと思う
みんな知らないだろ?
もしかしてScaleformの実体がflashだって事すら知られてない?
いや、金の方
たまに家庭用機で見かけるscaleformも実質flashなの?よくわかりません
そりゃやってる事はflashとかわらんだろ。
多少結果が違っても出来てくるものは同じだ。
function OnGUI () {
GUI.skin = null;
if (GUI.Button
(Rect (0,0,100,100),"確認")) {
}
}
としているのですが、ボタンがデフォルトではなく画像つきのものが出てくるようになりました。
他のGUIで「Resources.Load("")」で使うように、Resourcesに画像を入れて適当に使っていたところ、いつの間にか上記ボタンの画像が変化してしまった形です。
ためしに、その画像名を適当に変えると、その画像でもデフォルトでもなくボタンの画像自体が出なくなりました。
となると、名前が変わったことにより他のGUI「Resources.Load("")」が失敗して、上記のOnGUIに影響が出ているとしても
そもそも直前にGUI.skin = null;しているので他のクラスが成功していようか失敗していようが、糞も関係無いと思うのですが、実際にこのような動作をしてしまいます。
何か原因や当たりのつけ方がわかる方、教えてください。
GUI.skin = null;
ってのはnullを設定された場合に使われるデフォルトのGUISkinに戻すだけだから
そのデフォルトを書き換えちゃってるんじゃないかな
以下、その現象を起こすようなコード
piyo.js
var overrideStyle : GUIStyle;
function OnGUI () {
GUI.skin = null;
var defaultSkin : GUISkin = GUI.skin;
defaultSkin.button = overrideStyle;
}
hoge.js
function OnGUI () {
GUI.skin = null;
GUILayout.Button("ttt");
}
>>591 データをadobe flashで作成できるだけで、実体はflashじゃないだろ
開発はautodeskなんだし
Macに関する知識ほぼ0で、これからUnityの勉強始めようかと思ってるんですが、
ObjectiveCの勉強って必要でしょうか?
>>598 いらない。その為のUnity。
その代わりC#や.NETの勉強は必要になるけど。
スクリプトを使って、文字列を数式にする方法ってありますか?
"1 + 2 * 3" みたいな文字列(内容はその都度変わる)を
数式に変換して計算結果を出したいのですが……
Javascriptだと「eval」というものがあるらしいのですが、
Unityでの使い方がよく分かりませんでした。
PC(Win&Mac)、iOS、Android全てで使える方法だと大変助かります。
>>591 ありがとう。GUIに設定したスキンは他のクラスでも共通なんですね。
とすると例えばGUIの複数のボタンで、それぞれ異なるスキンを使いたい場合、
それが異なるクラスであっても、ONGUIの中で毎回GUIにスキンを設定して、それからGUIの作成となるのでしょうか。
普通に?考えればONGUIを持ってるクラスか、ボタンごとにスキンを設定できたほうが便利ですし、
毎回読み込むとなると、少なからずコストがかかってしまう気がするのですが。
>>601 普通にLLパーサ書いて式をツリーで表すか
数値、演算子、括弧だけ識別してRPN(スタック計算)で算出
後者は昔のプログラムの教本レベルだし。
606 :
名前は開発中のものです。:2012/06/14(木) 07:47:56.51 ID:zJuR+2f/
静止しているCubeにむかって物体を移動させ、しばらくぶつけ続けるとけると、
Cubeをすり抜け、中に入っちゃうんですがこれって仕様?
しかも物体の中に入っちゃったらその段階でも物理演算が有効になってるから
身動き取れない状態になる
なんか特別な解決方法ってあるんですかね?
ない。ゲーム作りはあきらめよう。
>>606 ・当たったときの反動を強くする
・当たり判定を、小刻みタイプか直線補間タイプか、何種類か選べるので、
切り替えて試す
・物理演算のステップを細かくする
・入力による移動方向のベクトルで移動の前に障害物ズとヒット判定を行って
当たってたらそっちの方向に動かさない
・あきらめる
>>602 ぱっと考えたサンプル、NewSceneしてMainCameraにtest.jsを付けたら動くハズ
btn.js
var rect : Rect;
var text : String;
btn_draw.js
function OnGUI () {
var temp : GUISkin = GUI.skin; GUI.skin = skin;
for (var b : btn in btnList)
if (GUI.Button(b.rect, b.text)) b.SendMessage("func", null, SendMessageOptions.DontRequireReceiver);
GUI.skin = temp;
}
log_name.js
function func () { Debug.Log(name); }
test.js
var skin : GUISkin;
function Start () {
var list : btn_draw = GameObject("btn_draw").AddComponent(btn_draw);
list.skin = skin;
var btns : btn[] = new btn[10];
for (var i : int = 0; i < 10; ++i) {
btns[i] = GameObject("btn"+i).AddComponent(btn);
btns[i].gameObject.AddComponent(log_name);
btns[i].text = btns[i].name; btns[i].rect = Rect(0,i*50,100,50);
}
list.btnList = btns;
}
>>602 コストに関しては毎回読み込まれないと思う
最初から読み込まれてるか初回使用時に読み込まれるか
GUI.skinの変更はシャローコピーだろうからあまり気にしない
あとbtn_draw.jsに↓を書き忘れてた
var btnList : btn[];
var skin : GUISkin;
btnListはListとかにしたら追加・削除がしやすいかも
>>603-604 調べてみたら非常にシンプルに解決することが出来ました。
教えて頂きありがとうございます!
スゴイうんちしたいんだけどこれって既出?
ここは「うんちー質問スレッド」じゃないよ、よく見て
うにty
うんち
似てなくもない
>>612 うんこはまだ腸にある。既出ではないはず。
だれうま
カメラに適当にスクリプトをつけて、そのスクリプトで
var cube : GameObject;をクラス外に宣言して、
inspecterからcube にprojectの適当なオブジェクトを選択。
それでカメラのスクリプトのstartで以下の文でcubeのインスタンスを生成。
Instantiate(cube, Vector3 (0, 0, 0), Quaternion.identity);
あとはhierarchyに適当なオブジェクトを作って、それにスクリプトを設定、
中身はUpdateで前に進む処理を書いてcubeのインスタンスに進んだらぶつかるようにして画面に置いて、
OnCollisionEnterにDebug.Log(collision.gameObject.tag);を書いて、何かぶつかったらそれのタグをログに出すようにしました。
これで、作成したインスタンスに動的にタグを設定したいのですが、
インスタンス生成前にcube.tag = "Finish";としてもログで確認できるタグは初期値の"Untagged"が帰ってきます。
ためしにcube = Instantiate(cube, Vector3 (0, 0, 0), Quaternion.identity);
でインスタンス生成後の戻りを付けとって、それにcube.tag = "Finish"をしても同様に"Untagged"が帰ってきます。
ログが出ていると言うことはオブジェクト同士がぶつかっている(見た目にもぶつかっている)はずなので
タグの設定方法が悪いと思うのですが、どのように書けばtagを設定できるのでしょうか。
長えしまとまってない文だな。
やり直し。
>>617 GameObject go = Instantiate(cube, Vector3 (0, 0, 0), Quaternion.identity);
go.tag = "Finish";
おおう、その書き方で出来ました。
インスタンス生成前にcubeの属性を変えておくわけでもなく、
GameObject型のcubeを使いまわしても駄目で、新たに宣言する必要が有ると。
しかし、どうしてこれで出来るのかわかりません。
そこで変数を宣言してもここで言えばStartが終わった時点でGameObjectのgoが破棄されてしまうと思うのですが。
これってunity特有の作法なのでしょうか、それともjavascriptの作用なのでしょうか。
インスタンスを作った時点で3D空間にオブジェクトが出来て、goはその属性を操作する一時的な変数とでも解釈すればよいのでしょうか。
>>620 Instantiateされたオブジェクトは、Destroy関数で破棄されるまで消えないよ。
goは単なるオブジェクトのハンドル。
Cで言うところのポインターや参照と同じ。
Unity3.5Proから4.0Proにアップデートするのに別途お金はかかりますか?
今UnityのProを買おうと考えているのですが、4.0が出るまで待ったほうが良いのでしょうか
今Unity4.0を予約すると200$のクーポンがもらえると聞きましたが、どうなのでしょうか
よろしくお願いします。
>>622 それはここじゃなくてベンダに聞くべきかも
それか、なんかアナウンスあれば見るとか
>>622 メジャーアップデートはお金かかるよ。
もちろん普通に買うより全然安いけど。
今から買うなら4でしょ、やっぱり。
ありがとうございます。
今公式から買おうとするとすでに4.0になってました。
クーポンもつくらしいので買おうと思います。
アップグレードディスカウントはない。
そのかわり200$のクーポンがあるよ、って書いてあるな。
ってことはたったの1300ドルで実質買えてしまうわけか。
10万円ほどだな。
安っ!
>>621 ありがとうございます。
ポインタだと考えれば納得です。
>>626 げ、2.xから3.xは半額くらいだったのに
ちとたけぇ orz
>>629 C#ではclassオブジェクトは全部参照扱い、
structオブジェクトは全部値扱いって決まりがある。
これ意識してないとたまにハマる。
632 :
名前は開発中のものです。:2012/06/20(水) 15:00:12.28 ID:dyFAPPaq
androidのsplash imageが上手くスケーリングされないのですが、何か上手い方法はないでしょうか?
ロゴ的な画像をのせるにしても背景の色を黒以外にかえたいのですが。。。
633 :
名前は開発中のものです。:2012/06/20(水) 20:36:02.43 ID:9hegGRF0
Unityって2次元配列とかできないの?
var array : Array = new Array(10);
array[0] = new Array(10);
array[0][0] = 1; ←でエラーがでよる
これって仕様?
>>633 それUnityじゃなくてJavaScriptの言語仕様の話
C#で書けばおk。どっちもコンパイルされたら同じだから
あ、ごめんちゃんと見てなかった
Arrayオブジェクトの中にArrayオブジェクト放り込んだ後か
JavaScriptにはC系言語にあるような配列自体がそもそもない=動的リストオブジェクトしかない、けど
そのコード内容なら、本当はエラーでないはず
外側のオブジェクトはArrayとして認識されてるけど、
要素については型が明示されてないから、それでダメとか言われてるんだろうか
普通ありえないが…
636 :
名前は開発中のものです。:2012/06/21(木) 00:17:11.06 ID:WjH1iTVx
次のアップデートって3.6じゃなくて、4.0になるの?
3dsmaxで作った空間をUnityにインポートしたいです
単なるオブジェクトとしてインポートすることならできたのですが
terrianとしてインポートする方法はあるでしょうか?
>>637 terrainペイントエディター使いたいというのでなければ
terrainシェーダーはどこかに在った、LODは探せばあると思う
シェーダはどうでも良くて、真っ先にコリジョンの話じゃね
てかTerrarainとしてImportする、の意味が若干不明
モーフィング用にメッシュ2種類読み込ませると頂点の数変わってしまうんだけど何か対策ないでしょうか?
Normals & Tangentsをnoneにすればいけるんだけど影つかなくなっちゃうしどうしたものか
>>632 レスがつかないんで分からないながらも少し調べて見たけど、あまり情報が無いね。
いっそスプラッシュ画像を1*1の黒一色にして、擬似的にスプラッシュ削除
その後に読み込ませるシーンで、自分でスプラッシュっぽく表示しちゃうのはどう?
表示のタイミングはズレるけどね……
>>638 ありがとうございます
ペイント自体はそれほど興味はないです
639さんのおっしゃる通り障害物としての判定と地形としての判定が欲しいと考えています
>>639 言葉がうまく使えなくすみません
やりたいことは3dsmaxで作った空間全体にcollisionというか判定をつけることです
結局やりたいこととしてはterrainとして着地?できるようになれば同じことかなと解釈してこう書いてしまいました
>>642 やっぱそうだよな。つまり、地形として機能させたいと。
それ、結論から言うとTerrarainそのものである必要はなくて、要は要所要所にコリジョンが設定されていればいいだけ。
これは意味的に、Unityに限らない話。
で、その時例えば、その地形オブジェクトが一つの大きなメッシュだったりして、そこに
一発メッシュコライダとか使って凸包で接触判定とかは上手くないので、
その背景パーツをバラして、適切にキューブや板や珠、または接触判定用の荒いメッシュを割り当てて、
「見かけの地形」とは別に「判定用の地形のようなもの」を用意すんの
Unityに限らず、その手のゲーム処理の基本みたいな物
>>644 ゴメン、アニメーションが付いているキャラを、どう動かしたら、どうなったの?
多分その画像は、そのモデルのボーンが動いていない、デフォルトの状態形状なんだろうと思うが
どうなっていれば良いの?どうなるはずだ、そのつもりだった、とかその辺をkwsk
何を目的として、どういった手段を取ったのか言わないと伝わらないよ
アニメーションはそのキャラクタモデルに元々入っているの?
それとも、キャラクタモデルとアニメーションデータは別で、Unity上でキャラクタモデルにアニメーションデータを当てはめたの?
それともアニメーションの付いてるキャラをアニメーションさせたくないってことかな?
とにかく説明が足りてないよ
>>345 ありがとうございます!
このデータはアセットストアで購入したキャラクターなのですが、
ファーストパーソンコントローラーに追加し、
既存の白いグラフィックの代わりにこのキャラを入れたいと思っています。
他のキャラクター(例えばmonster caveのサンプル)などはうまくキーボードで操作できるのですが、
このキャラに関してはキーボードで動かしても、アニメーションが作動しません。
なので、キーボード(wasd)やジャンプ(space)を押した時に、
アニメーションしてくれると非常に嬉しいです。(停止時はidle? など)
具体的に書いてなくてすみません、
何卒宜しくお願い申しあげます。
すみません書き損じですが、
このキャラクターを購入した時にアニメーションのデータは付属していました、
ボーンデータも存在しています。
具体的にキャラクターが動かない状態にあります。
>>649 素早い回答ありがとうございます!!
勇気を出して書き込んで良かったです。
皆さん本当にありがとうございました!!
>>643 それは要するに3dsmaxで作った物はあくまでレイアウト位置の目安でしかなく
新たにUnity内で3dsmaxの位置を参考にしながら全部を入れ替えてしまう必要があるということでしょうか?
段階的に教えたほうが良さげ
まず、メッシュそのものに接触判定をもたせる方法としてメッシュコライダと言うものがあって、これで恐らく
>>651の目的は達成可能
しかし、全部メッシュコライダにしてしまうのは無駄に計算させてしまうので工夫が必要だと
>>643は言っている
↓工夫の一例
1,キャラクターが通る&凸凹した道=メッシュコライダ
2,キャラクターが通る&まっ平らな床=キューブコライダ
3,小物類=その形状に適したコライダ(キューブ/スフィア/カプセル/そもそも付けないetc...)
4,壁=キューブコライダ
5,キャラクターは行く事ができない背景等=メッシュのみでコライダは要らない
という風に分けるのがうまいやり方
しかし、そこまで処理系統困ってないなら気にする必要も無し
すみません
>>644です。
先ほどのサイトを参考にさせていただいているのですが、
FPSWALKERとCHARACTERCONTROLLERを割り当てても、
キャラクターは動きませんでした。
左下にはエラー内容として、
NullReferenceExceptionと表示されています。
これは関係あるのかどうか分りませんが、
解決策などありましたら教えていただけると助かります
何度もすみません
コーディングができない人にはGAMEsaladaおすすめ
>>653 とりあえず、例外起きてる時点でダメ
コード追いかけて
>>652 ありがとうございます
確かにあまり煩雑なものを作っていないのでそのままメッシュコライダにしてみようと思います
丁寧にありがとうございました
657 :
名前は開発中のものです。:2012/06/22(金) 08:41:45.48 ID:5cku1Zyg
cubeの表面にテキストを貼付ける方法を
捜しています。ご存知の方、よろしくお願いします。
658 :
名前は開発中のものです。:2012/06/22(金) 08:42:27.05 ID:5cku1Zyg
キャラクターの頭の上に吹き出しを出す方法を
捜しています。サンプル等ありましたらお教えください。
よろしくお願いします。
unityをダウンロードする場所が見つかりません。
よろしくお願いします。
>>657 動的にテクスチャを作って適用すれば出来るかと思いますが、
私では上手い方法が思いつきませんでした。申し訳無いです。
>>658 もう少し問題を切り分けて下さると答えやすいです。
1.吹き出しオブジェクトを作る(モデル、テクスチャ、GUItext、etc)
2.吹き出しをキャラクターの子オブジェクトにする&位置調整
3.スクリプトから吹き出しの内容と表示・非表示を制御
という流れで出来るかと思いますが、
どの段階で詰まっていますか?
>>658 Camera.WorldToScreenPointでスクリーン座標とってきて
GUIならそのまま使えばいいし
板ポリならOrthographicのカメラに映しゃいけるんじゃないか?
663 :
名前は開発中のものです。:2012/06/22(金) 11:34:20.41 ID:8LF7X5U/
>>662 レスしていただきありがとうございます。
ですがそのリンクを踏んでも大丈夫なのか判断に迷っております。
判断材料をご提供ください。
なんかいろいろすごいなw
>>663 踏んでも大丈夫でも大丈夫かとか、unity3d.comは公式なんだから
それを疑っちゃどうしようもないw
>>663 普通にダウンロードすればいいよ、金はかからない。
張られているリンク自体が怖いならUnity ダウンロードでググれば
検索トップに出てくると思うのでそこから。
なんでからかってる事に気づいてくれないんだよ。
よかった。
ダウンロードにたどり着けないかわいそうな子は
最初からいなかったんだね。
>>667 ちょっと可愛いと思ってしまったちきしょう
>>641 ありがとうございます。たしかにそういうやり方もありますね。検討してみます。
>>670 上手くスケーリングされないとは、どういう状態?
UnityでAndroidは経験無いのでなんとも言えないんだけど
>>671 JNIって、Javaとのマーシャリング用インタフェース(Java Native Interface)を実装させて、
ネイティブコンパイラでコンパイルしたバイナリを含む物だけど、
その C++ 側のコードはちゃんと x86 CPU とかじゃなくて ARM CPU 向けとか
Android実機に合わせてコンパイルして、正常に動く事も保証されてるの?
あと、その警告にある通り、ネイティブ側からの例外発生を伴う呼び出しも、許可されてる物?
…ってか、
>>671 のソース良く読んでみたが、これってAndroid関係なく、
Unity から Javaのクラスを利用する、ってだけの物じゃね。間にブリッジにするネイティブDLL挟んで。
Unity → ネイティブDLL(JNIインタフェース実装) → Javaクラス
ってだけの
>>672 Androidの場合、アス比が端末によってちがうのでピュアで開発する場合、ロゴ画像と背景を分離して
ロゴ画像を表示させたい位置にだすような画面をくむけど、
Unityの場合、1枚のTextureを設定して、微妙なオートスケールのオプションを選べるだけなので、
画像の比率が維持されないでスケールされます。
671の件はインタフェースの実装が間違っているという認識で良いのでしょうか?
ブリッジするあたりの事情がJNIを触ったことがないのでわからないです。
>>676 あぁそういう事か > アス比の件
そして
>671の件はインタフェースの実装が間違っているという認識で良いのでしょうか?
いやどっちかって言うと、
>>673-674 をよく読んで
653です。原因がわかりました。
ChinaGIRLのほうは普通に動くのですが、
自分のキャラクターは1度動いて停止します。
ループ設定にしても1度しか動かないので、
何が原因かと調べた所、ChinaGIRLとは仕様が違うということでした。
自分の持っている素材ストアで購入したキャラクターは、
確かにアニメーションやボーンもきちんと収録されてるのですが、
そもそもここのサイトのやり方では、このキャラクターは動かないようです。
キャラクターを動かすの為には、コードが必要なようで、
そのコードは自分で考えて作るしかなさそうです。
もちろん、コードは自分でかけたほうが自由度は広がるので、
まずはもっと基礎的な部分から勉強してこようと思います。
他のツールも参考にさせて頂いたのですが、なにぶんクオリティが低いので、
Unityのほうが使いやすそうな印象はあります。
皆さん色々お手数おかけしました。すみません。
UnityでAce Combat風のゲームを作っている者です。
Ace Combatのように敵機を四方八方どの位置から見ても正方形のマークが着くようにしたいですが、うまく出来ないのでお力を貸してください。
自分は、Texture2D型で宣言した画像を回転させてマークがついているように見ようと考えたのですが、どのようなコードを書けば良いのかわかりません。
どのようにすればよいのか、考え方などを教えてください。よろしくお願いします。
>>679 ビルボードで検索すると望む答えが出てくると思われるんだが、それとは違うのだろうか?
>>680 なるほど、まさにそれです。
ありがとうございます。
ビルボードは3D空間にあるオブジェクトだから
距離によって大きさ変わっちゃうよ。
AceCombatの正方形ってミサイルの標準だいね?
常に同じ大きさならHUD扱いかと。
>>671 AndroidのViewとかは自分も出してみた事あるけど
NativeJavaBridgeみたいなのは作らなかった
ActivityにViewを追加するような処理を持つクラスの.jarを作ってPlugins/Androidに置く
Unity側でAndroidJavaObjectとかAndroidJavaClassのCallとか使ってその処理を呼び出す
って感じだったな
>>671 とりあえず出せたのでコード
Toast表示用の.jar化する処理、クラスやimportは省いてる
public static void Show (final String text) {
final Activity activity = com.unity3d.player.UnityPlayer.currentActivity;
activity.runOnUiThread(new Runnable() {
public void run() {
Toast.makeText(activity, text, Toast.LENGTH_LONG).show();
}
});
}
Unityで呼び出す、「com.test.ToastClass」は自分で作ったクラス名に置き換える
var text : String[];
function OnGUI () {
var area : Rect = Rect(0,0,Screen.width,Screen.height/text.Length);
for (var i : int = 0; i < text.length; ++i) {
if (GUI.Button(area, text[i])) {
#if UNITY_ANDROID
if (Application.isEditor == false) {
AndroidJavaClass("com.test.ToastClass").CallStatic("Show", text[i]);
}
#endif
}
area.y += area.height;
}
}
こっちは良スレだな
以前までいたプログラマが見捨てなかったんだなぁ…
ありがたや〜
686 :
名前は開発中のものです。:2012/06/25(月) 18:20:03.76 ID:mnENRXkX
別にお前みたいな情報乞食のためじゃないんよ
そこは理解しといてね
意味説明するより、コピペしやすいように
ソース書いて晒すと持ち上げてもらえるスレ
ソース貼ると乞食が増えてスレの質が悪化する。
>685 が他のスレに喧嘩売るようなことを書くからいろんなのがわいてきたな。
>685 の思惑どおりなのかもしれないが。
679です。
TPS視点のモードにするとバグが発生することや、敵機が画面外に消えてもマークが残ってしまうことなどのバグがありますが、
一応、敵機にマークを描画することができました。
時間をかけてくださったみなさん、ありがとうございます。
>>692 それを書き忘れていました。
Game Scene/Version/Game16.unityです。
http://ux.getuploader.com/apaku/download/3/Unity+Project.zip これで一応、FPS視点にすると、敵機にマークがつくのですが、敵機が画面から消えてもマークが消えないことがあります。
度々で申し訳ないですが、Game Scene/Version/Game16.unityのプロジェクトを開いて解決していただきたいです。
自分は、OnWillRenderObjectで出来ると思ったのですが、描画されているオブジェクトを判別することが出来ないようなので、断念しました。
よろしくお願いします。
695 :
名前は開発中のものです。:2012/06/26(火) 21:21:51.66 ID:mM/VKu0I
キューブにポジションを指定して複数のテクスチャを貼る方法とかありませんか?
2×2×2のキューブにランダムに選らばれた1×1のテクスチャを4枚貼るとか。
これでひとつのキューブオブジェクトでテトリスのような変形したキューブを
表現したいんですが、こんなことできますか?
微妙に言いたいことが伝わらなかったがキューブを組み合わせたいのなら親と子の関係にすればいいんじゃないかな
多分、大分おかしな方法で実装しようとしてる余寒
>>695 >キューブにポジションを指定して複数のテクスチャを貼る方法とかありませんか?
ある
>これでひとつのキューブオブジェクトでテトリスのような変形したキューブを
>表現したいんですが、こんなことできますか?
できない
自分も695が言いたい事がこっちに伝わらなかった感があるんだが
とりあえず質問文に愚直に答えるとこんな感じだと思うんだ
でもたぶんきっとこんな答えは期待してないよね?ごめんよ
これが「テトリスのような形状を表現したいんですが、どんな方法がありますか」
ならもっと答えやすいんだけどな
答えにくく感じた部分は前の2行と「ひとつのキューブオブジェクトで」って部分だから
それを踏まえて質問文を書き直してくれると答えやすくなると思うんだが
キューブ=六面体
だから、いくら変形させてもテトリスのオブジェクトにはならんしな。
あれは複数のキューブの組み合わせだ。
>>683 ありがとうございます。
activityのGUIを処理させる方法がわからなかったのですが、
勘どころがだいぶわかりました。
参考にして実装してみます。
701 :
名前は開発中のものです。:2012/06/27(水) 20:17:26.03 ID:b0SUJyIu
>>698 すいません。わかりやすく説明します
まあ書いてあるとうり立体的なテトリスを作ろうと思ったのですが、
とりあえず9×9×20の枠を作って色々な形のテトリスを落としていくというのを
つくってみたのですが、あのテトリスの形状をすべて立方体のCubeオブジェクト
でインスタンス化すると積み上がってきた時にインスタンスの数が多いのか、
動作がドンドン遅くなっていきます
なので、下に落ちて積み上がるオブジェクトはDestoryしてしまって
積み上がったものをひとつのオブジェクト組み替えて、にまとめて表現できないかと思って
>>695の質問をしました。
複雑な形状のオブジェクトはできないと思ったので透過のテクスチャやテクスチャの貼る
位置などをコントロールして積み上がった複雑な形や色のオブジェクトを動的に表現する
しかないかなと思いましたが、こういうので他になにかいい方法はあるのですかね?
ネットワークとか、サーバーの事を基本から知りたいのですがオススメの書籍など教えてくれ。
いくつかめぼしいのは読んだが。
>>701 ああ、そういう事ね。
確かに落ちたブロックはまとめた方がいい。
大きいテクスチャに全部のブロックの色を詰め込めおk。
複数のテクスチャは使えない。
>>701 一つのメッシュにまとめるのは
Mesh.CombineMeshesでできる
ttp://docs.unity3d.com/Documentation/ScriptReference/Mesh.CombineMeshes.html 模様違いのキューブとか使いたいなら、キューブに4種類の模様があるとして
1枚のテクスチャの中で4つの模様を並べたテクスチャを作る
UV違いのキューブメッシュを用意して全て同じマテリアルで描画できるようにする
キューブの位置は個別に管理できるようにしておいて
まとめる必要がある場合(テトリス形状、落ちて積みあがった時など)に
Mesh.CombineMeshesでまとめたメッシュを新しく作って実際の描画はそちらを使う
まとめた後のメッシュを描画するマテリアルは1つで描画するから
模様違いをUV違いのメッシュで行うのはそのため
って感じでどうかな、今度のはそこそこ期待されてる答えになってる気がする
>>701 まとめるのはそれはそれでいいけど、重くなってくって話について、
そもそも無駄な評価処理してる予感
そもそも自分で書いたロジックに問題は?
707 :
>>702:2012/06/28(木) 15:02:54.56 ID:bRX4U8bH
>>705 hey boy?
俺を舐めすぎてないかい?
いくらなんでもこんな小学生向けの絵本が役に立つとは思えないな。
オトナだよ俺は〜?
まわ読んでみるけどさ。
かわいい
710 :
名前は開発中のものです。:2012/06/28(木) 21:30:32.94 ID:W+QvrxNR
>>704 返信感謝致します
とても参考になりそうなレス、ありがとうございます。
なにぶん3Dプログラミング自体初心者なもので、”UV”や”メッシュ”、”マテリアル”
などデザイン系用語や機能も1から勉強している状態なのですが、
>>704さんのレス
内容はとても興味深く、そこに私の求めていた答えがありそうな気がします。
>>706 このテトリスを表現しているCubeにはコンポーネントにRigidbodyとColliderのみ追加してただ単純
物理演算に頼って上から落としているというごくテスト的な処理しか行なっていません
スクリプトに関しては方向キー入力でx、z方向に動かすという処理のみにしています
テトリスの形状を表現している各CubeはPrefubでインスタンス化して作成しています。
上にも書きましたが3Dプログラミングは初心者なもんで、
まだまだよくわかっていないことが多いのですが、
各オブジェクトの描画はインスタンス化することではじめてシーン描画が行われるものだと思っていますが、
この考え方は間違っていますでしょうか?
それとも普通の2Dゲームのようにインスタンス化というよりただ単純に位置とサイズを指定して
描画するということは可能なのでしょうか?
長くなりましたが、最後にみなさんの返信レス感謝します
>>710 ああ、やっぱり落下と衝突の処理って、物理演算でやってるって事か。
3Dプログラミングって言うより、もっと基本的なゲームプログラミングの話で、
>単純に位置とサイズを指定して
>描画するということは可能なのでしょうか?
「描画用の」 オブジェクトは、Unityの機能でインスタンス化しといてでもなんでもいいけど、
とりあえず、API リファレンスは真っ先に覗いてみて欲しい。
GameObject 自体、座標指定してそこに表示出来る訳だから、普通にテトリスなりなんなりの
処理書いて、描画する時に、その GameObjectを想定した座標に表示すればいいだけじゃないの
あ、「描画する時に」って言い方をUnity環境ですると、またなんか混乱招くかもしれないが
… 要はそういう事だ
>>710 参考になりそうなレスができてよかったです
可能であればレスしていくのでまた何かあれば書き込んでみてください
Unityの描画に関する考え方ですが自分の中ではだいたい以下のように認識しています
・GameObjectがUnityのエンジンが認識する1単位であり、activeがtrueになっているGameObjectを処理する
・GameObjectの処理は自身に付いているenabledがtrueなコンポーネントを処理する
・MeshRendererコンポーネントがメッシュを描画する処理を行うコンポーネントである
・使用するメッシュはMeshRendererがMeshFilterを探し、MeshFilterから取得する
なのでインスタンス化されていてもMeshRendererが上手く処理されなければ描画は行われません
例としては、MeshFilterが付いていない、MeshRendererのenabledがfalseである、GameObjectのactiveがfalseである、などでしょうか
MeshFilterはコンポーネントではありますが、参照される事を目的としたコンポーネントなのでenabledはありません
本当はコンポーネントにそもそもenabledはなく、上の認識も正確ではないのですがだいたいそんな感じという事です
ただ、MeshRendererを使わずともGraphics.DrawMeshを使えば位置などを指定してメッシュの描画は可能です
ttp://docs.unity3d.com/Documentation/ScriptReference/Graphics.DrawMesh.html これでメッシュとマテリアル、位置&回転orマトリクスを指定してメッシュを描くことができます
DrawMeshとCombineMeshesのサンプルを作ってみたので貼っておきます
Ideoneを使うのは初めてなのでちゃんと見れるのか少し心配ですが
ttp://ideone.com/oPvjK たまに直接ソースを貼っていたけどIdeone使うほうがいいのかな
>>710 unity tetrisでぐぐればサンプル落ちてるジャン
過去ログに使えそうなレスをQ&AにしてWIKIにまとめるのはどうだろうか(提案)
ホモは帰れ
Asset Storeがオフラインになってしまってアクセス出来ないのですが、どうすればなおりますか?
ちなみにインターネットつながるので、物理的にオフラインになっているわけではありません。
教えて下さい。
>>718 自分もアクセスできないから、アクセス障害だと思われ
720 :
名前は開発中のものです。:2012/06/30(土) 17:01:36.02 ID:B+K5KFLj
4のアップデート前のリニューアルだなー。
4は明日かな。
>>719 ありがとうございます。
アクセス障害ですか!
しょうがないですね。
復帰するまで、待ちます。
Rokdebone2で3Dモーションを作ってるんですが、膝を曲げるとぺちゃんこになってしまいます
Unityでどうにか出来る問題なんでしょうか?影響度とか設定するんでしょうか…
>722モデルデータを見ないとわからない。
データをあげてくれ。
単にスキニングができてないだけでしょ
unityの問題じゃない…
Rokdebone2 は使わないのでアレだけど、そもそもUnity以前に
ボーン入れしてスキニングしてる途中で自分で気付かないか?
自作モデルじゃないからわからないとかなのか
モデル間接の潰れはunityじゃあ何もできないでしょ
ポリゴンの割方などで工夫しないとな
728 :
722:2012/07/01(日) 12:07:55.52 ID:6g5h2aCO
ありがとう、モデルの問題なんですね
一応自作モデルです
モンスターと弾丸の衝突はMeshColliderでできないのかな?
リファレンツ見るとConpoundColliderを組み合わせて作るって書いてあるけど
結構複雑な形状で難しい
unityはスキニングをどんなやり方でやってるんでしょう?
CPUスキニング?普通に変換行列でGPUスキニング?頂点テクスチャ?
あるいは選べるのでしょうか?
またリトポ君か
リトポ?
「リトポ君」レッテル貼りは粘着荒しだからスルーでいい
UV展開マジでもうちょっとマシになってくれんのかね?
メッシュいじると壊れるし、何よりUVを並べるのが苦痛で仕方ない
分割したUVそれぞれのパーツをレイヤー単位で並べて頂点全て数値で
管理出来ないもんかね
それ普通にできると思うけど。
俺が勘違いしてるだけかもしれないからもう少し詳しく!
>>729 メッシュ・コライダーは地形に使うもの
キャラクターに使えなくはないけど普通やらない(やるべきではない)
モンスターなんて適当に6面体でいいやん
あれか触手か?
>>737 そうなのか、capsulecolliderで頑張るか
いや、トリケラトプスっぽいモンスターの頭の角が一杯生えすぎて
なんかどの基本コライダーもいい感じに当てはまらない・・・
unityでシーンをまたぐプロジェクト全体で有効な変数って設定すること出来ますか?
できるだろw
>>739 static変数ならどのシーンに行っても生きてるよ。
用途にもよるけどPlayerPrefsで一度保存しちゃう手もあるしな
DontDestroyOnLoadでGameObjectも持ち越せる。
Unity4ってまだ落とせない?
rpeorderすれば落とせるかと思って購入したんだけど、
ダウンロードするところが見つからん。
>>745 preorder=先行予約
すぐダウンロード出来ちゃったら予約ちゃうやんw
ようやくアップデートされたと思ったら……
バグがめっちゃ多くて、サンプルも使い物にならない!
3rd person controllerなんてプロジェクトのせても標準じゃずっと走り続けてるし
(maincameratagのcameraがあってもね...)
これは仕様なのか? pro版では解消されるか?
頑張って欲しいものである。
>>748 多分PCによって依存するんだろう。
うちはMacとWinで試したがどっちもそうなる。
しかも前のバージョンから変わらず。。
>>746 いや、購入するところに、
「先行予約した人は、ベータ版をおとせますよ」ってかいてあったから期待したんだ。
Unityのステマの人見てない?みてたらいつごろからダウンロードできるか
それとなく教えてw
>>747 Unityは落ちるものと思って使ってないと、色々泣きをみるw
自動修復してくれると思ってこまめに保存してないと、
フリーズしたときにプロジェクト真っ白になってて焦るよなw
今、コンボゲームを作ってて、アニメーションが終了するまでをキー入力受け付け時間にしようと
AnimationEventを使ってみたけど上手く行かない・・・
デバッグしながらステップ実行してると、コールバック関数呼ばれるんだけど
デバッグ挟まないとどうも呼ばれないんだが。
AnimationEvent.timeってanimation["anime"].clip.lengthじゃ駄目なの・・・?
>>753 今AnimationEvent試してみたけど普通に動いてるな
前にも少し使ったけどその時は問題無かったし
timeはclip.lengthで試してて大丈夫みたいだけど場合によっては何かあるのかね
time = clip.length - 1/120.0f
にしてみるとかでちゃんと動いたりしない?
755 :
名前は開発中のものです。:2012/07/04(水) 10:50:36.65 ID:VAVGNy8C
- 1/120.0f
↑
コレ、どういう意味になるの?
Unityの勉強を兼ねて、手始めに脱出ゲーム作ろうと思うのだが、
ゲーム内で流すイベントムービーなんかの処理ってUnityフリー版使っている限り、
uniSWFとかプラグイン使わないと実現できないんですか?
教えてくだちい。
Unityのライセンスについて調べていて分からないことがあったので
質問させて下さい。
iOS用のライセンスに iOS Basic と iOS Pro がありますが、
これらに機能の違いはあるのでしょうか?
機能の違いはなく、Unity Pro を使うときは必ず iOS Pro を買わなければ
ならないという意味しかないのでしょうか?
>>755 ぴったり指定すると浮動小数点の計算誤差とかで呼ばれないとかあるのかもしれないから
60fpsで動いてると仮定して1フレーム前だと早すぎるから
半フレーム前の地点に時間を設定するための1/120秒前を指定する
というつもりではあるのだけれどこれで動くかどうかはわからん
>>756 うーん
コマ画像にバラしてテクスチャ差し替えてくーとか
音声があったら調整は至難の技か
761 :
名前は開発中のものです。:2012/07/04(水) 14:48:54.59 ID:3pBgs5xn
いろいろいじってたら戻せなくなったので質問させて下さい。
camera preview windowやsceneウィンドウに表示される
アイコン(ギズモ?)が表示されなくなってしまったのですが、
どうすれば表示されるようになりますか?
>>754 ありがとうございます。
-1/60.0fで良い感じになりました。
あれから試行錯誤してて、乱暴ですけど0.9f欠けて呼ばれたので満足してました。
ぴったり指定すると僕の環境だとどうも誤差で呼ばれないようなので、不便です・・・w
>>761 なんだそりゃ…そんなことあるのか。
左上の手ボタンを選択してしまっているとかじゃないですよね?
>>759 わかりやすく説明して頂きありがとうございます。
こんなサイトがあるとは知りませんでした。
ありがとうございました。
Unity4のモーションデータをきれいにつなぐ機能だけど、
あれって、モーションデータはmixamoみたいなのが、無料でついてくるのかなあ?
すんませ〜んUntyにモデルデータをFBXでインポートしたら
テクスチャが全部剥がれてるんですけど理由わかりますか?
一々また付け直すのが面倒っす
仕様です
え、マジで言ってる?何でこれ仕様なの??
マジで言ってる
少なくても俺は、毎回自分でつけなおしてるけど。
どうせテクスチャ切り替えとかで管理しないとあかんし
771 :
名前は開発中のものです。:2012/07/05(木) 00:37:19.21 ID:SZ0IhMzH
>>769 どーせUnity内でマテリアル組まないとダメなんだからいいじゃんw
壁の一部にポスターを設置したいと考えています
やり方として壁の表面に新たにポスターサイズの平面を作りその平面にtif形式にしたポスターをテクスチャとして貼りつけているのですがこれはやり方として正攻法なのでしょうか?
もっといいやり方があれば教えていただきたいです
>>774 それでOK。
壁のテクスチャに最初からポスターを描いちゃう方法もある。
777 :
名前は開発中のものです。:2012/07/05(木) 12:27:12.29 ID:vKg8+2SD
>>763 ちがいますね。
色々試してみて再インストールとか試してみてもダメなんです・・・orz
>>777 オレも以前ウィンドウがブッ壊れたことがあったんだが
Windows7の場合、アンインストールしたあとに
AppDataにUnityの設定が残ってたから全て消して
再インストールしたら治ったよ
>>770>>772>>773 ググったらAssetの直下にテクスチャ先に置いてFBX読み込めば完璧って
描いてあったけど全然そんな事無い…どうなってんだ…
つか公式でテクスチャ自分で貼り付けろって書いてあった気がするけど
シェーディングいらんでとにかく動かしたいのに貼り付け直し面倒ですマジで
fbxって一応テクスチャ埋め込みできなかったっけ?
出来るよ。テクスチャー先にぶち込んでおけばちゃんと表示してくれるし
多分何か間違えている
>>780 >>772で貼ったURLの先に書いてるのは試したの?
Assetの直下に置くって言ってもAssets/tex.bmpみたいな置き方じゃないよな
そんなとこに置いたらProjectウインドウの中が見づらくなるから
そこからじゃないと自動でテクスチャを探さないなんて仕様にするとは思えないんだが
ぱっと自分で試せないからこうすればできたって言えないんだが
手元にあるfbxでインポートするとテクスチャが勝手に作られて貼られた状態なるものがあるから
たぶんテクスチャが埋め込まれてるやつだな
だから面倒ならテクスチャ埋め込んだfbxにすればいいんじゃね
GUI.Buttonの上に、テクスチャ貼って、その上にguiTextを張ってボタンを見えないようにしたいんだけど、
うまく出来ません。
http://ideone.com/Y4pci このソースではうまくいかなかったので、誰かわかる人教えてください。
785 :
名前は開発中のものです。:2012/07/06(金) 16:32:19.82 ID:XNi7K6pL
GUIはバグだらけで使い物にならないからアセット買うか、proにしてsfつかったほうがいい。
>>784 隠れるなら、ボタンにテクスチャ貼らなきゃええやん
または表示順序かえるとか
>>784 GUITextやGUITextureはGUILayerが描画してるみたいだが
GUIクラスの描画は別っぽいから
GUIクラスの描画より上にGUITextを置くのは無理じゃないかな
表示順序を操作したいなら全部どっちかに統一すればいいんじゃね
GUI.Buttonの処理使いたいなら表示されないような
GUISkinとかGUIStyle使えば処理だけ使えるけど
まあがんばれ
プロジェクトの設定でVsync CountをEvery VBlankに設定してるんですが
ゲームビューにティアリングが起きて垂直同期されてません。
もともとエディタの画面って垂直同期できないの?
>>789 全画面じゃないと機能しねぇんでUnityのエディタ内とかウィンドウ表示ならあきらめれ
>>790 そうでしたか、納得しました。
ありがとうございます
792 :
名前は開発中のものです。:2012/07/08(日) 20:27:48.07 ID:0lUmMbR8
Webプレイヤ向けのビルドは問題ないのに
PC向けだとやたらスクリプトにコンパイルエラーがでやがる。
どういう仕様なのこれ?
どこに向けて作るのが一番いいの?
別のプラットフォームだと上手く動かないってのは、
ごく普通の現象だよ。
こまめに切り替えて作るしかない。
796 :
名前は開発中のものです。:2012/07/09(月) 09:48:05.63 ID:bkCkO8SS
>>794 unityの良さがあんまりかんじられない・・・
>>795 ネームスペースで変数の宣言するなとか、ビルドの時しか出ないんだ。
エディタでプレイできてスクリプトエディタでエラーがでなければいいのかと思ってたわ。
>>793 どこ向けが一番いいかはとりあえずなら
対象とするプラットフォームの中で一番制限のきついプラットフォームかな
とりあえずスマホ向けにビルドできてれば他はある程度大丈夫なんじゃないの?
まあターゲット切り替えてコンパイルエラーが増えた事は
Android、iOSプラグイン使ってる関係くらいしか経験が無いから
793の困り具合がよく分からんのだが
まあ出たエラーとかソースとか出してくれりゃこうした方がいいとか言えるかもしれんが
798 :
名前は開発中のものです。:2012/07/09(月) 11:45:15.41 ID:bkCkO8SS
つか、それ以前にソースの書き方ってのを・・・
800 :
名前は開発中のものです。:2012/07/09(月) 12:52:03.54 ID:bkCkO8SS
>>798 structをclassに変えてみて。
自分の書いたコードの変数や関数に「_xxx」みたいに、先頭に_をつけちゃダメ。
コンパイラの定義した何かと衝突する可能性があるよ。
_tって、なんかのタイプネームのマクロに使われてるんじゃね?
804 :
名前は開発中のものです。:2012/07/09(月) 13:43:51.65 ID:bkCkO8SS
805 :
名前は開発中のものです。:2012/07/09(月) 13:44:39.64 ID:bkCkO8SS
806 :
名前は開発中のものです。:2012/07/09(月) 13:59:15.85 ID:bkCkO8SS
Webプレイヤーにswitchしてビルドすると問題ないけど、PCにスイッチするとエディタでもプレイできないな。
808 :
名前は開発中のものです。:2012/07/09(月) 14:11:23.76 ID:bkCkO8SS
>>807 より広く意見が欲しいのでマルチしました。
プラットフォームの違いはunity側で調整してくれるものだと思ってたわ。
マルチする前に自分で調べたら?
自分の環境と状況も書かずに聞いて、なにが幅広い意見だカス
答えた俺が責められてる気分だ
811 :
名前は開発中のものです。:2012/07/09(月) 14:21:04.85 ID:bkCkO8SS
>>809 結構調べてるんですよー。
お気に触ったら申し訳ない。
>>810 とんでもない。そんなつもりは毛頭ないっす。
unityの問題・・・なのかなあ・・・ウェブプレイヤーとPC向けのビルドでそんなに違うものなのだろうか。
このスレでもちょくちょくビルド時の相談がありますよね。
結構プラットフォーム変えると動かないから修正って経験はある。Androidだけどね。
すみません、質問させて下さい。
↓こちらのサイトさんを参考に、アセットバンドルにスクリプトを含めたく試行錯誤しています。
ttp://anchan828.tumblr.com/post/14824112177/assetbundle-script ですがファイルのロードは出来ても、中身が取得出来ません。
(txt.nameでファイルの名前は取れるのに、txt.textは空白、txt.bytesはnullになる)
「一旦テキストとしてロードする」とあったので、
スクリプト(js)ファイルをテキストファイルに変換した後、
アセットバンドルを作成したりもしましたが駄目でした。
(スクリプトファイルのままでも駄目です)
そもそもアセットバンドルを作る手順からして怪しいのですが、
どなたがご教授頂けないでしょうか……
814 :
名前は開発中のものです。:2012/07/09(月) 16:51:12.68 ID:BaEzV0G8
済みません、質問があります。
unity付属のサンプル”AngryBots”を使ってプログラミングを行っています。
このゲームをプレイ中にプレイ情報(プレイヤー、モンスターの位置、アニメーションタイミング、など)を一時保存し、ゲームを終了した後にその保存した場面を保存した情報を使ってそのまま描画したいのですが、
描画する際に直接あつかう関数などが、良く分かりません。
どの関数を使って、どのように処理すればいいか、どなたかご教授お願いします。
かなりアバウトな質問ですが、よろしくおねがいします。
質問にお答えくださるのに必要な情報があればおっしゃってください。
できる限り発言します。
>>813 プラットフォームは何でやっていますか?
AssetBundleはターゲットプラットフォーム別に
作らなければなりませんが、その点大丈夫ですか?
816 :
名前は開発中のものです。:2012/07/09(月) 17:47:28.56 ID:bMVY3TSg
>>815 開発・ビルド先、共にWindowsです。
アセットバンドルのビルドスクリプトは公式リファレンスのもの↓
ttp://docs.unity3d.com/Documentation/ScriptReference/BuildPipeline.BuildAssetBundle.html を丸コピペしているのですが、
もしかして何も指定しないとWebPlayer向けになるのでしょうか……?
>>814 保存していたプレイ情報を取り出し、各種コンポーネントの変数に入れる
(例えば位置ならtransformのpositionやrotationを弄る)
だけで一応は出来るのではないでしょうか?
例えば、AwakeやStartでロードを開始し、
全てのデータを入れ終わったらAwakeやStart終了。(Updateが回り始める)
……で、通常のオブジェクトの描画はされるかと。
いわゆるセーブ・ロード機能は自作するか拾って来るかしかないです。
各コンポーネントのデータの呼び出し方・代入の仕方はそれぞれ異なるので、
1つ1つ出し入れする他無いのではと思います。
(似たようなデータであれば一括で制御する関数があるかもしれませんが)
的外れかもしれませんが、参考になれば幸いです。
>>817 いえ、私もそれでAssetBundleを使えています。
BuildTargetというオプションもあるみたいですので、
念のため見てみてください。
AssetBundleがビルドしてあり、中にきちんとデータが入っているとすれば、
疑わしくはローディングでしょうか……
www.errorで何かつかめませんか?
連投すいません
TextAsset txt = bundle.Load("myBinaryAsText", typeof(TextAsset)) as TextAsset;
のやり方が私と違うので気になりました。
var txt : String = bundle.Load("myBinaryAsText", TextAsset);
私のところではこのやり方でテキスト取得できています。
関係あるか分かりませんが、参考にしてください。
>>818>>819 お答えありがとうございます。
テキストのロードについては、「LoadFromCacheOrDownload」を使っていた為に
キャッシュが残っていたのが原因だったらしく、「new WWW」でやり直したら上手くいきました。
お手数かけてすみません。
bundle.Loadの部分については、C#とJSの違いかと思います。
(コピペ元や私はC#を使っているので)
テキストの取得は出来たのですが、サンプルに従って
var assembly = System.Reflection.Assembly.Load(txt.bytes);
を実行すると、今度は「BadImageFormatException」が出てしまいます。
何かまだ見落としがあるのでしょうか……?
お力をお貸し頂けると幸いです。
スコアと時間制限を作ったのですが違うシーンA→シーンB→シーンAに移行する処理を行うとシーンAで処理してたスコアと時間制限が最初の状態からまたスタートしてしまいます
最初からにならないですむ方法を教えてください
必要な情報があれば答えます
よろしくお願いします
>>822 すみません読んでませんでした…ありがとうございます
>>820 私自身はjavaのほうを使っているので、未熟ですいません。。
キャッシュの問題、私もてこずりました。勘ですが
Caching.CleanCache ();
asset.Unload
を使って、常に最新のものを読むようにしています。
同じシーン内で複数読み返す場合があれば、
キャッシュしてあったほうが便利です。
ふーむ、そこから先はやったことはないですが
調べてみると、ソースが見つからない関連のエラーっぽいですね
txt.bytesが取れているのであれば、
System.Reflection.Assembly.Loadが何かしらで動いていないのでしょうか。
var assemblyには何か入っていますか?
UnityPro版を持ってるのですが,
terrainに対する動的な影ってどうすれば出来ますか?
directional lightとBoxをおいてみてもterrainには全く影ができません
ごめんちゃい。
解決しますた
827 :
名前は開発中のものです。:2012/07/09(月) 21:54:35.58 ID:bkCkO8SS
割れだな。時代の先駆者。
828 :
名前は開発中のものです。:2012/07/09(月) 22:44:38.09 ID:bmqLtDp9
>>817 回答ありがとうございます。
ゲームを終了後といいましたが、少し違っていて、プログラムの流れとしては
1;ゲームプレイ
2;プレイ中に時間T=tのプレイ情報を保存
3;ある程度ゲームを進めたら一時停止
4;保存した時間tのプレイ情報を描画
という流れを作りたいのです。
なのでstart,Awakeメゾットでデータをロードというのは私のイメージとは少し違います。
それぞれデータを保存しないといけないということですが、とりあえずGameObject自体を保存して描画できないか試してみます。
ありがとうございました。
829 :
名前は開発中のものです。:2012/07/09(月) 23:41:12.33 ID:ztXtk0gh
unity(3.5)でゲーム制作が終わりiPhoneでリリースしてみようと思ったのですが、
いざiOSのライセンス購入ってときにアプデがきてどうすればいいのでしょうか。
iOSのライセンスも4.xでプレオーダーすれば、現状の3.5でも使用できるのでしょうか。
4.xの新機能使わないなら、3.xのまま使えばいいだけだよ
質問自体は公式に聞いた方がいいと思われ
831 :
名前は開発中のものです。:2012/07/09(月) 23:54:40.43 ID:ztXtk0gh
>>830 ありがとうございます。
3.xのライセンスを持ってないんですよー、だからいっそ4.xを購入したい次第で。おまけにもう3.xは買えない状態でして。
公式りょうかいです。
iOS向けの開発でbasic版を使っているのですが、
iOSライクなタブやテーブルといったUIはUnityで実装出来ないでしょうか。
>>824 エラーで止まっている箇所はまさにSystem.Reflection.Assembly.Loadの部分です。
この行でvar assemblyの変数定義とLoadをしているので、
assemblyの中身が入れられない状態です。
>>828 要は「セーブする関数とロードする関数を自前で用意して呼び出し」
というだけのことなので、場所はどうあれ、
保存したい時にセーブ関数を呼び出し→ゲームを進める→
→一時停止→読み込みたい時にロード関数を呼び出し→ゲームを進める
で問題無いかと思います。
(保存する時にも一時停止させた方が無難かと思いますが)
セーブの手法は私も悩んでいるところです。
もし宜しければ、上手い方法があったら共有して頂けると幸いです。
834 :
名前は開発中のものです。:2012/07/10(火) 00:53:08.84 ID:w1e4fW6i
>>833 ゲームのセーブ自体はPlayerPrefsというクラス?を使えばできるそうですが、使い方がいまいちわからず、ロード方法もよくわかりません。
クラスをまるごと保存したいならBinaryFormatter
ぶっちゃけ、自分で作ったものでもないゲームにセーブ機能付けるなんてオススメしないけどな
自分で作ったゲームと違って何を保存すればいいか分かりづらい
839 :
名前は開発中のものです。:2012/07/10(火) 04:01:14.93 ID:P+0AV/M7
質問なのですが、学校でPhotoshopとIllustratorを習ったのですが、
これらを使って、Unityに対応したキャラクター素材(カプセル→アニメーションのあるキャラクター)
を作りたいのですが、
何か参考となるホームページや教科書はありますか。
自分で調べてみたのですが、見つからなかったので、
こちらに来ました。
>>839 2Dならただパラパラ漫画のように複数画像を用意するだけだよ。
PNGやTGAでアルファ付きで保存すればいい。
841 :
名前は開発中のものです。:2012/07/10(火) 11:09:40.98 ID:LCi5Gipz
>>840 ツクールの素材屋さんのように、複数の絵を用意すればよろしいのですか。
分かりました。ありがとうございます。
>>833 考えられる可能性は、txt.bytesがそもそもスクリプトに適していない
もしくはSystem.Reflection.Assembly.Loadが動いてないかなんですが、、
前者であれば、テキストファイルのエンコードや拡張子の問題
後者であれば……すごく適当な事を言いますが、
この関数を調べたら、.NET Framework 2.0の記事が出てきたんで
Unityがその環境に依存している(かも)? であれば.NET Framework 2.0がおかしい(かも)…?
なんて考えたりもしましたが、何分素人の妄想ですので、非常に不確かなものです。
特に進展が無ければ申し訳ないですが私の知識ではお手上げですね……
他に分かる方いらっしゃいましたらご助力お願いいたします。
>>839 3Dのキャラクタを作りたいんじゃないの?
それだったら、Blenderって3Dソフトを使うのが良いよ。
Photoshopもillustratorもテクスチャー作りには必要になるから、Blenderを合わせて使うと良いよ
3Dは学生なら無料で使える3dsmaxとかMayaを使おう
一番いいのはSoftimage とステマしとく
845 :
名前は開発中のものです。:2012/07/11(水) 22:23:28.86 ID:Xf9JxeYf
質問があります。
using UnityEngine;
using System.Collections;
public class play_temp : MonoBehaviour {
public static Transform obj;
public static int check = 0;
// Use this for initialization
void Start () {
obj = this.transform;
}
// Update is called once per frame
void Update () {
if(Time.time > 4 && check == 0){
obj = this.gameObject.transform;
check=1;
}
Debug.Log("this = " + this.gameObject.transform.position);
Debug.Log("obj = " + obj.position);
}
}
objのtransformを一時的に保存したいのですが、デバッグログで確認したところ、objがthisと同じように値が変化してしまい、一時的な保存ができません。
どうにかして保存できないでしょうか?
846 :
名前は開発中のものです。:2012/07/11(水) 22:55:48.46 ID:PpeJvVM4
Vector3型の変数を作って格納しておいてはどうか。
>>845 実行中にインスペクタのIsSaveとIsLoadを切り替えたら動くようにした
using UnityEngine;
using System.Collections;
public class play_temp : MonoBehaviour {
public Vector3 tempPos;
public bool isSave = false;
public bool isLoad = false;
void Start () {
isSave = true;
}
void Update () {
if (isSave) {
tempPos = transform.position;
Debug.Log("Save Pos:"+tempPos.ToString());
isSave = false;
}
if (isLoad) {
transform.position = tempPos;
Debug.Log("Load Pos:"+tempPos.ToString());
isLoad = false;
}
}
}
>>845 C#では、クラス型はすべて参照扱いってルールがある。
objに渡されたのは参照(またはポインター)なので、
オリジナルと共に値も変化する。
一方、struct型はすべて値扱いというルールもある。
Vector3はstruct型なので、objをVector3 にして
transform.positionを渡してやれば値がコピー保存できる。
これ常に意識してないとハマるよ。
849 :
名前は開発中のものです。:2012/07/12(木) 08:36:09.63 ID:BIk3XhGn
返答ありがとうございます。
参照扱いは初めて知りました。
保存したいものとしてはクラス型の中身すべてなんですが、なんとか値として保存できないでしょうか?
やはり、クラス型の中にあるものを一つ一つ保存する必要があるんでしょうか?
transeform.parent = null;で親子関係切っといて
DontDestroyOnLoad(gameObject);でシーン切り替えても残しておくようにして
SetActiveRecursively(false);でactiveを切っとく
これじゃダメかい?
質問です。
自分はデザイナーでチェックとためにUNITYを使用し始めました。
CGではsoftimage使っていて、オブジェクトにスプライトマテリアルを適用しているんですが
UNITYで同等の”ライティングの影響を受けず、アルファチャンネルは透明度として使用”みたいな
マテリアルはありませんか?
852 :
名前は開発中のものです。:2012/07/12(木) 10:24:30.92 ID:wC+CLf7n
>>851 それぐらいは少し勉強すればすぐ書けるようになりますよ。アセットストアにも無料であったと思いますし。
>>852 わかりました
アセットストアもう一度調べてみます
CGの事はあまりわからないんだけど、
>>851の言ってることと、マテリアルのシェーダを
Transparent/Cutout/Soft Edge Unlit
にするのって結構違うの?
これもライト関係なしでアルファ適用されるけど。
ああ、ひょっとして透明にするマスクみたいなもんか。
それならぜんぜん見当違いのこと言ったわ。
>>855 そうです。
softimage上でのマテリアルノードの名称とUnity上での名前がまだ上手く一致しないので
上手に言えないのですが
透明にするマスクでニュアンスはあってると思います。
透明以外の所がライティングの影響を受けないでテクスチャがそのまま反映されるようなマテリアルを
イメージしています。
>>851 Unlit/Transparent
これは両面描画しないので両面描画したければ
Particles/Alpha Blended
これらはシェーダでマテリアルは用意されてないからマテリアルは自分で作る
作ったマテリアルにシェーダを設定して
MeshRenderer等のMaterialsに作ったマテリアルを設定する
>>857 >>858 ありがとうございます。
Unit/Transparent Cutoutを使用したら思った通りに抜けました。
860 :
名前は開発中のものです。:2012/07/13(金) 09:58:40.06 ID:umPU/gfI
>>850 やってみましたが、参照渡しされてるせいで、親子関係を切った途端、オリジナルのほうの親子関係もきれて動かなくなりましたww
あきらめて、一つ一つ保存してみます。
>>860 少し試してみましたがTransformには中身(メンバ変数orフィールド)が無いようです
Transformにあるのはプロパティ等で中身と言っているものは別の場所に存在し、Transformはそれを取得・設定する手段のみ提供しているようです
全ての中身ではなくプロパティで取得できるものであれば不可能ではありませんが
保存しなくてもよいものが多そう、positionとlocalPositionなどの同じものに別扱いでアクセスするプロパティがある
等の理由によりあまりおすすめできません
以下はメンバの確認に使用したソースです
using UnityEngine;
using System.Reflection;
public class Test : MonoBehaviour {
void Start () {
System.Type type = typeof(Transform);
BindingFlags flags = BindingFlags.Instance|BindingFlags.Static|BindingFlags.Public|BindingFlags.NonPublic;
FieldInfo[] infos = type.GetFields(flags);// 中身
//MemberInfo[] infos = type.GetMembers(flags);
//PropertyInfo[] infos = type.GetProperties(flags);
if (infos.Length <= 0) {
Debug.Log("infos.Length <= 0");
}
for (int i = 0; i < infos.Length; ++i) {
Debug.Log(infos[i].ToString());
}
}
}
>>861 質問主じゃないけど、
参照とかポインタとかよく分かってないので確認させて下さい。
変数にクラス(transformとか)を入れる→
コンポーネントへの“リンク(ショートカット)”を繋いでるだけ
変数にプロパティ(transform.positionとか)を入れる→
その時点でのプロパティのデータ(数値)を保存する
ということでいいんでしょうか?
>>862 ポインタや参照が分かってない人への説明は難しいな〜。
でもファイルのショートカットはコンセプトは近いかもしんない。
「class型の変数はすべてショートカット」
「struct型の変数はすべて実ファイル」
って理解でいいかも。
class変数を「=」で他の変数に渡しても、ショートカットが
コピーされてるだけ。
ファイル自体は一つしか存在しないから、これの中身を変えると
すべてのショートカットが影響受ける。
struct変数(positionなど)を渡すと、新たな場所にファイルの
コピーが作られる。コピーだからいくらいじっても元ファイルには影響なし。
って感じ?
関数のパラメータとして変数を渡す時も同じ事が起きてる。
>>861 System.Reflectionは使ったことないからちょっとわからないんだけど
UnityでGameObjectについてるTestクラスへのアクセス方法はGetCompornentでやるよ
GameObjectは残しておいて管理クラスの方で参照リストを作っておいて管理するってことで
>>850と言っていたんだが・・・
transform.parent = nullは単純に更新処理で親の影響というかコールが呼ばれないようにしただけだからやらないくていいよ
activeじゃなくてコンポーネントのON/OFF(enabled)のほうが合ってそうだね
見当違いのこと言ってたらごめん
>>862 だいたいその認識あってる
transformはクラスなので参照
transform.positionはVector3で構造体なので値渡し(複製)
クラスは参照、構造体か変数は値渡し
865 :
861:2012/07/13(金) 12:08:03.90 ID:06qK1JQ4
>>864 860でオリジナルの方って書かれてるから一時的に保存ってのは複製したいのだと予想
それだと850の処理では複製してないから要求が満たせてない、activeとかenabledは無関係
素直にtransform.position、transform.rotation、transform.lossyScale個別に保存すればいい
TestはTransformがメンバ変数としてposition等を持ってない事を確認するだけだから保存に関しては元々無関係
リフレクションはメンバ変数が列挙できるから一つ一つ保存しなくても一括保存できるんじゃないかと試しただけ
GameObjectごと完全に複製、再現するならたぶんこんな感じになる
ttp://ideone.com/Cv79P まあ詳細な要求が書かれてないから860の実際に望んでるものはどうあっても書けないけど
質問です。
C#で開発しております。
ゲーム中でオブジェクトが破壊される(衝突判定でDestroy)ということはよくあることだと思うのですが、破壊されたオブジェクトはスクリプト中ではどのような扱いになるのでしょうか?
今自分が作った簡単なゲームでは、playerというオブジェクトがあって、それを書いてあるスクリプト中ではキーボードの左右でplayerの位置を動かせます。しかし、playerがenemyによって破壊された場合、キー入力を続けようとするとコンソールにエラーが出ます。
つまりプレイヤーのオブジェクト自体が無くなったという判定がされたと考えて良いと思うのですが、playerを作ったスクリプト中ではplayerがNULLにはなっていないようです。(確認しました。)
エラーの内容は?
868 :
名前は開発中のものです。:2012/07/13(金) 19:31:48.81 ID:AHq8QqPo
すいませんNULLではなくnullとしたらいけました
ぬるぬる
NULL null じゃなくて、数値だもんな
androidで、
ゲーム画面が非アクティブになったときってC#で検知できますか?
javaでイベントを引っ張ってこないとダメなんだろうか・・
MonoBehaviourクラスのOnDisable、OnApplicationFocus、OnApplicationPauseあたりのイベントが発生するんでそれで検知してゲームをポーズしたりできるよ。
ただUnityRemoteだとイベントが呼ばれないんで実機で動かさないとテストできないから注意
UNITYで使用出来るクラス(メソッド)の一覧を知りたいのですが、
どこかにまとまっていないでしょうか。
,NET Frameworkは使えますよね?
ぱっと見れるとこは知らんが
以前リフレクション使って一覧出した事はあるからそうすれば見れる
>>875 ありがとうございます!見てみます。
>>874 リフレクションをどう使ったらいいかわからない初心者なのです。
勉強します。
877 :
名前は開発中のものです。:2012/07/15(日) 20:21:38.70 ID:o45mFu2W
質問です。
using UnityEngine;
using System;
using System.IO;
using System.Collections;
public class test : MonoBehaviour {
// Update is called once per frame
void Update () {
stop ();
}
IEnumerator stop(){
yield return new WaitForEndOfFrame();
Texture2D tex = new Texture2D(Screen.width,Screen.height,TextureFormat.ARGB32,false);
tex.ReadPixels(new Rect(0,0,Screen.width,Screen.height),0,0);
tex.Apply();
byte[] bytes = tex.EncodeToPNG();
Destroy(tex);
File.WriteAllBytes(Application.persistentDataPath + "\\cap\\page.png",bytes); //error
}
}
参考書のサンプルに沿って作ったんですが、上記の場所で
error CS0117: `System.IO.File' does not contain a definition for `WriteAllBytes'
とでました。
調べてみたらメソッドがないとかそういうエラーだと出たんですが。自動関数探索ではちゃんと表示されてました。
何が原因なんでしょうか?
それWebPlayer時には使えない機能っぽいから、それをWeb用に使おうととしてない?
879 :
名前は開発中のものです。:2012/07/15(日) 23:40:55.04 ID:o45mFu2W
いえ、まったく
880 :
名前は開発中のものです。:2012/07/16(月) 15:32:40.91 ID:70IArP8z
ビルド設定がwebplayerになってました。
設定を変えたらできました、ありがとうございました。
俺なんかウェププレイヤ向けに作ってしまってPC向けに大幅な作り直しが必要になった。
へこむ。
アルファ付きPNGテクスチャを表示させると、
アルファの部分の境界に、本来存在しないはずの白い線が表示されます。
対処法をご存じの方は教えて頂けませんか?
・境界線は全てではなく、一部分にのみ出ます。
(出る場所は画像によりけり、出ない画像もある)
・テクスチャ設定はTypeがGUI、FormatがCompressedです。
(AdbansedやTruecolorにしても結果は変わりませんでした)
・シェーダーはTransparent/Defuseを使っています。
・ビルド対象はWindowsスタンドアローンです。
アルファチャンネル フリンジ
あたりでググると色々出てくるけど元画像にアンチエイリアスがかかった状態だとアルファ抜きした縁の部分には背景色が混じってるんでそれが出てる。
フォトショップとかのフリンジ削除ツール使ったり、ドット絵作成ツールではじめからカッチリしたエッジの画像を作成するとかで対処。
bilinear等フィルタでアルファもぼやけるし、背景色を目立たない色にしておくとか、エッジカラーではみ出して描いておくなどのやりかたも。
>>882 白い線が出るって事は、背景が白いんでしょうね。
キャラクターの境界線(通常は黒が多い)と同じ色の背景色にすればOK。
>>883-885 皆様回答ありがとうございます。
何とか解決出来ました。
ご指摘で気付いたのですが、
白線はアンチエイリアスの掛かっている部分では表示されず、
掛かっていない部分(カッチリしたエッジ部分)で表示されます。
ですのでフリンジではなさそうです。
>>884の方のおっしゃる通り、
テクスチャのインポート設定のFilter ModeをBilinearからPointにすると
白線が発生しなくなりました。
(Trilinearでも発生したので、ピクセル引き延ばしの影響かと)
ですがPointだとブロック状に画像が荒れる為、
「Filter ModeはBilinearにして、全てのエッジにアンチエイリアスを掛ける」
という方法で対処することにしました。
ご協力ありがとうございました。
>>886 でもその白い線の「白」って色は背景色から来てるわけで。
だから背景色を境界線色に変えれば解決じゃないの?
アンチエイリアスで線が消えるわけではなく、
ただ目立ちにくくなってるだけかと。
逆に直線部分では良く目立つ。
アンチエイリアスがその問題の解決法ではないよ。
単純な元画像の問題かどうか切り分けたいなら、
Unity以外で読み込んでみて、フチが意図した通りにならないか調べてみるといいね。
889 :
名前は開発中のものです。:2012/07/17(火) 13:05:48.78 ID:t9c6vhxu
ゲーム内の画像を2Dではなくて3Dとして保存することはできますか?
保存した後、その保存した画像の角度を変えて表示させたいのですが。
>>887 「背景色」が何処の背景色か分からないのですが……
画像自体の背景色は「透過(色無し)」です。
アンチエイリアス部分は(本来の境界線と比べて)薄い色、半透明になっています。
なお、透過画像の下の部分(Unity上での重ね順としての下地)も
黒塗り潰し・別の透過無しテクスチャ等変えてみましたが、同じく線は白でした。
ただ、アンチエイリアス(ぼかし)の強度を変えて試してみたところ、
濃さにより見え方が変わったので、
確かに「線が目立ちにくくなっている」だけかもしれません。
>>888 元画像をPhotoshopで別の画像と重ねた場合はこの線は表示されません。
(Photoshop上、重ねた画像を書き出してビューワーで見た場合両方共)
なのでUnity側の問題だと思います。
>>889 保存っていうのがゲームを終了しても保持することなら
角度を保存してしまって、読み出しのときに板作成→テクスチャ指定→角度変更
では駄目ですかね。
シーン間を持ち越すだけならオブジェクトを消去しない命令があります
>>890 フォトショ以外でも読み込んで、重ねてみるといいよ。
>>890 っていうか原因わかったわ。
フォトショからアルファ付きのPNGで保存してんのね。
そうすると背景色はデフォで白だったはず。
透過っていうのは、そのドットのRGBA値のうちアルファ(A)が0なだけで、
RGBは見えないながらもそこには存在してる。それが背景色。
これが白だとうっすら出ちゃうわけ。
今手元にフォトショ無いから確かめられないけど、
PNG保存する時に背景色選択できないの?
894 :
名前は開発中のものです。:2012/07/17(火) 14:33:25.61 ID:t9c6vhxu
>>891 えっと変数に保存って意味です。
ゲーム内で、別変数に保存して、変数を直接いじくって(カメラ位置の変更)、そのあとまた出力したいのです。
これらの動作を裏側で行いたいんです。
>>892 イラレでも試しましたが白線は表示されませんでした。
今手元にあるのはこれぐらいです。
>>893 >背景色はデフォで白
全く知りませんでした……
Photoshop CS5を使用し、「WEBおよびデバイス用に保存」から
PNG-24、透過ありで書き出しています。
背景色選択欄は見付かりませんでした。
ペンなどで使う描写色・背景色を弄ってみたり、
新規ファイル作成時のカンバスカラーを変えてみたりもしましたが
どれも変化は無かったです。
>>882 質問主です。
ふと気付いて問題のテクスチャを適用させているマテリアルの
Main Colorを弄ってみたところ、線の色も変わりました。
ここを黒(境界線色)に変えれば線が目立たなくなると思うのですが……
・Main Colorを変えるとテクスチャの色味全体が変わる
・白線が出ている部分には、いわゆる画像としての輪郭線が無い=境界線色が取れない
(画像の途中でスパッと切れているデザインをしている)
・画像の後ろに置かれる背景画像も場面毎に変化する為、
背景色に合わせるのも難しい
……という状況です。
色々教えて頂いたのに申し訳ありませんが、
先に挙げたアンチエイリアス方式でいこうと思います。
ご指南頂いた皆様、ありがとうございました。
>895
「WEBおよびデバイス用に保存」じゃなくて
「別名で保存」で拡張子をpngで保存してみ。
>>894 ちゃんと読める所だけだとカメラの位置を動かしたいってだけにしか見えないんだが
カメラ以外動かさずにカメラのpositionとrotation書き換えりゃいいだけじゃないの?
何故か何かを保存したがってるけど保存しなくてもできるんじゃね
それじゃ思ってるものと違うんだったらもっと正確に詳細に書いてくれ
質問です。UNITY黄色い本で勉強中の初心者です。
1
あるラインに、複数のオブジェクトを沿わす、みたいなことってできないのでしょうか。
Photoshopのガイドラインにスナップ、のような。
Ctrl+移動で、オブジェクトがぴったりくっつく、と書いてあるのですが、
ぴったりなってくれるオブジェクトと、なってくれないオブジェクトがあり、困っています。
2
スケールを同じ数値にしてオブジェクトを上下に重ねても、
ビューでぐいっと寄ってみると、
微妙にズレている=同じ大きさになっていないようなのですが、
原因になにか思い当たるようなことがもしあればお教えください。
よろしくお願いいたします。
すまん読み間違った。
ガイドラインにスナップなのが望みで、ぴったりだけじゃなかったな。
僕も初心者に毛の生えたようなのだけど、ctrlで移動は決まった値(最初は1)ずつ移動だから、初期値が違えば微妙にずれるのかな?
1と1.5を1ずつずらしても重ならないように。一回positionをどっかの整数値に合わすとかしたらできるかも。
それか並べたいのの始点を適当に決めてそれに対して v で合わせればいいかも。
>>902さん
ありがとうございます。Ctrlは単に、僕の記憶違いだったようです。
(規則的に移動するので、勘違いしたんだと思います)
ガイド用オブジェクトを作って、
「V」でそれに沿わせ、複数のオブジェクトを、一列にぴったり並べることができました。
助かりました。
質問です。
スケールの大きさを変更すると、中央から左右に広がるように大きくなりますが、
例えば左端を固定したまま、右方向にだけ伸ばす、というような事は可能でしょうか?
よろしくお願いします。
>>904 対象オブジェクトの上に空のオブジェクトを作り、
親にしてそれをスケーリングするという方法では駄目でしょうか?
>>904 モデルのスケーリングの話?
スケーリングはモデルの中心がどこかで結果が変わる。
中心をモデルの左端にセットすれば、右方向にしか広がらないよ。
Unityのアセットストアの値段って
us dollarでぐぐってでてくる円であってます?
>>905 ありがとうございます。
やってみましたが、左端(起点)が微妙に移動してしまいます。
ただ、空のオブジェクトを親にできると知れたので、ひとつ勉強になりました。
>>906 ありがとうございます。
モデルの中心点操作はUNITY上で簡単に行えるものなのでしょうか?
ピボットモードにしてみたのですが、結果は同じでした。
>>908 それは何よりです。
>やってみましたが、左端(起点)が微妙に移動してしまいます。
目測で調節したのであれば、おそらく若干ずれているのかもしれません。
計算して調整するしかないと思います。
公式で過去のバージョンって手に入るでしょうか?
>>911 数字変えたらいけました。
ありがとうございました。
学ぶ力には三つの条件があります。
第一は自分自身に対する不全感。
自分は非力で、無知で、まだまだ多くのものが欠けている。
だからこの欠如を埋めなくてはならない、という飢餓感を持つこと。
第二は、その欠如を埋めてくれる「メンター(先達)」を探し当てられる能力です。
メンターは先生でもお母さんでも、ネットの中の無名の人でもいい。
生涯にわたる師ではなく、ただある場所から別の場所に案内してくれるだけの
「渡し守」のような人でもいいのです。
自分を一歩先に連れて行ってくれる人は全て大切なメンターです。
第三が、素直な気持ち。
メンターを「教える気にさせる」力です。オープンマインドと言ってもいいし、
もっと平たく「愛嬌(あいきょう)」と言ってもいい。
「学ぶ姿勢」のある人は、何よりも素直です。
つまらない先入観を持たないから、生半可なリアリズムで好奇心を閉ざさない。
素直な人に聞かれると、こちらもつい真剣になる。知っている限りのことを、
知らないことまでも、教えてあげたいという気分になる。そういうものです。
以上、この三つの条件をまとめると、
「学びたいことがあります。教えてください。お願いします」
という文になります。これが「マジックワード」です。
これをさらっと口に出せる人はどこまでも成長することができる。
この言葉を惜しむ人は学ぶことができないのです。
学ぶ力には年齢も社会的地位も関係がありません。
>>909さんも、早く学ぶ力を身に付けてください。
扉を開ける
ゾウを入れる
扉を閉める
皆がやりたいのはこれw
Unityのアセットストアの値段って
us dollarでぐぐってでてくる円であってます?
検索のできるバカが増えてるな
あってます
そもそもなんでpngなん?
質問です。
function Updateの一行目に、 「 while (!メッセージ) yield; 」
として、あるBroadCastMessageが到着するまでは待機する、みたいな事をしたいです。
予め全体を止めておいたスクリプトを、
function メッセージ名(){ enabled="true"}として動かすのはできるのですが、
一部だけ、止めておきたいのです。
よろしくお願いします。
>>920 >function Updateの一行目に、 「 while (!メッセージ) yield; 」
>として、あるBroadCastMessageが到着するまでは待機する、みたいな事をしたいです。
var enableFlag : boolean = false;
function Update () {
if (enableFlag) { return; }
Debug.Log("A");
}
function ChangeEnable (flag : boolean) {
enableFlag = flag;
}
>一部だけ、止めておきたいのです。
function Update () {
Debug.Log("A");
if (enableFlag) {
Debug.Log("B");
}
Debug.Log("C");
}
("A");
なんか教えて下さいって言うよりコード書いて下さいになってるな
>>921 ありがとうございます!
あとで打ってみます m(__)m
>>921 お教えいただいたコードを応用して、意図していたことを実現できました。
感謝です!
プレハブに以下のコードを書いたスクリプトと適当なオブジェクトを設定して、画面に置いてます。
cubeには別なプレハブを設定して実行、zを押すとcubeのインスタンスが出来るのですが、このプレハブ自身のインスタンスも生成されてしまいます。
var cube : GameObject;
function Update () {
if (Input.GetKey ("z")){
Instantiate(cube, Vector3 (0,0,0), Quaternion.identity);
}
}
ためしに、cubeのプレハブを未設定にすると、今度は自身のオブジェクトのインスタンスのみができます。
Instantiateの1行をコメントアウトすると、何も起きなくなるため、他の部分が悪さをしている、ということは無いと思うのですが、
何が悪いのでしょうか。
cubeに設定したプレハブのインスタンスを生成です。
cubeにこのプレファブが設定されたのがどっかにいるんじゃないの
Instantiateの辺りに
Debug.Log(name+" Instantiate "+cube.name);
とか書いとけば何が何をInstantiateしたかわかるんじゃね
質問です。
Unity内でカメラBで撮っているものをムービーテクスチャとしてPlaneに貼ることができるんでしょうか?
レースゲームのバックミラー的なものをつくりたいと思ってます。
Pro版持ってないから試せないけど
MovieTextureって動画ファイルの再生用っぽいから無理じゃね
モバイル向けにC++のコードを利用して、公開してる人いませんか?
C++のライブラリを一部を利用しようかと思っているんですが、
自分の端末では動くものの、公開後、沢山の機種で動くのか不安です。
俺使ってるけど不具合報告無いよ!って意見があるとうれしいんですが。
確認できた環境やバージョンについて明確に記述しておいて、報告があればフィードバック&修正すればいいだけのこと
そんなことより「きたねえ」「下手くそ」「狂ったapiデザイン」と囁かれるほうがしんどいだろ
Colliderを設定すると壁とぶつかりますが、CharacterControllerと併用できないらしく、
CharacterControllerを設定するとColliderが無効化されそのオブジェクトが物体をすり抜けてしまいます。
CharacterControllerとぶつかりを両立するにはどうすればよいのでしょうか。
3rd Person Controller試したけどPlaneとかにちゃんとぶつかるから大丈夫じゃないの?
3rd Person Controllerとは何ぞや・・・
プロジェクトでプレハブ選択してComponent→Physics→CharacterControllerで設定するとぶつからなくなってしまうのですが。
ImportPackage->CharacterControllerで
CharacterController使ったサンプルキャラのプレファブがインポートできる
Standard Assets/Character Controllersの下にインポートされて
3rd Person Controllerが3人称視点のサンプル
First Person Controllerが1人称視点のサンプル
>3rd Person Controllerとは何ぞや・・・
さっそく夏休みって感じだなぁ
うーん、そっちのサンプルから使ったほうがいいんですかね。
幾つか試してサンプルはすぐに動かせるものの、情報量が多くて何処が何をしてるのか分かりにくいので0から試してるところです。
使った方がいいとかじゃなくて参考にして理解しろって事だよ
リファレンス読んで動くものさわれば大体理解できるだろ
3rd Person Controllerを入れてみましたが、さっぱり分かりません。
確かにこれは壁をすり抜けないのですが、当たり判定が同じになるようにCenterやRadicusを同じ数値にしても駄目。
コードで何かに当たったときに停止する部分が有るかと思ったのですが、
関係ありそうなのは「OnControllerColliderHit」ぐらいで、ログを仕込んでみたが関係なさそう。
あとはこの辺を制御するのはコードでもInspectorでも何がありますでしょうか。
CharacterControllerは
Move、SimpleMoveを使って移動した時だけ衝突判定が行われる仕様、transformで動かしちゃうとすりぬけるよって話じゃないか?
ありがとうございます。transformで動かしてますので間違いなくそれです。
おめでとう!
小学生でもわかるunityでRPGを作ろう! みたいな本出ません?
質問です。
ほかのオブジェクトについているスクリプトのboolean変数を、
true→falseのように切り替えするにはどうしたらいいでしょうか。
var aaa : GameObject = GameObject.Find("ほかのおぶじぇくと");
aaa.向こうで宣言済のboolean変数名 = false;
などとすると、エラーになってしまうのです。
宜しくお願い致します!!(´・ω・`)
自己解決しました。
staticにすればいいだけでした!スレ汚しすみません(´・ω・`)
1個だけならいいけど・・・
言いたいことがあるならハッキリ言ってください(`・ω・´)!
(´・ω・`)!?
staticってのは、あなたのいうところの他のオブジェクトのインスタンス(例えばスクリプトをアタッチしたオブジェクトが複数ある場合)すべてに共通の値が設定されるから、
複数の物体が同じ挙動するよ。
ブーリーン変数のprivate,publicで調べてみたら?
変数はプライベートにして、パブリックなメソッドで変えるのが普通、であってるかな?
ブーリーン
言いたいことがあるならハッキリ言ってください(`・ω・´)!
(´・ω・`)!?!
ブーリアン だな。質問スレで脊髄反射みたいにレスしてすみません
独学でやってるから、読み間違い多くて… 数分考えないとわからなかった。
falseはファルス
charはキャラ
defineはデフィーネ だよな
widthがウィドズで、heightがヘイグトか。
warning ワーニング
null ヌル
って言う人はプロにも多いから困る。
widthをウィドゥス以外の読み方するやつ
特にワイズとか言っちゃうやつとはなるべく関わりたくない
char = character -> キャラ
だと思ってたけどだめなん?
てかnullはぬるじゃなかったらなんなんだ?
ぐぐったらナルなのか....
ぬるぽのヌルだと思ってた
英語の発音を取るかネットの文化を取るか
間違ってても通じればいいよ
話通じにくくなる読み間違いは勘弁してほしいが(gitをジットと読むとか)
false はフォールス
char はキャラ/チャー
define はディファイン(カタカナ表記はデファインの場合も)
width はウィズ/ウィドズ
height はハイト
warning ウォーニング(カタカナ表記はまだワーニングの方が多いかも)
null ナル
※カタカナ表記と読み方は微妙に違うので発音記号を参照するのが望ましい
sqrt は?w
スカート!
普通にスクエアルート
スクワットだろ常考
英字読みだとスペル間違えそうだからローマ字読み
一瞬スペルマに読めてしまったオレは重症
プロについてるimage effectのパラメータはスクリプトで制御できるん?
自己解決しました
『平方根』って、改めて文字にすると少しエロイな
Dをデーじゃなくディーとか読んでると素人っぽい。
980 :
名前は開発中のものです。:2012/07/26(木) 22:26:03.60 ID:aGqg+W42
Uni2D使ってる人居ます?
スプライトの画像をパラパラ切り替えてアニメーションってできますか?
ドキュメントにAtlasは書いてあったけど、アニメーションに関しては見つからなかった。
こんばんは、質問があります。
//javascript
function Update () {
if(Input.GetKeyUp("s"))
{Destroy(gameObject);}
}
CUBEを画面上に作り、
このコードを書いてCUBE割り当てた所、
sキーを押すと非表示になりました!
今度は非表示にしたCUBEをzキーでもう一度
同じ場所に表示させようと思い、
function Update (){
if(Input.GetKeyUp("z")){
b.active = true;}
}
というコード(2つ目)もCUBEに割り当てましたが、
zを押してもCUBEは表示されませんでした。
CUBEには物理情報など、一切与えていません。
何か間違っている箇所がありますでしょうか?
良ければ教えて下さい、宜しくお願い致します。
Destroy はオブジェクトの消去、見えなくなるというか破壊だから、ないオブジェクトにメッセージ送ってる。
destroy使うなら、instantiateで生成し直すか
または、activeに対応する非表示にする方法探さないと
>>982さん
ありがとうございます! なるほど、破壊ということは、
もうゲーム上には出て来ないのですね。
ありがとうございます!