【3Dゲームエンジン】Unity質問スレッド34
■ このスレッドは過去ログ倉庫に格納されています
フリー版で開発したゲームは個人・法人を問わず追加のロイヤリティーなしで販売できます。
プラットフォームサポートはiPhone/iPod Touch/iPad、Mac、PC、Web、Wii、Xbox360、Android、PlayStation 3、PlayStation 4、PS Vita他
次スレは>>950以降にできるだけ早く(できれば回答者が回答した後にでも余裕を持って)建てて下さい。
■Unity 2ch Wiki(まとめ、過去ログ、リンク集)
http://www24.atwiki.jp/unity2ch/
●リンク
・Unity(日本公式サイト)
http://unity3d.com/jp
・マニュアル
http://docs.unity3d.com/ja/current/Manual/index.html
・チュートリアル
http://unity3d.com/jp/learn/tutorials
・スクリプトリファレンス
http://docs.unity3d.com/ja/current/ScriptReference/index.html
・FAQ
http://unity3d.com/jp/unity/faq
・MSDN
http://msdn.microsoft.com/ja-jp/ms348103←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
前スレ
【3Dゲームエンジン】Unity質問スレッド33
https://mevius.5ch.net/test/read.cgi/gamedev/1513643755/ ProBuilder、これさえあればUnityちゃんも楽勝
なんせサバイバルナイフですからっ Unityではじめる2Dゲーム作り徹底ガイド、という書籍でunityの勉強を始めましたが、序盤で躓いています。
「Player」オブジェクトの子に「PlayerSprite」というオブジェクトを作り、「Player」にAnimControllerを、「PlayerSprite」にアニメーションクリップを追加し、
「Player」にそれらを制御するスクリプト郡をアタッチするという説明があります。
https://i.gyazo.com/7ec6a69ab955bea3ba1760c0ce6d944e.png
https://i.gyazo.com/4be78516742dd28b3a814bf967718597.png
「PlayerSprite」を選択してからAnimationウィンドウ上で新たにアニメーションクリップを作成するという手順なのですが、「Player」のアニメーションクリップとなってしまいます。
https://i.gyazo.com/d43c5004bade4aade929de347a27d14a.png
どうしたらよいのでしょうか? >>665
それで正解だとおもうが、その書籍の情報が古いんじゃね? 馬鹿なんだと思う
ネットで情報ありふれてるのにわざわざ本買って理解できない時点でお察し ついこないださわりが判りやすかったので購入したのですが、
実際最初のスクリプトからもう古い記述で動かなかったりしました……
この場合、子オブジェクトにanimcontrollerをつけてアニメーションを作成、
親から子のトリガー等を参照するようにスクリプト側を修正するという感じでしょうか? それ親子にする意味あるのかなぁ
それがいまいちわからんww スプライトのズレの管理を親でやると物理演算を無効にせざるを得なくなるとかどうとか >>670
ということはRigidbody付けてるんかなぁ
まぁ初めてアニメーション作成するなら、単体で作ってみるとかで理解深めるのがいいかと思うます
メカニムでアニメ遷移とか色々と奥が深いので、スクリプトもアタッチできたりするしね Unityはすごい便利だわ
いいと思う
一番いけてる開発ツール あんがと iOSやAndroidのプロジェクトで、解像度に合わせてuGUIをフィットさせる技ってどっかに動画で載ってないかな?
マニュアル分だけだとAndroidはそこそこうまく行くのに対して、なぜかiOSだとうまくいかない・・・・きっと何かが間違ってるんだろう
それと、もしこれから本を出す人がいたら、画面にUIをフィッティングさせる技術を載せといて!!! >>670,672
まさにその通りです。
はじめは親にアタッチしていたものの、段階的に作り込んでいく過程で親と子で分ける方法になったものでした
どうもありがとうございます、ひっくり返っても出来なくて質問してしまいましたが、すっきりしました
これから覚えるのに書籍と構造をかえて対応できるかは不安がありますが、おかげで先に進めます >>664
ProBuilderでUnityちゃんのようなギャルキャラがつくれるのですね。
ボーンも自動的についてくるのですね!! みなさんはUnityをゲームをつくるために使っているのですか?
みなさんはUnityちゃんのようなギャルキャラをMakeHumanみたいに簡単につくれるツールはつくらないのですか? Probuilderでキャラモデリング出来るわけないな。
モデリングだけど種類違うわ。
レベルや背景Geometry分野 Probuilder、SketchUp 主にPushPull主体なモデリング。
機械、乗り物、ローポリキャラ Blender、Maya、Metaseqoia 主に、BooleanやカットやSubdivisionなどあらゆる加工を使う、一般的な人がイメージするモデリングはここあたり
ハイポリOrganicな生物、リアルな人間 Sculpt,Zbursh 粘度でねっていくように直感的にモデリング、ただし無駄に超高ハイポリになりがちで、リトポロジーに時間を要するがモデリングは非常に早く終る。 SketchUpは本当は建築パース図用だったんだけど、家や道路作ってステージを構成していくのにあまりにも便利でゲーム会社でもSketchUpをレベルデザインに使ってるとこまである。 家具とか宝物とか松明とか爆弾とかはBlender,Mayaで作りゃいい チュートリアルのGUI関連が、GUIまるごとUIシステム?にまるごと引っ越してるから、Using UnityEngineUIが必要だったり、いっぺん削除して作り直したほうがいいわあれ。 2017.2で作ったUIを2017.3に持ってったらレイアウトがめちゃくちゃになった
アレ最新版で直った? using1行追加するのが面倒ならテンプレートファイルを編集すればいいだけじゃん プロパティの名前もGUITextからTextになってるし GUIっていえばさあ
なんでScene上にGUI作成画面を作ったのか意味がわからねえ
別画面にしてくれよ >>679
>Probuilderでキャラモデリング出来るわけないな。
つまりモデリングはできても、ボーンがつけられないということかな?
ボーンがはいってないんじゃ、キャラデザインは無理・・w
背景しかつくれないんじゃ、使う用途がまるでない。興味ないなw うんぅん、そうだよ
興味ないのに書き込みするなんて
ほんっとにかまってちゃんなんだからっ レベルデザインってゲームの世界観を8割ぐらい表現してると思うけど。
まあ、ProBuilderの作者でもUnity Incの回し者でもないから、キムチが使わなくても何も困らないけど。 >>688
じゃあ別画面にしようやってことじゃね? ProBuilderってレベルデザイン・プロトタイプ目的の物ですよね?
基本後でモデル差し替え前提で使うもの、でいいんでしょうか。 要求クオリティによりけりでしょ
簡単なテクスチャだってUnity内部で描けるようになるのだし 返信ありがとうございます。
ProBuilder触ってみたのですが
自分の規模ではこれでだいたい間に合いそう・・
これが無料ってほんと有り難いですね >>693
基本そうよ
あくまでホワイトボックス〜グレイボックス初期まで使って
レンダリング設定やライティング、ポストエフェクトを糞ラフに決めるためのもの
スクラップ&ビルドしやすけりゃ
試行錯誤できるからな 基本は地形ビルダーだから
小物(propsって言うけど)置いたりしたいなら、YoutubeにBlenderでゲームアセット作るようなチュートリアルが無数に存在してる。
キャラモデリングと違い直線直角的なのでビデオ見て真似するだけで出来るでしょう。
込み入ったウィンドウとかドアもBlenderで作ってProBuilderで作ってる壁にはめ込めばいいだろう。
あと、テクスチャの工夫だな。
ノーマルマップとハイトマップを入れる。
最後にライトマップを工夫して見やすくかつステージが美しくなるように。 Never Leave From Unity!っての大事だな。 返信ありがとうございます
>>696
基本はそうなんですね
試行錯誤のしやすさの利点大きそうです
>>697
わりと操作はシンプルで使いやすかったです
そのまま使うパターンでもテクスチャの上手さ次第で
だいぶ見栄え変わりそうですね・・ SketchUpに似てるけど、あれも家具や小物は外部DCCだより。
あれもPush/Pull主体モデリング。
レベルデザインに使う会社もあるって読んだけど、Probuilder使うとなるほどなと思った Photonについての質問なんですが
PhotonNetwork.Instantiateで生成したオブジェクトにCollider2D,Rigidbody2Dを与えたのですが
Rigidbodyを与えたA側は動こうとするももう片方で動かず、A側がバグのような動き方をしてしまいます
このような症状についどなたか心当たりのある方おられませんでしょうか
以前両側にRigidbodyを与えていた際は動いていたのでそのあたりだと思うのですが
片側を動かしたら両方が動くのがPhotonというものだと思っているのですが・・・ >>702
アセットをアップグレードしてみましたが効果ありませんでした CameraFollowのやつ
SurvivalShooterのチュートの3
あれ挙動おかしい
Smoothing変えたらカメラの挙動変わりすぎ
視野角まで変わって、Clippingでカメラの前のオブジェクトが消えたりする。
Smoothing * Time.deltatimeがおかしくしてる原因と思うけど、改善するならどうしたらいいんだろ 今日ちら見したDOTween使ってなんとか出来ないかしてみよう あ、わかった Lerpのtがチュートに従うと0.099999になる。
高さも10分の1になってyが1.5なってる。
どっかで桁間違えたか?
見直してくる Survival SHootingのチュートのミスわかった。
transform.position = Vector3.Lerp (transform.position, targetCamPos, smoothing * Time.deltaTime);
これを
float T = Smoothing * (1/ Time.deltaTime);
transform.position = Vector3.Lerp(Target.position, targetCamPos, T);
したら想定動作になった
なんでか教えて。 Photonを新しいプロジェクトにインポートしてPhoton以外のデータを写してみましたがだめでした PhotonですがそもそもRigidBodyを与える以前から症状が起きていることが分かりました
同じような症状は見かけませんがどなたかご存じないでしょうか >>704
orthoなのになんで視野角出てくんの? >>707
おかしいのはそこじゃなくて座標の指定
LerpはAからBの補間を返すんだからAにはカメラの座標を入れろ
Target.positionってなんだよ、ふざけてんのか >>701
たぶん必要なコンポーネントや設定が足りていないんだろうが、
何が足りていないのかはプロジェクト見ないことには分からないから、
ググって出てくるやり方を新しいプロジェクトで手当たり次第に試すのが良いよ >>712
はじめ見た感じクリッピング距離が原因のように思われる画面だったから。
実際は、Yの高さが、15から1.5になっててオブジェクトが切れてただけだが。
>>713
TargetはPlayerのTransformへの参照まで納められた変数だから。TargetCamPosはそのPlayerのポジションにPlayerとカメラのoffsetを足した位置。
チュートのFollowCamera.csコピペで丸写ししても同じバグ出る。
5はSmoothingで移動量じゃないんでかけること自体がおかしい。
だからDeltaTimeを逆数(1/Deltatime)にしたらうまくいった。 >>715
だから『今現在のカメラ位置』から次のカメラ位置に動かすんだろ
なんでプレイヤーの位置から次のカメラ位置に動かそうとしてるんだよ?
あとお前の計算式だが、
smoothing * Time.deltaTimeは「5 * 0.01666... = 0.08333...」
smoothing * (1 / Time.deltaTime)は「5 * 60 = 300」
Lerpのtには補間の割合を0.0-1.0の範囲で指定するんだからどっちが正しいか分かるな?
お前が想定通りと言ってるのはLerpに1.0を超える補間値を指定してBに直接ワープしてるだけなんだよ leapに、デルタタイムだけ入れると、ずっと、1にならないからゴールしないんじゃ? スクリプトできない人はアセットを買うほうがいいですよ >>716
チュートリアル通りだと何もしなくてもカメラの高さが1.5とかようするにゲーム開始前のカメラのポジション*0.1になるんだからしゃあないじゃない チュートリアルはある程度感覚をつかめたら、あとは見なくていいよ >>718
アセットを買ったからこうなってるんですけど >>714
原因はマスタークライアントが作ったのをクライアントでうごそうとしてたからみたいです
物理だけマスターでやって途中まではクライアントってやってたから2人で動かしちゃってたんですね
これ頻繁に変えるのはまずそうなんですよねぇ private void FixedUpdate()
{
Vector3 targetCamPos = Target.position + offset;
Debug.Log(Time.deltaTime);
//float T = Smoothing * (1/ Time.deltaTime);
transform.position = Vector3.Lerp(Target.position, targetCamPos, Smoothing * Time.deltaTime); //←ここの結果がおかしい
Debug.Log(Smoothing * Time.deltaTime);
}
}
結果は
https://i.imgur.com/c8OLeJS.png
これをdeltaTime逆数にするだけで上手く行くんだしまあいんじゃね このとき、Smoothingが5で設定してて、5*0.02すると、0.1なるんだよ。 Smoothingを50にしてもうまくいくけど、チュートじゃ5f書いてるし 逆数にして上手くいくのはたまたま数値が合っただけなんじゃね?
FixedUpdateのフレームレートを変更しても期待通りの動作する targetCameraPosに近付くにつれてカメラの移動量を減らすためにやってるからSmoothing * Time.deltaTimeであってるよ。
まあ、これかなり「それっぽく動くように」書いてあるコードだし、fixedDeltaTimeじゃないから良い例ではないしSmoothingをちょっと変えただけで極端に変化しちゃうけど。
床が見切れるのはoffsetの値の問題だね。 カメラの移動をふわーっとスムージングさせたいわけじゃなくて、ターゲットに張り付かせたいならtransform.position = targetCamPosでいい。
というかTarget.positionとtargetCamPosのLeapだと、見る対象とカメラ目的地との中間にカメラが存在し続けることになるから、想定よりずっとカメラが寄ってると思う。
どういう処理になってるのかよくわかってないみたいだし、空のGameObjectにtargetCamPosを常に設定し続けて、どういう位置関係になってるか理解したほうがいいよ。 smoothing * Time.deltaTimeも何回もFixedUpdateで回ってこようと一定のはずだし
変わるわけない。
デルタタイムは加算じゃなく、毎回一定 Smoothingも変わらない。
逆にチュートリアルのやつみてなんであれでうまく動くのか不思議。
Time.deltatimeを累算するなら、
FixedUpdateよりまえに、
private float duration = 0;
//で宣言して、
private void FixedUpdate()
{
Vector3 targetCamPos = Target.position + offset;
duration += Time.deltaTime;
transform.position = Vector3.Lerp(Target.position, targetCamPos, Smoothing * duration);
これだとSmoothingに小さい数字入れたらなめらかにカメラ動くが。 >>723
頭の悪い子だなぁ
transform.position = Vector3.Lerp(A, B, T);
このAで渡すものが間違ってるんだよ
今現在のリアルタイムのカメラ位置を入れろって言ってるだろ?
そのTarget.positionのどこが最新のカメラ位置なんだよ
素直にチュートリアル通りにtransform.positionを入れろよ チュートリアルの書いてる通りにやると中間にカメラが存在し続ける よく見ると、Transform.positionなってるやん >>731
そりゃ代入する値を計算するのに使用する数値が変わらなかったら変わるわけないよ。
transform.position = Vector3.Leap(transform.position, targetCamPos, Smoothing * Time.fixedDeltaTime);
ってのは、毎フレーム、自分(カメラ)の位置と目標地点の中間(Smoothing * Time.fixedDeltaTimeの割合位置。Smoothingが5なら普段は5 * 0.02で約0.1になるから、10%の位置)に自分を移動するって処理なわけ。
自分を移動させて、次のフレームでまた自分の位置と目標地点の中間に移動して…って徐々に近付いていくから移動しながらカメラが追尾してるように見えるの。
例えば一本のひもを、9/10に切って、また9/10に切って、それもまた9/10に…ってやっていくと、切る位置はどんどん端っこに近付いていくでしょ? >>738
無視してください。こういうスレの澱です。 右クリックの動作をTilePalletのPickerにしたいんだけど無理? >>741
それはエディタ上で?それともゲームの動作として? アセット兄貴に聞くんですが
Spriteを任意の形状に切断できるアセットってありますか?
メッシュカッターのスプライト版みたいな
スプライトって矩形ベースだからなかなか方法が見つからなくて
コライダーは弄れてもスプライトの一部をランタイムで透過する方法がいまいち見つからない >>744
切りたいのか、透かせたいのか
どっち? >>743
エディタ上
無理ならショートカットキーに慣れるしかない 初歩的な質問で恐縮ですが、fbxキャラのオブジェクトタイプで、
モデル、マテリアル、テクスチュアというのはわかりますが、
ノードアトリビュート、ビデオ、ジオメトリー、デフォーマーというのは何ですか?
ちなみにあるキャラのノードアトリビュートは1001から1054まであって、
それぞれに12桁の数字がふってあります。これは何ですか? 違っていました。ノードアトリビュートは1001から1053までで、
1054から1107まではモデルになっていました。
そして最後の1108がジオメトリーで、
その後バーティックスが延々と続くようです。
つまりマテリアル、テクスチュア、ビデオ、デフォーマーについての記述は見られなく、
ノードアトリビュート、ジオメトリー、モデルのみが記述されていますが、
これはマテリアル、テクスチュア、ビデオ、デフォーマーについての記述は不要ということですか?
またバーティックスの数字の羅列の前にaがついてるのは何ですか?aがあるなら次はbもあるはずと思って探したのですが、bはなくaだけのようです。
これはどういうことなのでしょうか? バーティックスの記述もグループ化されているようで、
例えば第1グループのバーティックスと第2グループのバーティックスの数字の羅列の間には、
中休み的な記述があって、
それはレイヤーエレメントマテリアル、レイヤーエレメントテクスチュア、レイヤー、
その子ノードのレイヤーエレメント、モデル:ハイポリメッシュ、ジオメトリー:アイブローなどの簡単な記述が見られます。
このうちエイヤーにはバージョン番号、その子ノードのレイヤーエレメントにはタイプインデックス0と書いてあるだけで、
別になくてもいいような気がしますが、これも必要なことなのですか? >>745
どっちでもいいです
切って片方を消してもいい一部を透かしてもいいし
最終的には1部を消したいです Mac OS X用にビルドすると、実行した時に右上の最小化、閉じるボタンの間にある
最大化ボタンが押せてしまいウインドウサイズが拡大してしまいます
(Resizable Windowsのチェックははずしています)
Windows用にビルドした場合は最初から最大化ボタンは押せないようになってるのですが
何かMac用に設定する方法などあるのでしょうか? すいません、Macに不慣れで間違えました
拡大ボタンでフルスクリーンになるのはいいのですが、ウインドウ画面に戻すと
元のサイズに戻らず変なサイズになってしまいます
ウインドウ画面に戻った時に元のサイズにする方法はあるのでしょうか? EventSystemを使う際、例えばスクリプトに以下のような記述をしますが
public class Hoge : MonoBehaviour, IPointerEnterHandler {
public void OnPointerEnter(PointerEventData eventData) {Debug.Log("Enter");}
}
この頭の部分はMonoBehaviourとIPointerEnterHandlerのふたつのクラスを継承しているという意味ですか?
UnityC#は複数の基底クラスを持つことができるのでしょうか >>754
C#は複数クラスの継承不可
IPointerEnterHandlerはクラスではなくインターフェイス Unityはじめてはや2週間
やっとUnityちゃんお迎えした
https://i.imgur.com/WQcm0wN.png
ステートマシーンとかはこれから設定予定 javascript使いたい人は旧バージョン使い続けてるの? >>755
なるほど、ありがとうございます
混乱していたので助かりました Unityをインストールした時におまけでついてきたVisualStudioはどうもC#しか使えないぽかったので、C++も使えるようにアップデートしました。
これでやれることの幅が広がりました。
頑張ってソフトつくりますよ〜!!! humanoidの関節の角度制限って緩くしたりできるのかな?
ケレン味欲しくて大げさなモーション入れたら角度が足りないわ 相変わらず初心者以前の馬鹿ばっかり
ちょっと検索すればすぐ判ることを聞くな
自分で調べることが出来ないアホはUnityをやるだけ無駄 >>760
自決
中国語だけど動画があって良かった ■ このスレッドは過去ログ倉庫に格納されています