TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼
初心者が牧場物語をまったり作る
毎日1本ゲームを作るスレ
ゲームの開発コストについて
【ゲームエンジン】Unity初心者質問スレBuild3
【Ruby/SDL他】Rubyでゲーム制作・総合スレッド
ゲーム作りたいけど、やる気出ない人の愚痴スレ
ネットでの人材募集ノウハウ・募集文評価スレ
Javaでゲーム作る話してるキチガイがいるよ(藁
お前らはなぜゲームを作る又は作りたいんだ
C++でRPGゲームを作成する
【ゲームエンジン】Unity初心者質問スレBuild4
- 1 :2020/03/29 〜 最終レス :2020/06/14
- ゲームエンジンUnityを楽しむ初心者による初心者の為のスレ
その為「アセットを購入しましょう」「チュートリアルやれ」「ググレカス」等禁止
初心者が親身になって初心者に教える。
又ググレの場合、何のキーワードでググるのか書いてね
●リンク
・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←スクリプトのエラー番号をこれで検索すると原因が日本語で出てきます。
※前スレ
【ゲームエンジン】Unity初心者質問スレBuild3
https://itest.2ch.sc/mevius/test/read.cgi/gamedev/1578720539
- 2 :
- 無かったようなので
- 3 :
- 画像を取り込んだ時にインスペクターで設定する
FilterMode という項目ですが、
FilterModeはPoint(no filter)にしておいたほうが負荷がかからなくなるのでしょうか?
動作が軽くなるのであれば全部の画像のフィルターモードをPoint(no filter)にします。
- 4 :
- それともう一つ
フィルターモードの下に
compression という画像を圧縮するかどうか項目もあるのですが、
こちらも圧縮無しの Noneにしたほうがゲームの動作が軽くなるでしょうか。
かなり大きめの画像をアニメーションクリップで動かしたいので、容量が多少多くなっても
動作が軽いほうがいいと思ってます。
- 5 :
- キャラクターコントローラーが悪いのか、Updateの処理が悪いのか、アニメーションが悪いのか分からないのですが、動きの違和感を取ることができずに困っています
1プレイヤーが移動中>2魔法を打つアイコンをクリック>3移動(走る動作)を止める(敵をターゲッティングしていたらその方向を向く)>4構えて魔法を撃つ
という流れを作っているのですが、
3で歩くモーションが止まる前、対象の方向を向く前に、発射の構えをする前に魔法を放ってしまいます
「Unityゲーム開発 オンライン3Dアクションゲームの作り方」
かなり古い書籍ですが、この書籍をもとにキャラクターの移動には専用のCharacterMoveスクリプトを使用して、SendMessageで目的地の情報等を送っています
行動はすべてマウスで行うようにしており、左クリックで指定した位置へ移動するようにしています
アニメーション遷移も遊びの部分?は消し、終了時間ありのチェックも外してあります
特定の行動(魔法、スキル等)を使用の際、移動・方向転換をきっちりと止めてから次のモーションに移ることはできないでしょうか
- 6 :
- http://s.kota2.net/1585634790.gif
このようにボタンを押して画像が切り替わるものを作りたいです。シーン遷移ではない方法で作りたいです。
自分が本を読んで考えた方法は、列挙型 enum で5個のパートを作って、
最初の画像1オブジェクトをスクリプトで画像2や画像3に変更する方法です。画像は配列で5つ格納します。
2個の移動ボタンを押したら列挙型で用意したパートに移動させて、配列で格納した画像を写すようにする方法です。
ただこの方法だと5個の画像をピッタリ同じサイズにしないといけないので、そこがネックになっています。
何かいい方法があったら教えてください。
- 7 :
- >>6
自分もそれ知りたい
- 8 :
- >>6
もう少しやりたい事を明確にして頂けると回答しやすいです。
サイズをぴったり同じにするのが何故ネックなのですか?
異なるサイズの画像を引き伸ばして(サイズを合わせて)表示したいのか、中央寄せで表示したいのか、アスペクト比を保ったまま〜など何がやりたいのかわからないので。
- 9 :
- http://s.kota2.net/1585663533.gif
やりたい事はお絵描きソフトで作った装飾文字をimage画像にして
左右の送るボタンで画像テキストを送るノベルゲームを作る事が目標です。
ですので表示する位置は下の方です。
文字画像は等倍で表示したいです。x軸は画面中央にして y軸は下の方にしたいと思っています。
- 10 :
- >>9
1オブジェクトで画像を切り替えるんじゃなくて、1画像1オブジェクトにしてそれを切り替えればいいんじゃない?
そうすればサイズも自由にできるっしょ
- 11 :
- >>9
自分は素人なので他のアプローチがあるかもしれませんが、サンプルを作って動作確認できたので一応書いときます。
1.テキストを表示したい場所にイメージのUIを置く(サイズは0×0でもなんでもok)
2.ScriptableObjectでSpriteのリストを作成(画像1)
3.テキスト画像を作ったScriptableObjectのイ
ンスペクターにすべてセットする
4.さっき作ったUIにスクリプトをセット(画像2)
https://i.imgur.com/3m3BdFc.jpg
https://i.imgur.com/92qpFB6.jpg
https://i.imgur.com/mOpsIjD.jpg
https://i.imgur.com/Mxv64v4.jpg
5分くらいで作ったやっつけ仕事なのであとは好みに変更して下さい。
あと専ブラスマホにしかいれてないので見にくくてごめんなさい。
- 12 :
- よくあるRPGのスキルスロットを作成しているのですが、IPointerClickHandlerのOnPointerClickが反応しなくて困っています
左クリックのみでスキルを発動させたいのと、スロットをショートカットスロットに移動させても同様に動かしたいのでこちらを使いたいのですが、
反応してくれません
IBeginDragHandler、IDragHandler、IDropHandler、IEndDragHandleは正常に動いています
試しにいれてみたIPointerEnterHandlerも動きました
なのでEventSystemには問題がないと思います
スロットにはイメージオブジェクトがあるのでレイキャストがブロックされている可能性も考えて
キャンパスグループでレイキャストブロックを外してみましたが変わりませんでした
一体何が原因なのでしょう?
- 13 :
- もう少しくやしく
- 14 :
- using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.EventSystems;
public class testClickHander : MonoBehaviour, IPointerClickHandler
{
public void OnPointerClick(PointerEventData eventData)
{
Debug.Log("動作確認");
}
}
コードは上記のような簡潔なもので試しました
eventDataから左クリックの情報が取れるので利用していきたいです
ためしにIPointerUpHandler,IPointerDownHandlerを使ってみましたがこちらも反応しませんでした
各スロットは
Slot (イメージ、ここにスクリプト割り当て)
+ SkillImage
+ StateImage
+ SelectImage
とのような形になっています
- 15 :
- なるほど
- 16 :
- >>10
紙芝居のようにする方法も考えたのですが、中央に表示するキャラクターの目パチは口パクが出来いなくなってしまうので、その方法は断念していました。
>>11
どうも有難うございます!おかげさまでBackボタンとNextボタン両方実装することが出来ました!
画像の追加がすごく簡単で便利です。
コードを書いていただいて本当にありがとうございます。
知らないコードの書き方がたくさんあってとても勉強になりました!
- 17 :
- 質問失礼致します。
カードゲームの手札をよくある扇形にソートするにはどの様な手法がありますでしょうか?
ホライゾンレイアウトグループを曲線に曲げる様なイメージなのですが。
- 18 :
- 円の外周にカードの中心が来るように配置。
後はカードが離れる具合を見ながら、円からの距離を調整する。
- 19 :
- >>17
パッと思いつくのは
アニメーションカーブとLerp関数を使う、とかでしょうか。
パスに沿ってオブジェクトを配置する、的なアセットを探してみるという手もありそうです。
- 20 :
- >>18,19
回答ありがとうございます。
まず>>18さんのアプローチで挑戦してみようと思ったのですが円の外周を用意する事すら出来なかったので、円状にオブジェクトを並べるアセットを探して使用してみました。
文字通りカードが円状に広がったのですが、求める挙動に調整する事は出来ませんでした・・・。
>>19さんのアニメーションカーブについては理解が及ばず挑戦を諦めました。。
次はパス状にオブジェクトを配置するアセットを探してみようと思います。
色んなゲームに採用されていて、簡単そうに見える事でも自分で実装しようとすると難しいですね。
3Dのゲームも曲線を使わないものは簡単に作れたので、曲線の表現が初心者の最大の難関かもしれません。
- 21 :
- >>20
これを新規のmonovihaviorに貼り付けて、インスペクタからカーブに山なりのカーブを、CardObjには適当なカードのプレハブを、
始点と終点にはそれぞれ空オブジェクトを割り当てて動かしてみてください。始点と終点のY位置は同じ値にしておく方がわかりやすいです。
この例はめちゃくちゃざっくりなので実際にゲームで使うには不十分だと思いますが、カーブとLerpを使って実装するためのヒントにはなるかと・・・
public AnimationCurve curve; //このカーブからY位置に足す値を取得する
public GameObject cardObj; //カードのプレハブ
public Transform startTr; //始点
public Transform endTr; //終点
public int cardNum = 52; //カード枚数
void Start()
{
SpawnCards();
}
void SpawnCards()
{
float step = 1f / (cardNum-1);
for (int i = 0; i < cardNum-1; i++)
{
var offsetY = curve.Evaluate(step * i);
var pos = Vector3.Lerp(startTr.position, endTr.position, step * i);
pos.y += offsetY;
Quaternion q = Quaternion.Lerp(startTr.rotation, endTr.rotation, step * i);
Instantiate(cardObj, pos, q);
}
Instantiate(cardObj, endTr.position, endTr.rotation);
}
- 22 :
- >>21
ありがとうございます!
帰宅したら試させて頂きます!
- 23 :
- 22です、今日一日色々試したのですが「カード真っ直ぐでも良いじゃない」という結論にいたり他の作業を進める事にしました。
丁寧にコードまで頂いたのに生かせず、質問するレベルにも達していない事を痛感しました。
回答頂いた方々申し訳ありません。
ありがとうございました!
- 24 :
- Unityで作ったゲームをリリース後に、バグ修正などのアップデート対応をするにはどのようにしたらいいでしょうか?
Unity、バグ修正、アップデート方法などで検索しても、Unity自体のアップデート解説が出てきて、
Unityで作った自作ゲームのリリース後のバグ対応のやり方が中々見つかりません。
ダウンロードとパッケージ販売を考えているので、ビルドしたプロジェクト丸ごと再ダウンロード以外の方法を探しています。
できれば修正パッチや、一部ファイルの差し替えなどでの方法を知りたいのですが、方法を教えて下さい。
解説しているサイトや書籍の紹介等もあればありがたいです
- 25 :
- 再ビルドして更新しか無いのでは?
アセットに分離出来るのは素材の部分だけだからさぁ〜
- 26 :
- マウスクリックで指定した地点へ向けてキャラが放物線を描いて落下攻撃を仕掛ける行動を作ろうとしています
指定できる地点はキャラから半径数m以内の制限があり、その範囲内ならジャンプした時はどの距離でも同じ高さまで飛び、
指定した地点へ落下するようにしたいのですが、どのようにすればよいのかわかりません
リジッドボディにそういう放物線を楽に実装できる関数があるということなので使ってみた所、
ジャンプの前にキャラが地形をすり抜けて延々と落下してしまうため使えませんでした
仕方なくキャラクターコントローラーで実装しようとしているのですが、普通のジャンプのように
velocity.yに加速度を付与してその場で高く飛び上がるだけでうまくいきません
何か良い方法はないでしょうか
- 27 :
- テキストをくっきり表示させる方法あれば教えてほしいです
2Dスプライト画像のFilter ModeでPoint(no filter)を選択した時みたいに
キャンバスのテキストをぼやけないように表示させることってできますか?
- 28 :
- >>26
同じ高さで違う距離にするには、独自で座標処理するのが楽。
真面目な物理演算で求めるには、多分こういう質問してるぐらいだから、いまはやめた方がいいよ。
どうしてもやるっていうなら、ベロシティの挙動をしっかり把握、勉強して、着地地点からの逆算で角度と加速度を割り出す式を作る等がんばれ。
- 29 :
- ttps://keisan.casio.jp/exec/system/1204505768
で使っている式使えば良い
- 30 :
- AdMobバナーの表示非表示切り替えがしたいのですがコードがうまく書けません
https://qiita.com/hymst/items/f1c70cdf14643b6f1c51
このページのコードを、初めに広告を表示させるシーンのオブジェクトにつけ、
〜
//バナー表示の停止
public void StopBanner()
{
bannerView.Hide ();
bannerView.Destroy();
}
〜
バナーを消したいタイミングのスクリプトの
void Start () { } の中に StopBanner(); と書くと
「現在のコンテキストに'StopBanner'という名前は存在しません」という赤線エラーが出るので、
修正候補に従って
private void StopBanner()
{
bannerView.Hide();
bannerView.Destroy();
}
を追加すると、
「現在のコンテキストに'bannerView'という名前は存在しません」という赤線エラーが出てしまいます。
どうすればいいのか教えてください。よろしくお願いします。
- 31 :
- >>25
素材がアセットに分離できるというのはどういうことですか?
例えばグラフィックやBGMなど容量の重いファイルを分離して、バグ修正時再ダウンロードで差し替えるのはスクリプトだけ、ということは可能ですか?
- 32 :
- >>31
可能
その疑問を感じた瞬間にググったら色々出てると思うけど
素材分離も色々と面倒だから良く計画して
- 33 :
- >>30
パッケージインポートなので先がわかりません。
まずはbannerViewが見つからないから、それを追いかけてみてください。
この通りなら、見たところ作られていますが…
- 34 :
- >>33
ありがとうございます
このように別のシーン、別のスクリプトにまたがって関連する指令を出すには
他に何か必要なコードなどがあるのでしょうか?
- 35 :
- >>34
あるよ。
別のスクリプトを参照、でググると出てきます。
- 36 :
- >>32
すいません。最後に一つだけ教えて下さい。
この分離機能というのはAssetBundleを使うことを指していますか?
分離はこのことなのかなと思っているのですが、知識が足りていないので確信が持てません。
もしかしたらぜんぜん違うことを指していて、見当違いの方向へ走っていないかという思いが拭えなくて…
- 37 :
- >>36
そうです
使い勝手が良いとは言えない、色々と面倒だと思うので頑張って
- 38 :
- >>37
ありがとうございます! 状況的に使うことになりそうなので頑張って勉強します
- 39 :
- unityで光のレイトレーシングじゃなくて電波のレイトレーシングってできますか?
- 40 :
- 初歩的な質問なのですが
スクリプトで変数をパブリックで宣言したらインスペクターに表示されますが
変数の頭文字が勝手に大文字に代わっています(インスペクタ側)。
あれって紛らわしくて混乱するのですが慣れるしかないですか?
それともどこか設定で小文字のまま表示するとかできますか?
- 41 :
- 混乱する意味がわからない
大文字になる。それだけのことだろ
- 42 :
- privateはCamel形式、publicはPascal形式で
- 43 :
- 超初心者な質問ですが
privateの後とかに同じ単語が二つ並んでて
一つ目は頭文字が大文字で
二つ目は全部小文字とかあるのは
何なんでしょうか
- 44 :
- 本やネットのコードを見ていってるのですか?
初めのが型であり、クラスなどです
2つ目の単語は自由に名付けていいけど
便宜上型名をはじめの一文字だけ小文字にした名前が
単純に使いやすいからつけているだけだと思われます
重複しないのであれば型名とほぼ同じ名前を命名することもありえます
- 45 :
- >>44
なるほど
自由につけていいものだったんですね
ありがとうございます
- 46 :
- >>40
いっそ日本語の変数名にしてしまえばいい
- 47 :
- 全て日本語で記述する言語あったけど、外人はこういう楽な感覚でプログラム出来るんだなって思った事がある
- 48 :
- unity2020でビジュアルスクリプティング追加されるって聞いたんだけど
今来てる2020.1.0b4ではまだこの機能追加されてないの?
- 49 :
- パーソナルでダークスキンを使う方法を詳しく教えてくれませんか
というかそもそも、今のバージョンでも出来るのでしょうか?
情報サイトが古いせいなのか、うまく動かず困っています
- 50 :
- >>49
こんな所で詳しく教える様なもんじゃありません。
変えれたけど一部色が気に食わなくて元に戻したよ。
そんないいもんじゃないダークモード。
- 51 :
- 目が痛いんで暗くしたいだけなんですけど…
- 52 :
- >>51
何言ってんだ?お前。
金払いたくないのでクラックする方法教えて下さい〜って誰も教えるわけないだろ。
目が痛いなら金払え。
もしくは自分で調べて自己責任でやりなさい。
- 53 :
- ダークモードってのあるんだ。しかも有料。
そりゃ金払うべきだね。
- 54 :
- 自分はクラックしておいてその言い様とは…unity民ヤバイっすね
ダークモードで商売しようという発想も相当狂ってると思うけど
- 55 :
- あ、ビルド通って動いたんで
今度ブログにでもやり方纏めておきます
- 56 :
- すまんな、前からメンタルがダークなやつおんねんここ
- 57 :
- 煽りに一々反応してたらキリないよ
一発NGでおけ
- 58 :
- ダークスキン化で他にも困っている人が居るかもしれないので軽く纏めておきます
まずここから最新をdl
https://github.com/Gluschenko/UnityDarkSkin
ZIPを解凍するとUnityDarkSkin.slnが見つかるので、
これをVisualStudioで開いてビルド
この時.NET Frameworkが古いとビルド通らないので
アップデートしておく
UnityDarkSkin.Appのbinの中にUnity Dark Skin.exeが出来ているので、
こちらを実行してunity.exeを指定
以上
Unityさんも開発を民主化とか謳うんだったら、
ダークスキン如きで商売しようなんて矜持の無い事は止めた方が良いですよ
UE4との圧倒的な差が一生縮まりませんよ
- 59 :
- 有料なら、これ営業妨害だから公開ヤバくない?
- 60 :
- ここまでリテラシーないとは・・・。
ゲーム作りでも素材の権利とかちゃんと気を付けないといつか痛い目みるぞ。
- 61 :
- 知らないうえに英語も読めないなら恥かくだけだから黙っておきなよ
- 62 :
- コロナによって
あらゆることがオンラインで
する時代きた?
我々Unity製作者は有利かな?
- 63 :
- >>61
何を知らないのかもわからんし、英語ってなんの事?貼られたURLか?開いてないよ。
なんか合法的な奴探してきたならすまんね。
>>49,59の流れからヤバイ奴だと思ったけど出来たなら良かったね。おめでとう笑
- 64 :
- 今時ダークスキンが有料だけとかちょっとどうかしてる感覚だな
気づけば使用ソフトUnity意外は全部ダークスキン系だわ
- 65 :
- 洞窟物語的な2Dゲームを作ってみたいんですが、初心者は何から始めるのがいいんでしょうか…
- 66 :
- 質問おじさん乙
- 67 :
- 設置したオブジェクトが数秒後に爆発し、ダメージを与える機能を作っています
設置できるオブジェクトはそれぞれ形が異なり、その形に応じて爆発の形と範囲を動的に変更したいのですがやり方がわかりません
例えば、球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
何か良い方法はありませんでしょうか
- 68 :
- >>64
マネタイズ手法が気に食わないから割るって方がどうかしてない?
- 69 :
- やっぱなんでもないです
- 70 :
- >>67
コライダのmeshを変えたり、サイズ変形させればいい。
- 71 :
- >>69
まず始めてみて具体的にわからない事が出来た時に質問すると良いと思います。
例えばアクションゲームならこういう風にやったけどキャラの絵が出ませんとか、ジャンプさせるにはどうしたら良いですかとか。
- 72 :
- >>70
コライダの方である程度範囲はどうにかなるかもしれませんが、爆発の方はどのように変形すればよいでしょうか?
- 73 :
- >>72
どうやら、よくわからない。
何がしたいのかをもっと細かく。
- 74 :
- 孫悟空のかめはめ波みたいな光るオブジェクト作りたいのですができるだけ簡単な方法を教えてほしいです
HAROとかいうエフェクトくっつけて試してみましたがスクリプトでの制御が全然わかりません・・・
- 75 :
- >>74
何をどう制御したいのか具体的に。
- 76 :
- お前らよくこんな難しいことできるな
ゲーム作るの大変すぎる
でも楽しい
- 77 :
- >>65
そのゲーム知らん
ジャンルはプラットホームっていうやつなのかな
- 78 :
- ここ初心者煽りばっかりだな
- 79 :
- >>78
何をどう煽られたと感じたのかわからないけど、
「スクリプトで制御」という一言では何も伝わらないと思いますよ。
発射のタイミングなのか、ビームの動きなのか、ヒットの判定なのかetc
かめはめ波を発射したいだけならUnity かめはめ波でそのまんまのブログがヒットしますよ。
- 80 :
- こんな質問で回答できるかっw
- 81 :
- >>68
割ってまでダークスキンとかアホだと思うけど
一昔前みたいなUIは何とかして欲しいとは思うけど
- 82 :
- >>73
>>67
>設置できるオブジェクトはそれぞれ形が異なり、その形に応じて爆発の形と範囲を動的に変更したい
>例えば、球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
これ以上詳しくとなるとどういう情報が必要なんでしょうか?
・爆発の形状をスクリプトで動的に変えたい
要点はこれだけなのですが
検索してもノーコーディングでレンダラーをいじる記事しかヒットしません
- 83 :
- >>82
爆発の形状って具体的にどんなものなの?
スクリプトで変えたいって、どういう形をどういう形にしたいの?
頂点変形の気がするが、もしそうなら多分これから時間かかると思うよ。
下の矩形で練習してみては?
https://qiita.com/divideby_zero/items/eef7604e306300fd7833
求めてるものが違うなら、まだわからない。
- 84 :
- >>82
立方体を爆発させて当たり判定を球体にしたいって事?
爆発の定義がエフェクトを表示しながら元のオブジェクトをデストロイする事ならエフェクトの当たり判定を球状にして拡大していけば良いのでは?
- 85 :
- >>83
>>84
>>67
>球状や正方形なら爆発は球状に、長方形ならカプセル状に爆発と範囲を広げたいです
ここからさらに具体的にとなると・・・
正方形、もしくは真球の物体が爆発した場合、物体を中心に球状に爆発が広がります
横に寝かせた長方形の物体が爆発した場合、その長方形を中心にカプセル状に、円柱を横にしたような形で爆発を広げたいです
直立した長方形の場合、これもカプセル状に、直立した円柱状に爆発を広げたいです
爆発自体はパーティクルのエフェクトで行っています
ただ球状に爆発させる分には問題ないのですが、オブジェクトに沿った形で爆発が形状を変える方法がわかりません
オブジェクトの形はある程度可変、長方形ならその長さをある程度自由に伸縮させて設置できるため、形ごとに爆発のエフェクトを用意するのは現実的ではありません
>ならエフェクトの当たり判定を球状にして拡大していけば良いのでは?
ただ球状に拡大していった場合、長方形の物体の場合、中央部分だけが異常に爆発と当たり判定が広い状態になるので望ましくありません
- 86 :
- エフェクトの事なのか当たり判定の事なのかわからんけど、
その物体の両端と中央の三ヶ所にコライダとパーティクル置いてそれぞれ球状に広げれば
一応中央だけ膨らむことはなくなるぞ
ちょっと無駄があるけど
- 87 :
- コライダーの形状って直接スクリプトからパラメータいじれなかったっけ?
読み込み専用?
- 88 :
- >>86
>エフェクトの事なのか当たり判定の事なのかわからんけど、
見た目と判定に差異があるとゲーム性に問題があるためエフェクトと当たり判定の両方の形は揃えたいです
なので、どちらか片方のことを話しているつもりはありません
>その物体の両端と中央の三ヶ所にコライダとパーティクル置いてそれぞれ球状に広げれば
それだと団子が3つ並んだ形で当たり判定も見た目も広がるため、今度はそれぞれの間の部分がおかしくなります
どうもこの様子だとよい方法はないようですね
パーティクルのファンクションがインスペクターの設定数より少ないようだったので難しいとは思っていましたが
>>87
コライダの形状はある程度スクリプトから設定可能なので、当たり判定だけなら球状、カプセル状自分の望んだ形にすることができることは確認しています
しかしエフェクトの方の形がそれに合わせられません
- 89 :
- >>88
わかった。
まず、当たり判定は置いときなさい。
つぎに「もしくは」もいらない。
やりたい事の例一つで絞りましょう。
まずは、横に寝かせた長方形の爆発パーティクルを楕円で広げたい、ということでいいか?
- 90 :
- >>89
>つぎに「もしくは」もいらない。
>やりたい事の例一つで絞りましょう。
すみません。ちょっとこの意味が分からないのですが、初めからやりたいことは一つしか示していませんが、どこがどう伝わったらそのような解釈になるのでしょう?
>まずは、横に寝かせた長方形の爆発パーティクルを楕円で広げたい、ということでいいか?
楕円ではなくてカプセル状です
爆発の中心にある長方形から半径は一定距離で爆発を広げたいです
- 91 :
- パーティクルを楕円で広げたいのか、一定=真円で広げたいのか?
- 92 :
- >>90
なんでこいつ偉そうなの?
そもそも長文の癖にずっと何言ってるか良くわからないw
オブジェクトの形に沿ってと言ってるのに正方形は球状に爆発しますとか、大体正方形って事は2Dなの?正六面体(キューブ)の3Dなの?爆発ってなんだよ?
自分の感覚で話してること他人がわかってくれるわけないでしょ
得たい情報を得られる様に質問出来てないのが悪い
- 93 :
- >>91
楕円でも真円でもなくカプセル状に広げたいです
長方形を例にしたのが悪かったのでしょうか
横に引かれた線の中心に、見た目と当たり判定が一致するように、各点一定の半径でパーティクルの爆発のエフェクトがカプセル状に広がるようにしたいです
>>92
偉そうにしていたつもりはありませんでしたが、不快にされたのなら失礼いたしました
どこがどう伝わらないのかがわからず、無駄に長文になってしまってすみません
全体を通してすべて3Dのことについて話しています
正方形は正六面体のことであり、これらの線を中心に一定の半径で爆発を広げた場合、球体に近い形状になるため、球状と表現いたしました
そもそも爆発とは設置したオブジェクトから広がるダメージ判定を伴うパーティクルのエフェクトです
見た目と判定が一致してくれないとプレイヤーの位置取りの判断ができなくなるため、エフェクトの形状を一致させる方法を探しています
ここまででまだ足りない情報がありますでしょうか
またご指摘いただければ改善していきたいと思います
- 94 :
- @爆発の飛散物を、球形にまき散らす
A球形の当たり判定を行う
B爆発の飛散物を、カプセル状にまき散らす
Cカプセル状の当たり判定を行う
D元オブジェクトの形に応じて、@AとBCを動的に選択する
の、どれがわからないんだ?
>>82
からするとDだけがわからないのか?
>>93
からすると@Bもわからないのか?
@〜Dの切り分けが間違っているかもしれないけど、
問題の正しい切り分けは、質問者側でやってくれ
そして、範囲を絞って質問してくれ
- 95 :
- >>94
設置する元オブジェクトの長さはプレイヤーの行動に応じて可変であるため、別々に作った@とBのどちらかを選択することでは解決できません
Bで作ったカプセル状にまき散らすエフェクトの長さ(カプセルの高さ)を変える方法を知りたいです
- 96 :
- >>95
こういう事かな?
ttps://www.jonki.net/entry/2014/11/15/165419
旧システムが使われてるから動くかわからないけど解決の糸口にはなるかも?
時間が空いた時にまだ解決してなかったらいじってみるよ。
- 97 :
- https://stackoverflow.com/questions/40576858/unity-admob-hide-banner-doesnt-work
このページの回答のRequestBanner function:についての解説なんですが
先頭のBannerViewを取り除くだけで
ローカル変数からグローバル変数に変わるということなのでしょうか
ローカルかグローバルかはメソッド内で定義されたかどうかだと思うのですが
BannerViewがなくなることによって何が起きるのか解説お願いします。
- 98 :
- >>95
パーティクルエミッターが、線上のが欲しいということでしょ?
両先端だけ見れば、真円状の放射、途中の線上は円柱状。
ちがうかな?
- 99 :
- >>96
具体的なサイトありがとうございます
とりあえず動かしてみるには見てみましたが望むような挙動はまだ得られていません
とりあえずメッシュの座標を変えれば望む形に変えられるということなのでしょうか
>>98
それは設置するオブジェクトに応じて別々に作ったエフェクトを割り当てる方法でしょうか
円柱状の高さを変えることができるのであれば対応できるのですが
- 100 :
- エミッターの奥行き厚みを無しすれば、線状のエミッタになるはず
- 101 :
- ラインの通知みたいな赤い丸に数字が入ってるアイコンってUnityのUIにありましたっけ?
何処かで見た覚えがあるのですがアセットだったかな・・・。
- 102 :
- >>97
これ調べてもわからないです
マジでお願いします。
- 103 :
- 直訳すると、
「RequestBannerが悪いんじゃね?
bannerViewは田舎もんだから、もっと世界を見なくちゃあかんぜよ」
「もうひとつ問題があるっぺ。
HideAdでbannerViewを隠す前にデストローイ!してるべや。
bannerViewを隠してからデストローイ!してもいいけど、
べつにデストローイ!する必要ねぇんじゃね?」
・・・つまり、5行目にstaticを付けなさい、
private static BannerView bannerView;
あとHideAdの中のDestroyはいらないよ、
ってことじゃね?
(補足)RequestBannerメソッドで、毎回bannerViewインスタンスをCreateしちゃってるから
毎回Createしないで、bannerViewをstaticにして、インスタンス作成済みなら作成済みのインスタンスを使いなさい、
ってことだな
- 104 :
- 学術巨大掲示板群: アルファ・ラボ
ttp://x0000.net
物理学 化学 数学 生物学 天文学 地理地学
IT 電子 工学 国語 方言 言語学 など
PS 虫は宇宙人だよ ttp://x0000.net
- 105 :
- スクリプトを書く時に使わないusingとかモノビヘイビアとかって皆さん消してますか?
消さないとどの様な弊害があるのでしょうか?
- 106 :
- 使わないのは勝手に消してくれるわ
- 107 :
- >>106
そんな機能あるんですか?
こちらはVS使ってますが使われてないusingはグレーアウトしてる感じです。
モノビヘイビアはコンポーネントを使わなければ消しても問題無いんでしたっけ・・・。
よく解説動画などで使わないので消しましょうみたいな流れがあるので読み込み速度等に影響するのかな?と思いまして。
- 108 :
- 使わない部分はコンパイラが勝手に無視してくれるので残してようが問題ない。
単にソースが長ったらしくなって読みにくく鳴るから消そうねってだけ。
- 109 :
- >>107
VSだけど拡張機能いっぱい入れてるから正確にどれが作用してるかわからんけど
保存時にコード自動フォーマットしてくれる時に消えてるからその辺
- 110 :
- パソコンのメモリって8GBでも足りますか
unity動かすためにはこれぐらいで十分ですかね?
- 111 :
- 最低16は欲しい
できれば32
- 112 :
- 最低16ですか
できれば中古で買いたいんですがそうそうないですよね
- 113 :
- Macのbookシリーズじゃなきゃ、後で差し替え。
- 114 :
- 個人で作るレベルの2Dゲームなら8Gで良くない?
- 115 :
- いや、unityは大きくなり過ぎてるから足りない。
特にアセットを数個入れるだけでギガ単位でプロジェクト容量が増えてく。
- 116 :
- 8でもいいよ
そりゃ多い方がいいけど
- 117 :
- でぇじょうぶだ
仮想メモリがなんとかしてくれる
- 118 :
- そりゃあ動くよ当然
快適に動かすにはほしいという話
いまメモリ安いし
- 119 :
- 質問です
2次配列 INT型 (Y3,X10) を宣言したとして
Y0 = {1,2,3,4,5,6,7,8,9,0}
Y1 = {4,5,6,2,3,4,6,7,8,0}
Y2 = {4,2,3,4,5,6,2,8,9,0}
みたいにY軸にまとめて数値を入れたいのですが
どういうふうに記述すればいいですか?
- 120 :
- >>119
https://docs.microsoft.com/ja-jp/dotnet/csharp/programming-guide/arrays/multidimensional-arrays
- 121 :
- >>120
ありがとうございます !
- 122 :
- 紐状のオーラを体に巻き付けて動きをアシストさせて、身体機能を向上させる、
みたいな演出をしたいのですが、パーティクルで可能でしょうか?
それともBrenderで作るべきでしょうか
紐を巻き付けるという演出上、頂点数がすごいことになるのでそれにさらにアニメーションをつけるとかなり重くなりそうなので
何かもっと軽く作る方法はないものかと
- 123 :
- >>122
https://flypot.jp/2018/08/06/shuriken_book/
- 124 :
- 当たり判定の際、相手のパラメータをGetComponentせずに参照するやり方を教えて下さい。
■前提
攻撃側と防御側でコライダーが接触した際、攻撃側の攻撃力を参照して、防御側の防御力と差し引き、防御側のHPを減らしたいです。
コライダーの検知は防御側の当たり判定をつけた子オブジェクトにアタッチしたスクリプトでOnTriggerしています。
防御側のパラメータは、Startで親のパラメータをキャッシュできるのですが、攻撃側のパラメータは都度誰に攻撃されたか変わるので、
collisin..gameObject.GetComponentで相手のスクリプトを取得しています。
しかしGetComponentは重いので接触の度に行うのはパフォーマンスに不安があります。
小ダメージを連続多段ヒットさせる攻撃などは危ない臭いがしています。
しかし、OnTrigger内で相手のパラメータを参照する方法を調べても、GetComponent以外が中々見つからず困っています。
- 125 :
- 接触時だけなら重くないはずですが。
そうでなければ、全て管理するしかないかと。
- 126 :
- ゲームオブジェクトとコンポーネントを紐付けたディクショナリ作って
呼び出し時はそこからコンポーネントを取得するとか
- 127 :
- 解像度によってPostProcessingのBloomがかなり見た目変わりますけど、皆さんどうやって対処してますか?
- 128 :
- RPGのスキルの説明文やカードゲームのカードの効果のテキスト部分などは皆さんどうやって管理してますか?
一つ一つをプレハブ化して無理やりやる事も出来るのですが、もう少しスマートな方法が無いものかと模索しています。
- 129 :
- エクセルで管理
- 130 :
- rigidbody2dで水泳の蹴伸びみたいな反力を再現したいのですがうまく跳ねてくれません
どうすれば再現できますかね。。。
- 131 :
- 現在どうなっているのか、そこからどうしたいのかをもっと詳しく書かなきゃ答えられるはずなかろうにw
- 132 :
- >>129
例えば説明文が「敵に5ダメージ」だとして、
5の部分を変数にしてバフ等の効果によって変更可能にしたい場合どう管理すれば良いのかが思いつきません。
今はひとつひとつを関数にして表示しています。
public string Attack(int playerAttack)
{
var text = $"敵に{playerAttack}ダメージ";
}
こんな関数をたくさん書いたクラスから呼び出してtextに代入する感じです。
理想としては、ScriptableObjectにstring Descriptionを追加してインスペクターに「$"敵に{playerAttack}ダメージ";」の様に書き込めると非常に楽なのですが、記号なども含めてそのまま表示されてしまいました。
インスペクターのフォーム内で変数を使用する方法はあるのでしょうか?
この様に変化するテキストを管理したい場合もエクセルは向いているのでしょうか?
- 133 :
- >>130
物理挙動の話なら的外れかもしれませんが、
ttps://qiita.com/ryosebach/items/5bd90d4b464b9059f35d
ttps://qiita.com/pixelflag/items/e5ddf0160781170b671b
アニメーションの緩急はEasingと言うみたいです。
解決のヒントになれば良いですが。
- 134 :
- 質問です
カメラを矢印キーで上下に動くようにしたいのですが…
下のスクリプトにtransform.Translate(0,1f,0)のように書き足してみたのですが、カメラが1f上を写すだけで移動しませんでした。
2Dです。
public GameObject Player;
void Update()
{
Vector3 PlayerPos = Player.transform.position;
transform.position=new Vector3(PlayerPos.x,0,-10);
}
- 135 :
- >>134
カメラのスクリプトじゃないのか?
- 136 :
- >>135
カメラのスクリプトです
このスクリプトだとプレイヤーのx軸を追従するようになってます
- 137 :
- >>136
なら、合ってるよ。
キャラの座標を毎回カメラに入れてるでしょ。
- 138 :
- いや違うだろw
カメラを十字キーで上下だぞ
x座標をプレイヤーポジションに合わせているだけで
入力すらとってないじゃないか
- 139 :
- よくわかんないから
きちんと書いてくれないか?
x軸はいいからy軸をどうしているのか
- 140 :
- >>138
一応
if(Input.GetKey(KeyCode.UpArrow))
{
transform.Translate(0,1f,0)
}
のような形でキー入力は入れてみたんですが、これだと上キーを押した時にカメラが1フレーム上に移動するだけでした…
- 141 :
- >>139
プレイヤーをジャンプさせたときに一緒にカメラが移動してしまうので0にしています
0のままだと動かないそうですが、どう変えればいいのかわからず…
- 142 :
- 毎フレームy座標が0に戻ってるのでは?
yもプレイヤーに合わせるからなるんじゃないのかな
transform.position.xでx座標だけプレイヤーのx座標にしたらどうだ?
- 143 :
- ありがとうございます
transform.position.xはどこに入れるのが正しいんでしょうか…
いろいろと試してみたのですがことごとくエラーを吐かれてしまいまして
- 144 :
- >>142
これやると何故かエラー出るんだよなぁ
var x = Player.transform.position.x;
var y = transform.position.y;
if(Input.GetKey(KeyCode.UpArrow))
y+=1;
else if(Input.GetKey(KeyCode.DownArrow))
y-=1;
transform.position = new Vector3(x,y,-10);
これで
- 145 :
- >>144
ああああああできました!!
ありがとうございます!!
- 146 :
- お二方ともご丁寧にありがとうございました!
- 147 :
- simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
- 148 :
- rigidbodyにおいて、質量(密度?)を不均一にしたい(おきあがりこぼしのように一部は重く、一部は軽いというような)のですがやり方を御教授頂けないでしょうか。
- 149 :
- フリーズローテーションとかじゃダメな気がするので
blender等でならオブジェクトのピボット中心点を移動できる
でもrigidbodyをつけるなら形の通りに動くのだろうか
マトリョーシカ(ロシアの人形ね)みたいな卵型を使うとして
オブジェクトを5分割とかにしてみて別々(もとは同じ)のオブジェクトを装備しているような感じにして
fbxで一緒にくっつけて書き出して
メッシュコライダー入れてリジットボディでmassでそれぞれの部位に重さを設定すれば
いけるんじゃないか
物理でバラバラにはならないと思うけどなるなら
blender等で全選択して押し出しでオブジェクトの膜を作って
バラバラにならないように外側を固めるとか
>>148さんが言うような機能は
たしかにblenderとかではウェイトペイントという機能はあるが
あれはボーンにどのくらい追従するかを設定するだけだから違う
無知ですまん
- 150 :
- UNITYの教科書って本には、
プレファブ作ってスクリプトから生成するとき
GameObject obj=Instantiate(prefab) as GameObject;
と記述するとあるのですが、
これの「as GameObject」付けなくても生成してくれるんですが、
省略してもいいんでしょうか?
- 151 :
- staticのシングルトンで作ったDataクラスに GameObject型のenemy1を宣言し、
別のスクリプトからプレハブをロードしてインスタンスしたところ、シーン上ではプレハブが表示されたもののなぜかnullエラーが出てしまいます。
同じプレハブをstaticでない通常の変数で宣言してインスタンスするとエラーは出ないのですが何が原因でしょうか?
//========■シングルトンのDataクラス↓
public class Data : MonoBehaviour
{
public static Data btdata = null;
private void Awake()
{
if (btdata == null)
{
btdata = this;
DontDestroyOnLoad(this.gameObject);
}
else
{
Destroy(this.gameObject);
}
}
public GameObject enemy1 = null;
//========■別のスクリプト↓
GameObject obj = (GameObject)Resources.Load("Enemy_Chinpira");
Data.btdata.enemy1 = (GameObject)Instantiate(obj,new Vector3(0.0f, 0.0f, 0.0f),Quaternion.identity); ←NULLエラーは出る
GameObject hoge = (GameObject)Instantiate(obj, new Vector3(0.0f, 0.0f, 0.0f), Quaternion.identity); ←こっちだとエラーは起きなかった
- 152 :
- >>151
シングルトンが不完全
どこよりも先にこいつのawakeが実行されるわけではないのでは?
- 153 :
- >>151
別のスクリプトのawakeで実行してるとか
※個人の感想
個人的には複数シーンを使うときこのやり方は俺の好みではない
- 154 :
- >>152
Awake使ってるの今のところここしかないです…
- 155 :
- >>152
不完全というのは不適切でした
- 156 :
- >>154
このシングルトンのオブジェクトを
このシングルトンを使うすべてのシーンに
一つ置いてますか?
このシングルトンのawakeが実行されていないと思われるのでスクリプトがあるだけでこのシングルトンのゲームオブジェクトが存在しないのではないかと思う
- 157 :
- >>156
すみません。テストをしているシーン上にDataをアタッチしたオブジェクトを置かれていませんでした…
シーンに配置したところエラーが出なくなりました。ご指摘ありがとうございます!
- 158 :
- すいませんもう一つだけ教えてください。ついさっきDataがシーン上にない時に試行錯誤しているうち
シングルトンの public GameObject enemy1 = null; を public staticに変えて、
Data.btdata.enemy1 = ... の部分を Data.enemy1 = ... という記述に変えたことでもエラーが出なくなった事に気づいたのですが、
これは普通のpublicだとbtdataをシーン上に配置してインスタンスしないとアクセスできないけど、
public static だとインスタンス無しでアクセスできる、ということなのでしょうか?
- 159 :
- >>158
正確にどういうスクリプトになったのか曖昧なので俺にはわからないのでわかりません
staticつけたものはインスタンスとは独立してるからね
インスタンスがいくつでも0個でもstaticは一つ存在する
でもシングルトンのインスタンスを一つ作ることになるけどね
シングルトンの中身の全てにstaticをつけるとかしないから
- 160 :
- >>159
ありがとうございます。シングルトンの解説をしているサイトでメンバ変数にstaticがあるものとないものがあるのはなんでだろうと思ってたんですが、少し理解できました。
- 161 :
- >>149
unity上で部品のように固定する感じですか、ありがとうございます☺
- 162 :
- ゲームオブジェクトのプレハブを動的に切り替える事はできないのでしょうか?
共有のゲームオブジェクトを一つ作り、その中に複数のprefabをアタッチしておき、ゲームの状況に応じてprefabを切り替える…ということをやりたいのですが、上手くいきません。
instantiateをするとクローンの別オブジェクトは生成されるのですが、別オブジェクト生成ではなく自分自身のprefabを切り替えたいです
- 163 :
- >>162
2つ既にくっついてるなら、
gameObject.setactive(false)
で、消しては?
- 164 :
- >>163
SetActiveの存在をすっかり忘れてました…ありがとうございます
- 165 :
- アニメーションクリップを作るときに、
imageをまとめてSceneビューにドラッグ&ドロップして作るときと
アニメーションウィンドウに画像をドラッグ&ドロップして作るときとで
アニメーションの速度が全然違うのですが、どうしてでしょうか。
タイムラインの秒数は同じはずなのに速度が全然違います。
- 166 :
- 3Dのゲームなのですが、避雷針のようなものを設置して、それを中心に一定範囲内で発動した魔法はすべて避雷針に向かってしまい、
実質魔法が無効化される、というシステムを考えています
スフィアコライダを使ってその範囲を作り、接触した魔法を中央の避雷針に飛ぶように軌道修正させようとしましたが、
魔法自体何かに接触すると効果を発動して消えるものであるため、スフィアコライダに接触した時点で消えてしまいました
魔法を無力化する効果自体はこれでも十分ではあるのですが、できれば軌道が変わることで意外な場所に着弾したり、
魔法を受け続けた避雷針が破裂するか何かして周囲に被害をもたらしたりとかしてみたいので、消えてほしくはありません
何か良い方法はありませんでしょうか
- 167 :
- 特定の名前とかタグ名で判別すれば良いのでは?
- 168 :
- お前らどんなゲーム作ってんの?
https://youtu.be/CiPugp_YKm4
- 169 :
- 無料版unityで作ったアプリをGoogleplayに出して遊んでみたらmade with unityのロゴが出なくなったんですが仕様ですか?
- 170 :
- >>103
ありがとうございます。
WebViewを表示したときにAdMobを消して
WebViewを消したときにAdMobがまた出るようにしたくて、
まずAdMobのスクリプトで
public static BannerView bannerView;
にして
public void HideBanner()
{
bannerView.Hide();
}
public void ShowBanner()
{
bannerView.Show();
}
を追加して、
WebViewを出すためのボタンを押したときのスクリプトに
AdMob.bannerView.Hide();
を書いたら
WebViewを出すときにAdMobを消すことができました。
(続きます)
- 171 :
- (続き)
そして、以下のWebViewのスクリプトに
-----------------------------------------------------
void Start()
{
〜 (略)WebViewを表示させる部分 〜
webView.OnShouldClose += (view) =>
{
webView = null;
return true;
};
webView.OnMessageReceived += (view, message) => {
if (message.Path.Equals("close"))
{
Destroy(webView);
webView = null;
}
};
}
void Restart()
{
if (webView != null)
{
webView.Reload();
}
}
-----------------------------------------------------
(続きます)
- 172 :
- (続き)
自分で色々試してこれを追加すると、
void ShowBanner()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
WebViewをバックボタンで消すときにAdMobを再表示させることができたのですが、
もう一度WebViewを出すと、AdMobが消えずに残ったままになってしまいます。
webView == nullがずっと影響してしまうのでしょうか
どうすればいいのか教えてください。
- 173 :
- >>172は間違いでした。訂正です。
このUpdateの方を追加すると、
void Update()
{
if (webView == null)
{
AdMob.bannerView.Show();
}
}
>>172のような状態になります。
- 174 :
- if (Random.Range(1, 4) == 1 && 2)
{
Debug.Log("三分の二で入る");
}
と書くと
エラー CS0019 演算子 '&&' を 'bool' と 'int' 型のオペランドに適用することはできません
というエラーが出てしまうのですが、これと同じような処理をしたい場合どのように記述すればいいのでしょうか。
- 175 :
- >>174
if (Random.Range(1, 4) <3)
- 176 :
- >>175どうも有難うございます!
- 177 :
- simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
- 178 :
- キーを押したら平行ライトの角度が変えられるスクリプトで質問したいです。
元のライトの角度が(50,-30,0)とかになっていてたとします。
リセットキーをつけようとQuaternion.identityをつかうと0,0,0
になってしまいます。
もとの(50,-30,0)にもどす(リセット)するにはどうしたらいいでしょうか?
よろしくお願いいたします。
-------------------------------
if (Input.GetKey(KeyCode.U))
{
transform.Rotate(50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.I))
{
transform.Rotate(-50 * Time.deltaTime, 0, 0);
}
if (Input.GetKey(KeyCode.O))
{
transform.Rotate(0, -50 * Time.deltaTime,0);
}
if (Input.GetKey(KeyCode.P))
{
transform.Rotate(0, 50 * Time.deltaTime,0 );
}
if (Input.GetKey(KeyCode.L))
{
transform.rotation = Quaternion.identity;
}
- 179 :
- >>178
俺は初心者なので詳しいことは知らんが
角度って難しいね
回転(相対変化)じゃなくて角度を指定したいとか
検索しても話がかみ合わない
- 180 :
- >>178
平行ライトは知らんので使えるか知らんが
eulerAnglesとかlocalEulerAngles
- 181 :
- ありがとうございます。
いろいろ試して
最後のリセットさせようとする文を
transform.rotation = Quaternion.Euler(50, -30, 0);
にしました。
初期値を自分で書いてそれに戻してるだけですが機能しました。
正しいやり方ではないと思いますが。
- 182 :
- >>181
リセット時に向く方向を変数にして、
インスペクタから指定できるようにするとか、
start関数内で現在の向きを変数に格納しておく、
とかにすると使い勝手がいいかもしれません。
- 183 :
- 位置とスケールは簡単なのに角度になると急に面倒に…
0〜180、0〜 -180、0〜360とかぁ〜
- 184 :
- 他オブジェクトにつけたスクリプトを参照できるようなスクリプトを書きたいのですがどのように書けばいいんでしょうか…
プレイヤーキャラのスクリプトから向きの情報を得て弾の進行方向を変えるような感じをイメージしているんですが。
- 185 :
- >>184
以前自分も全く同じ疑問持ちました
自分的にこのサイトが一番わかりやすかったです
https://htsuda.net/archives/1702
- 186 :
- animatorについてなんだけど、3dモデルに他のキャラのアニメーション付けてもちゃんと動いてくれるの?
VRMとかにモーションつける時とか違うキャラの付けてもちゃんと動いてるのが不思議で
- 187 :
- >>186
ボーンがUnityの指定しているHumanoidの仕様で、ある程度ちゃんとつけられた
キャラなら他から持ってきた動きでも動いてくれると思います。
- 188 :
- Youtubeの画面下の横長動画プレイヤーみたいなのを作ろうとしているのですが、うまくいきません。
1.空オブジェクト(A)を作成。各種UI Buttonをその子として入れる。
2.別途UI Panelオブジェクト(B)を作成。Aには入れない。
3.Bに「イベントトリガー」コンポーネントをつけ、Pointer EnterでAのSetActiveをONに。Pointer ExitでOFFに。
4.BをAよりも画面手前に置くと、Aのボタンが反応しなくなる
5.BをAよりも画面奥に置くと、AのボタンにマウスーオーバーしたときABともに高速点滅する
- 189 :
- >>188自己解決しました。
BをAに被せず、3のオンオフを逆にしたらOKでした
- 190 :
- >>184です
参照する方法は分かったのですが、弾を発射した後にプレイヤーの向きを変えるとそれに伴って弾の進行方向まで変わってしまうようになりました…
(右に発射したあと左を向くと弾の方向も左に変わってしまう…というような感じです)
発射した時点で進行方向を固定する関数などあれば教えていただきたいです。
>>185
一度は思いつくものの形にするには時間かかりますよね…
レスありがとうございます😊
- 191 :
- >>190
角度取得をstartじゃなく、updateにでもいれてるんだろうね。
- 192 :
- ゲームにはよくパワーアップやパワーダウンの効果をもつバフ、デバフがあると思います
こういったものというのは、先に計算を行って置き、実数を変更しておくのが一般的なのでしょうか
それとも、効果を発揮する状況になったとき(たとえば攻撃時、攻撃力の値が必要になったとき)に毎回算出するのが一般的なのでしょうか
前者の場合だと計算は完了しているため後は値を参照すればパワーアップ状態での行動に反映でき、負荷が軽くなるとは思うのですが、
パブ、デバフの効果切れの際に、特に乗算等で計算していた場合、パワーアップ中にレベルアップや装備変更などで元の値が変化してしまうと
効果切れの処理のときに元の値が狂ってしまうバグが発生してしまいます
後者の場合だと前述のバグは発生しにくいとは思いますが、攻撃のたびにパワーアップ分を計算しなくてはならず、
簡単な計算とはいえ毎回負荷がかかってしまいます
今作っているのは3Dでリアルタイムで動くRPGのようなもので将来オンライン化を目指していますが、
バグの回避と拡張性の問題から後者の手段を取ろうと思っているのですが、処理負荷がどう響くのか分かりません
とりあえず一般的な手法ならそれなりに実績もあるだろうということで、どちらが一般的でしょうか
- 193 :
- >>191
Startに入れて実行したら弾が進まなくなりました…
なぜなんでしょうか…
- 194 :
- >>192
前者でも元の値が変わったときに再計算をはさんでおけばバグは起きないだろうし、攻撃のたびに単純な計算するくらいの負担を気にする必要があるとも思えないです。
攻撃速度が1秒間に100回で複数の敵に多段ヒットしまくる様な特殊なゲームでなければですが。
>>193
方向の決定をStartでして、その方向にupdateで進めればいいんじゃない?
- 195 :
- scriptを用いて指定オブジェクトの色をGetComponent<Image>().material.color で変更しようとしたところ
指定したオブジェクト以外の色も変更されてしまいます。
指定したオブジェクトのみ変更させたい場合どうしたらよいでしょうか
Default UI Material というのが指定した色になっていました。
- 196 :
- >>193
おい!w
関数理解して組んでるのか?
- 197 :
- >>195
確か、マテリアルカラーはパレットだから、ほかのオブジェクトでも使ってたら変わったよ。
それが嫌なら専用のマテリアルを作るのが1番かな。
- 198 :
- 返答ありがとうございます。
指定したImageオブジェクト(ほかのオブジェクトも)のmaterialを設定していませんでした。
指定オブジェクトのmaterialを「Sprites-Default」に設定したところ
指定したオブジェクトのみ色を変えることができました。ありがとうございます。
- 199 :
- >>196
GameObject Player;
SpriteRenderer Renderer;
void Update()
{
bool left =Renderer.flipX //左向きのときtrue
if(left==true)
{
transform.Translate(-0.5f,0,0);
}
else
{
transform.Translate(0.5f,0,0);
}
}
というスクリプトをUpdateに入れています
Update関数の中にプレイヤーの向きの情報が入っているので、弾が常にそれに連動してしまうのはわかるんですが…
- 200 :
- unity(2D)って、ひょっとしてそれほど画像の大きさは気にしなくていいですか?
カメラサイズとかで調整して、カメラで見えたものがそのまま映像として出る感じ?
- 201 :
- >>199
leftをメンバ変数にしてstart()で向きを代入すればいい
- 202 :
- >>201
public bool left を文頭に付け加えればメンバ変数になりますか?
それと向きの代入はどのように書けばいいのでしょうか?
- 203 :
- >>202
そんで、left=render…をスタートにね。
- 204 :
- インスペクターの変数表示を折りたたみしたくて、
「InspectorFoldoutGroup」というのを見つけたのですが導入方法がわかりません。
やり方教えてほしいです。
- 205 :
- >>204
Homebrewフォルダを自分のプロジェクトのAssetsに置く
折りたたみを使いたいスクリプトの一番上の部分に
using Pixeye.Unity;
を追加
あとは添付されてる
README.md
見ればわかるはず。
.mdファイルが開けなかったらブラウザにドラッグ&ドロップすれば見れる
- 206 :
- GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
left = Renderer.flipX;
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
if (left == true)
{
x = -0.5f;
}
else
{
x = 0.5f;
}
void Update()
{
transform.Translate(x, 0, 0);
}
とにかく手探りで書いてみました。
実行したところ、やはり弾が生成された地点で止まってしまいます。
どこを直せばいいのでしょうか…
- 207 :
- >>206
xの値変わって無くないですか?
方向はStart()で決めてるんでその後のxの加算減算はUpdate()内で行えば動きませんか?
- 208 :
- >>205
おかげさまで導入することができました
ちなみに自分がひっかかってたのはダウンロードの仕方からわからなかったのですが
サイトの Clone or download → Download ZIP から落とせました。
たぶんダウンロード出来てたとしても導入でつまづいてたと思うので(英語わからない)
助かりました ありがとうございます!
- 209 :
- >>207
Startでxに代入している-0.5fや0.5fは方向を決めるだけのものなんですか?
であればUpdate内にxと書いただけでは動かないのは納得です…
- 210 :
- >>206
これでどうだ
GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
}
void Update()
{
left = Renderer.flipX;
if (left == true)
{
x = -0.5f;
}
else
{
x = 0.5f;
}
transform.Translate(x, 0, 0);
}
}
- 211 :
- 発射後には方向動かしたくないのか 失礼
- 212 :
- >>211
そうなんです!
これだとプレイヤーの向きを変えるたびに弾の方向も変わってしまうんです…
わざわざ書いてくださってありがとうございます
- 213 :
- >>212
206で動かない?
そもそもこのスクリプトは弾についてますか?
あとxの値が小さすぎるかもしれませんので、おおきくするとか。
- 214 :
- >>209
あ、分かった二ヶ所です
まずStart()にある
if(left == true)
…
をUpdate()へ移動
んで加算減算ですが
x = -0.5f
ではなく
x -= 0.5fとx += 0.5f
これならどうだっ!?
- 215 :
- >>206
GetComponentする前にRendererを参照してるからぬるぽ出てるんじゃないの?
Renderer=の部分をleft=の上に移動してみては
- 216 :
- >>212
https://imgur.com/lOxmncE
こういう感じ?弾はプレハブをinstantiateで生成してるでいいのか?
GameObject Player;
SpriteRenderer Renderer;
public float x;
public bool left;
void Start()
{
Player = GameObject.Find("Player");
Renderer = Player.GetComponent<SpriteRenderer>();
left = Renderer.flipX;
}
void Update()
{
if (left == true)
{
x = -0.05f;
}
else
{
x = 0.05f;
}
transform.Translate(x, 0, 0);
}
- 217 :
- >>213
このスクリプトは弾についてるやつです
これだと生成された場所で弾が止まってしまいます…
transform.Translate(0.5f,0,0)でいい感じだったので数値はこれでいいはずなんですが…。
- 218 :
- >>214
>>216
お二方ともご丁寧にありがとうございます。
そうですね。弾はInstntiateで生成してます。
試してみます。
>>215
謎エラーが出てたのはこれが原因かもしれません…
完全に見落としてました、ありがとうございます
- 219 :
- >>217
ほな違うかー。それやと>>206で動くはずやもんな。
なんやろなー、一度update内をtranslate(1,0,0)だけにしてまず動くか試してみぃ。
- 220 :
- >>216
この方のスクリプトで試したところ、理想通りの動きをしてくれるようになりました
>>214さんのスクリプトも試してみようと思います
数日にわたり本当にありがとうございました!
しっかり勉強します…!
- 221 :
- >>220
あ〜ごめんなさいtranslateですね、少し勘違いしてたのでお気になさらず
私もまだまだ勉強中なのでお互い頑張りましょう!
- 222 :
- androidでrun and buildしようとしてgradleでエラーが出る
gradleのアップデートしようにもexportの仕方がわかんねえ…
- 223 :
- 使い方がイマイチわからないところがあるので質問させてください
AオブジェクトにスクリプトAを接続
スクリプトAでパブリックGameObject Bを宣言
すると
AオブジェクトのインスペクタにGameObject Bの項目が追加されますが、
スクリプトAのインスペクタにもGameObject Bの項目が追加されています。
AオブジェクトのインスペクタのGameObject Bには他のオブジェクトをドラッグドロップで
接続できますが、
スクリプトAのインスペクタのGameObject Bには同じように接続できません。
None(Game Object)となっています。
特に問題なく想定したとおり動いてるのでいいのですがちょっとだけ気になります。
スクリプトAのインスペクタにはどんな意味があるのでしょうか?
- 224 :
- >>223
スクリプトAのインスペクタ
というのは、プロジェクトタブ内でスクリプトを選択したときに表示されるもののことでしょうか?
であれば、設定できるのはプロジェクト内にあるゲームオブジェクトだけです。
プロジェクト内にあるプレハブを初期値として持たせておきたい場合はそこで設定するといいと思います。
- 225 :
- >>224
そうです Projectタブ内のスクリプト選択時に表示されるものです
おっしゃるとおりAssets内のプレファブからならドラッグドロップで登録できました
でもこれって
ゲームオブジェクト選択時に表示されるインスペクタのほうからでもプレファブ登録ってできますよね?
初期値に違いが出るんでしょうか?
- 226 :
- スクリプトをアタッチした時点での初期値、という意味です。
- 227 :
- >>226
すみません 理解力が足りなくてよくわかりません・・・
どういう風な使い方ができるか具体例とかあれば教えていただけないでしょうか?
- 228 :
- ただ単純に手間を省ける場合があるってだけです。
例えばプレハブに8割の確率で同じものを使う、という場合で、
100回スクリプトをアタッチしたとします。
初期値が空なら、100回プレハブを設定しなければなりません。
初期値に80回使うプレハブがすでに設定済みなら、
設定するのは20回ですみます。
- 229 :
- やばいずっと何言ってるかわかんねえ
- 230 :
- プレハブについての質問です。
すでに存在するオブジェクトに子としてプレハブを複製しようとしたときの座標がうまく設定できません。
スクリプトではこんな感じ記載しています
------------
ParentObject = GameObject.Find("ParentCanvas"); //すでに用意しているキャンパス
var parent = ParentObject.transform;
// プレハブをGameObject型で取得
GameObject obj = (GameObject)Resources.Load("Prefab");
// プレハブを元に、インスタンスを生成、
Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
//ローカルポジションの設定
obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f);
----------
結果として子としてプレハブは複製できていますが、座標がローカルではなくワールド座標のほぼ原点に生成されてしまいます。
親のローカル座標に設定するにはどうしたらよいでしょうか?
InstantiateのVectorをローカル座標として設定したい状態です。
- 231 :
- >>230
最後のlocal posで、100じゃなくて、0.0.0でいいんじ「ないの?
- 232 :
- >>231
最後のlocalPosition の位置に設定をしたいのですがワールド座標の原点に設定されてしまう状態です
- 233 :
- >>230
Instantiate(obj, parent.position + new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
- 234 :
- >>228
説明で全くピンとこなかったのですが
実際UNITYで試してみて言葉の意味がようやく理解できました
「スクリプトをアタッチした時点での初期値」
ほんとそのとおりですね 複製するときに使えそうです
ありがとうございます!
- 235 :
- >>225
https://i.gyazo.com/207b420398965fd9452cfd022b133773.png
まずこれがオブジェクトにスクリプトをアタッチし、public変数に設定した例
https://i.gyazo.com/f688367c978ac3282ae36a41985ce9f7.png
こちらがProject欄にあるスクリプトのPublic変数、ここへは「シーン上」のオブジェクトは設定できない
https://i.gyazo.com/0294932ec2ec31d71627a8f9e8bbaa0b.png
こちらが同じスクリプトにPrefabを設定した例、Prefabなら設定できる
まずpublic変数は外部からの設定が出来る変数で、シーンのobjectにアタッチすれば、インスペクタで設定できる。
prefabというのは特殊なオブジェクト。これはシーン上に即反映できるものでシーンに無いスクリプトにもアタッチできる。
という事。
違いは、シーン上にあるものか、そうでないか。シーン上のobjectはProject欄には置けないですうよね?
それがPrefabという事。Prefabの詳細については、公式の説明参照で。
>>230
公式の説明見ると分かると思うけど
https://docs.unity3d.com/ja/current/ScriptReference/Object.Instantiate.html
(2番目の例が分かりやすい)
InstantiateはGameObjectを返すので、位置など設定する場合には、そのオブジェクトを指定する
GameObject obj = (GameObject)Resources.Load("Prefab");
Instantiate(obj, new Vector3(1.0f, 1.0f, 0.0f);, Quaternion.identity, parent);
obj.transform.localPosition = new Vector3(100.0f, 100.0f, 0.0f);
この場合、「obj 」はResourcesにあるObjectで、Instantiateで生成した物ではないです
だからobj.transform.localPositionをしても意味が無い。
公式の例のように返りを指定して
clone = Instantiate(projectile, transform.position, transform.rotation);
それの値をいじります。
clone.velocity = transfor…
- 236 :
- >>235
詳しい解説ありがとうございます!
参考にして理解を深めたいと思います
- 237 :
- タッチの差だったな
- 238 :
- >>233
>>235
返答ありがとうございます。
ローカル座標への設定ができました。ありがとうございます。
- 239 :
- サイズが100メガ越えちゃってアップロードできないので
一部のシーンを自サーバに置こうと思うんですが
どうやればいいのでしょうか
- 240 :
- 無料のFBX Exporterって無くなったんですか?
- 241 :
- ゲーム作ってる場合じゃない!
sssp://o.2ch.sc/1na9e.png
- 242 :
- 関数名には、スペースと頭を数字にしてはいけないというのを知ったのですが、
「-」短いハイフンを含めても問題ないのでしょうか?
後で不具合が起こることはないでしょうか?
- 243 :
- >>242
しては行けないというか
できるの?
- 244 :
- エディタに怒られる
- 245 :
- Unityが壊れた
AndroidのBild settingのplayerの項目が表示されなくなった
最初は表示されていたのに項目の入力中におかしくなってそれっきり
心当たりがあるとすれば入力中にIMEの入力切り替えがおかしくなって半角入力できなくなっていたことくらい
別のプロジェクトファイルを開いても同じ不具合と同じエラーメッセージが出るからunityのファイルが壊れたのか
一旦アンインストールしてから入れ直した方がいいのかなあ
それとも新バージョンを上書きしていいのか
検索したらELT版?インストールで解決したという話が出てきたけど
二本同時に完成する直前にこれだよ泣きそう
- 246 :
- 基本的な操作がわからないのでしつもんさせてください
関数とかif文とかのカッコ }
がよく変な位置に行ってしまいます。(うっかり無駄にエンター押したりしてしまう)
DELETEキー長押しでカーソル位置まで動かして戻してるのですが
スマートに戻す方法とかもしありましたら教えてくださいm(_ _)m
- 247 :
- アニメーションクリップが複数あるオブジェクトを非表示から表示に切り替えた時に
特定のアニメーションクリップから始めることはスクリプトで出来るでしょうか?
- 248 :
- >>246
変な位置って具体的にどうなってて理想はどういう風にしたいの
visual studio使ってるんだったら設定いじるかフォーマットの拡張好きなの何か入れるとか
- 249 :
- 具体的に言うとよくこんな感じになってしまいます
if(a==0){ 処理
}
この2パターンが理想です(場合によって使い分けています)
if(a==0){ 処理 }
if(a==1){
処理
}
設定どこをいじればいいんでしょうか?
- 250 :
- 間違えました
この2パターンが理想です(場合によって使い分けています)
if(a==0){ 処理 }
if(a==1){
スペース 処理
スペース }
- 251 :
- プロジェクト内のフォルダを誤って消してしまい、ゴミ箱から元に戻してもscriptがエラーから戻らない場合は復元出来ないのでしょうか……?
- 252 :
- 拙い文ですみません、試してみて?という感じのアドバイスで良いのでお願いします…
- 253 :
- submesh単位で分割する方法ないですかね...
http://onoty3d.hatenablog.com/entry/2015/12/09/000000
このスクリプトだとエラーが出て分割できません
- 254 :
- 自己解決
- 255 :
- >>251
裏で作ってるファイルがあるから、それだけでは何とも。エラーをみながらコツコツと直すしかない。
私だけかもしれんが。
- 256 :
- 1日の作業が終わったらプロジェクトフォルダごとバックアップ
NASなんかに保存するのが最高だけど
下手すると年単位の苦労が消し飛ぶから考えた方が良いよ
- 257 :
- 自分も一日の終わりにプロジェクトフォルダごとバックアップしてる
Zip圧縮したファイル名の末尾に日付を入れて一定期間保存
大きな変更を加える直前のフォルダは長期保管してる
- 258 :
- プレハブについての質問です
1つのプレハブに↓のようなスクリプトをセットして複製し動かそうとすると
複製したオブジェクトが1つしか動いてくれません
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow , jNow , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
複製したプレハブそれぞれを別々の乱数で動作させたいのですがどのようにしたら良いでしょうか
- 259 :
- staticじゃなくする
- 260 :
- すいません一部コードが間違っていました
-------
public class prefabMoveScript : MonoBehaviour {
public static GameObject prefabObject;
public static int iNow, jNow;
public static void move()
{
//位置を乱数で変更
int iNum += Random.Range(-1, 1);
int jNum += Random.Range(-1, 1);
prefabObject.transform.localPosition = new Vector3(iNow + iNum , jNow + jNum , 0.0f);
}
// Use this for initialization
void Start () {
prefabObject = this.gameObject;
}
}
------
staticをつけている変数については、別スクリプトで呼び出して値を代入しているため
staticを外すとエラーが出てしまいます。
- 261 :
- staticをつけると、その変数は
そのクラスで共通のものになる。
だからこれだと複製したオブジェクト全員が、ある一つのオブジェクトを操作している状態。
- 262 :
- staticを理解していない?
staticをつけると、簡単に言えばそのワールドで唯一の変数名になる。だから複数から参照操作はできるが、唯一を2つ存在させたら、どっちを参照するかわからんよね?
- 263 :
- >>261
>>262
staticについて理解できていませんでした。
- 264 :
- >>263
>260のコードで動かすにはこのようにします
多分Staticの使い方というより、prefabの生成に問題あると思います
https://i.gyazo.com/9eea2661448b7a1af4e8291b55adfe25.png
https://imgur.com/dBRzNly
質問は検証できる弟子を指名してね!
- 265 :
- >>255
>>256
>>257
皆さんありがとうございます、これを教訓にそうすることにします……
- 266 :
- >>264
わざわざソースまでありがとうございます!
- 267 :
- https://youtu.be/clB_Q-4N2mM
アニメーションクリップに効果音を付けて4種類のSEの中からランダムで音が出るようにしているのですが、
二回続けて同じ音が出ないようにする方法はないでしょうか。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public AudioClip[] _SE; //SEが4個入っています。
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, 4);
audioSourse.PlayOneShot(_SE[a]);
}
}
このスクリプトを音を鳴らすアニメクリップが付いたオブジェクトにアタッチしています。
二回続けて同じ音が出ないようにする方法があったら教えてください。
https://thuploader.orz.hm/miniup/?mode=dl&id=7354 プロジェクトファイル
- 268 :
- aの値を保持して、次の乱数時に比較する
- 269 :
- >>267
色んな方法があると思いますが、
再生する度に再生したSEを除外し、除外されていたSEが存在すれば戻すという処理を入れるのはどうですか?
ランダムのレンジにはLengthやCountが使えますので実装自体は数行済むと思います。
配列をリストにした方が簡単だと思います。
- 270 :
- >>268の方法は難しそうだったので
>>269の方法で試してみました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
//public AudioClip[] _SE;//配列
public List<AudioClip> _SE;//リスト型に変更
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count);//_SE.Count リストの中の要素の個数
audioSourse.PlayOneShot(_SE[a]);
_SE.RemoveAt(a); //一度鳴ったSEを削除
}
}
SEの配列を、リスト型に変更して、一度なったSEを削除するところまでは出来たのですが
消したリストを次のSEを鳴らすときに元に戻すやり方が分かりませんでした。
どうすれば消したリストを元に戻すことができるでしょうか。
- 271 :
- >>270
嘘だろぉ、おい!w
- 272 :
- 俺なら前回の覚えておいて
乱数が同じものだったら+1
わずかに乱数に偏りが起こるけど
- 273 :
- 乱数が選んだものをリストから抜いてリストの最後に追加しておくとか
乱数の範囲は要素数-1で最後の要素(前回選んだもの)を避ける
初回は必ずリストの最後が選ばれないことになるけど
- 274 :
- 横から失礼します
特定のAudioClipが再生中かどうかを検出するとかってできますか?
例)
if(Audioclip(ジャンプ音)が再生中){ 処理 }
みたいなことがやりたいのですが
- 275 :
- 乱数記憶用の変数を用意
初期値は999などの有り得ない数
または一番目に鳴らしたくない音と同じ数
ランダムで出した乱数を変数と比較
もし同じ数字なら+1または-1して処理
(このスクリプトだと3の場合のみ-1)
また乱数(または処理後の数値)を変数に入れる
自分ならこれにするけど何せ初心者なので
もっとスマートなやり方があるならそっちで
- 276 :
- >>273の再生したSEをリストの最後に追加してランダムのレンジに含めないがスマートで実用的かもしれませんね。
+1などで処理すると結局順番に再生されるだけでランダムにならないから質問者の意図する挙動とは違ってしまうんじゃないでしょうか?
- 277 :
- >>276
乱数が前回と同じ値だったら
1足して剰余でオーバーラン回避だよ
剰余のこと説明不足だった
- 278 :
- 皆さんから助言を頂いて有難うございました。
>>273の方のやり方で、ずっと試していました。先ほどエラーが全部消えてやっと動くようになりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class ken_furu : MonoBehaviour
{
public List<AudioClip> _SE;//リスト型 4つのSE
AudioClip DeleteClip; //選ばれて消えたSEを変数に入れる
private AudioSource audioSourse;
Animator animator;
void Start()
{
animator = GetComponent<Animator>();
audioSourse = GetComponent<AudioSource>();
}
public void SE()
{
int a = Random.Range(0, _SE.Count-1);//リストの最後の要素はランダムレンジから外す
audioSourse.PlayOneShot(_SE[a]);//選ばれたSEを鳴らす
AudioClip DeleteClip= _SE[a];//選ばれたSEをDeleteClipの変数に入れる
_SE.RemoveAt(a); //選ばれて鳴ったSEを削除
_SE.Add(DeleteClip); //選ばれて消えたSEをリストの最後に追加
}
}
もしかしたら変な部分があるかもしれませんが、ちゃんと動いているようです。
本当に有難うございました。助かりました。
- 279 :
- Unityで2Dゲームを作ろうとしていますが、小さい表示枠と大きい表示枠について教えて下さい。
画像をSceneに配置すると小さい枠の中に置いたものが実行時に表示され、座標はたとえば-2〜+2です。
ヒエラルキーからUIのButtonを配置すると大きい枠の中に置かれ、座標は0-1000などの設定した画面サイズの値になります。
2つの座標系があるようなのですが、Sceneで見ると重なっていないのに実行すると上記の2つ枠は重なって表示されるようです。
なんでこんなことになってるんでしょうか?
両者を混在して使ってると実行環境によってずれが生じそうですが大丈夫なんでしょうか?
また「Unityの教科書 Unity 2019完全対応版」を読みましたが、次に読むと良さそうな本があったら教えて下さい。
- 280 :
- >>279
それな
俺はunity初心者
座標面倒
キャンバスにイメージとスプライト混在したり一貫性ないなあ
- 281 :
- >>279
シーンで見ると大きさが違うのと位置がずれてるのが邪魔で仕方ない
シーンで同じ位置同じ大きさ(見た目のことで座標の数値は違う)にするか
いっそのことシーンでは離れているが実行時に同じにしてみたり
重なってると邪魔なので
キャンバスのインスペクタを弄れば見た目の大きさは揃うよ
座標は-2とかのままがイイみたい
あれはメートルって意味らしい
- 282 :
- 詳しいことは俺も知りたい
- 283 :
- >>279
1冊読んで1本作れたなら、漠然とした指南は必要ないかなぁ。
あとは、ネットやるならオンライン系とか、作りたいものに合わせて選ぶだけだよ。
まだ1本も完成させてないなら、本より作り上げることかな。
- 284 :
- >>280-282
やっぱりわかりづらいですよね
作りながら学んでいくしかないですかね
>>283
いま最初の一本を作ってるところです。
とりあえずわかる範囲で動くものを作ってみることにします。
- 285 :
- ・シーンにオブジェクトAとBを作る
・Bをプレハブ化
・GetComponentを記したスクリプトをBにアタッチ、そのインスペクタ内でAをアタッチ
・いざ実行すると、後者からAが消えておりnullが入ってる
これはどういうカラクリ?
GetComponentで保持できるのは同一シーン内のオブジェクトだけで、
プレハブは別シーン扱いだから不可ってこと?
- 286 :
- 初心者すぎる質問で申し訳ない
自分の街の地図データ(OSM)をUnityに取り込みたい
OSM2World(http://osm2world.org/download/)をダウンロードして
以下の記事を参考に頑張っているのだけど、
https://qiita.com/hiroga/items/8f8496af23c3661f4092
使い方wiki(https://wiki.openstreetmap.org/wiki/JA:OSM2World)に書いてあるGUI操作というものが分からずOSM2World を実行できずにいる
ダウンロードした中にアプリケーションらしきファイルはないし、どうやって実行するのか分からない
- 287 :
- 垢付き無視されてて草
- 288 :
- エアプババアこと煖エ聖子さーん!
Unity 触ったこともないくせにググって出てきたブログの内容をパクってスレに書き込まないでくださーい!
- 289 :
- 画面をドラッグしたらそれに合わせて
画面中心に置いてあるキューブのオブジェクトが回転するようにしたのですが、
例外的に画面のUI部分をドラッグしても何も起きないようにしたいです。
試しに画面内にボタンを配置してみますと、
ボタン部分をドラッグしてもキューブは回転しませんでした。
ですが、ボタンではなくスクロールビューを配置しますと、
スクロールビュー内で中身をスクロールさせる際に
キューブも回転してしまいます。
これは何が原因なのでしょうか?
スクロールビュー内でスクロールさせても、
キューブは回転しないようにしたいのですが。。。
- 290 :
- ローグライクゲームで使われるようなテキストボックスの作り方を教えてください
具体的にはテキストボックスは4行目まで表示可能で
5行以上のテキストは初めに上4行が表示され、時間経過で下4行まで
スライドするようなものです
文字のフォントサイズとスライドの幅の関係がわからず
行数が増えてしまうと文字が見切れてしまうのですが
どうしたらよいでしょうか
- 291 :
- アセットストアで探すのはダメか?
- 292 :
- ありよ
- 293 :
- UIのTextではなくて
GameObjectの子要素として文字や数字を表示したいときどうするのでしょうか
- 294 :
- TextMeshProとかでできるんじゃないのーー?
(適当)
- 295 :
- UGUIのイメージをドラッグして移動させたいのですが、
canvasの設定をscreenspace overlayからcameraに変更するとドラッグ中に描画されなくなってしまいます。
パーティクルを前面に表示させるためにcanvasの設定を変えました。
考えられる原因はありますか?
- 296 :
- なぁ
初心者じゃないよな?
- 297 :
- 上級者ばかりやんけ
- 298 :
- >>296
自分の事でしょうか?
練習でトランプを作っていて、初心者なので全てUIで作ってしまいました。
アセットセールで初めて買ったパーティクルをエフェクトとして表示したかったのですが、UIが最前面に来るので表示できませんでした。
自分で調べてcanvasの設定を変えることでパーティクルは表示されたのですが、カードをドラッグすると消えてしまう様になりました。
2Dのゲームを作る時のカードの絵?オブジェクト?というのはどうやって表示させるのが正しいのでしょうか?
いつもcanvasを1つ作って全てその中にUIで作ってしまっています。。
- 299 :
- エディタ拡張を使ってゲームオブジェクトの変数をいじってみたのですが、実行してみると、
↓のような感じで、inspector上で直接打ち込んだ数字に戻ってしまいます
https://i.imgur.com/REjqphY.png
どうにか保持する方法はないでしょうか?
- 300 :
- >>299
俺と似たような現象だな
解決策は知らない
- 301 :
- >>298
自分も初心者だけど(しかも始めたばかり)
教本のサンプルスクリプトを改変しながら一本作ったところ
2Dの画像はUIから作る他にヒエラルキーに直接ドラッグ&ドロップする方法があってこの方法で作ったゲームオブジェクトはUIから作ったimageとは仕様が違うということがわかった
全く同じスクリプトを関連づけても動作しなかったり
等倍のはずなのに画像の表示サイズが微妙に大きかったり
UIキャンバスに入れると表示されなくなったり
別の教本では2Dオブジェクト→spriteで同じような用途の画像オブジェクトを作ってたからヒエラルキーにドラックドロップするとspriteになるのかも
Collider2Dで他のオブジェクトとの衝突判定を付けたい2D画像はそうやって配置するというところまでは理解できたけどそれ以上はさっぱりわからない
どれが正しいかじゃなくて用途によって使い分けるみたいだけどね
- 302 :
- 投稿してから思い出したけど
同じ著者の別の教本のアプリではUIから作った2D画像にCollider2Dで衝突判定付けてたなぁ
実際に作ってみたけど問題なく動いたし
違うものだということは把握したけど違いがよくわからない
- 303 :
- >>295
ドラッグ中のオブジェクトの座標見るとどっか遠いところに行ってるんじゃないの
- 304 :
- >>301
トランスフォームの違いが一番のポイントかと思いますが、仰る通りそれによってサイズや座標違ったりするのが初心者には辛いですね。
シーン画面だとスケール1のスプライトがキャンバスに対して点みたいなサイズになったりしてわけがわかりません。。
初心者がUnityを覚えるには興味が無くても3Dからやった方が良いですね。
自分みたいにカメラや座標の概念が無いまま画像を表示するにはUIからイメージを作りましょう〜みたいな入門を見てしまったら終わりです。
最初にさせてもらった質問についてはいくつか解決案が見つかったのでもう少し頑張ってみます。
- 305 :
- >>303
予想ですがドラッグしてる位置の座標がoverlayの時はrecttransformだったのに対して、ワールド座標になったために遥か彼方に飛んでいってしまったんだと思います。
これをどうにかすれば良いと言う事はなんとなくわかったので調べてやってみます。
無理そうならoverlayのまま意図した動作になる様に仕様を変更する方向でも考えてみます。
- 306 :
- 3Dから初めて挫折した垢付きみたいなガイジもおるからなぁ
座標の概念はパース定規使ったことがあれば2Dから入ってもすぐ慣れるやろ
あかんかどうかはその人次第やな
垢付きは何をやっても駄目やけどな
UIオブジェクトを複製したらUIキャンバスの外に出て座標めちゃくちゃ
座標いじらずにUIキャンバスに戻したら座標は元に戻るもののスケールが微妙におかしい
なんやその0.99なんちゃらかんちゃらっていうのは
1でええやろ1で
Unityあるあるやで〜
- 307 :
- >>298
動かしたりエフェクト出したりするならスプライトでやったほうが多少処理が軽いけど、
canvsはcanvasでレイアウトが楽とかメリットもあるので好きなやり方でいいと思う。
試しに別のやり方で実装してみたりするといろいろ発見があるかと。
- 308 :
- >>300
今は家にいないからunity弄れない
ググってみたところ
Undo.RecordObjectとか使えばいいのかなあ
俺の場合は拡張とかわかんないので違う方法[ExecuteinEditMode]だけど
- 309 :
- visual studio2019でunityのGameobjectとかスニペット使えないんだけど
どうやったら使えますか?
- 310 :
- >>293
納得いくものではないが自己解決
プレハブにキャンバス置いてUIのテキスト置いた
そのキャラクタを大量にシーンに置いたから
キャンバスの枠が表示されてうざいのでキャンバスのサイズ0にした
unityだけでなく別のツールでも思ったのだが
UIにできて非UIではできないこと
非UIにできてUIではできないこと
というの不便だなあ
- 311 :
- >>308
俺の場合は解決した
まだ十分な確認はしていないがたぶんok
- 312 :
- >>310
それぞれの役割があるからしっかり理解して使いこなすしかない
間違って使うから後で困る
マニュアルみて速攻理解する天才エスパーでも無い限り、何度も失敗して理解するしかないかも
- 313 :
- キャンバス以外にも文字書きたいんだよおおお
- 314 :
- >>313
板に文字書いたビットマップ貼ったのじゃだめですか?
- 315 :
- https://docs.unity3d.com/ja/current/ScriptReference/GUI.Label.html
- 316 :
- 文字の件はプレハブにキャンバス持たせて表示はできたんだけど
たとえばダメージ受けると数字がこぼれ落ちる演出などはどうするんだろう
自キャラ見方キャラ敵キャラに付けたキャンバスにテキストなのだろうか
今回はそういう用途ではない
- 317 :
- >>316
俺が今やってるのは2Dなのでカメラの方を向く必要ないからキャンバスである必要ないけど
3Dだとキャンバスの方が楽なのかな
座標とかオーダーとかどうなるのか知らんけど
- 318 :
- 他の人も書いてるけど
TextMeshProじゃだめなの?
ヒエラルキー右クリ→
3Dオブジェクト→Text-TextMeshPro
- 319 :
- 俺には使い方わからなかったがそれで可能ならそれが正解なのかな
記憶の片隅に置いておくよ
- 320 :
- プログラム未経験です。
1年を目途にゲーム制作し、1作目でまずは100万の利益を狙いたいと思いますが
何から始めたらいいでしょうか。
- 321 :
- >>320
初心者向けの本でも買ってチュートリアルやるとかから始めたほうがいいんじゃないですか。
- 322 :
- 釣りはよそでどうぞ
- 323 :
- テストプレイ中(UNITYで再生中)に
VisualStudioでコード編集するとテストプレイが一時停止になってしまいます。
前は動作させたままコード編集できたような気がします。(気のせいでしょうか?)
- 324 :
- はい、気のせいです。
スクロールはできるが、記入した時点でフォーカスがVSになってunityは止まる
- 325 :
- >>308
Undo.RecordObjectは上手く使えなかったのですが、
それの関連で出てきたプロパティ操作とやらを使ったらできました!
ありがとうございました
- 326 :
- ユニットをクリックすると移動できる範囲の色を変えるという実装を作ろうとしています。
UIのオブジェクトでマップを作った場合、
マップのタイルにUIのImageをアタッチしてこれを半透明にし、後はON/OFFにすることで表現できるようです。
ところがいまヒエラルキーに画像をドラッグ&ドロップで作り出したオブジェクトをベースにマップを作っているので
このやり方ができません。
半透明のマスクのようなものを上から適用したいのですがやる方法があるでしょうか?
すべてを諦めてマップをUIで実装しなすことも考えています。
- 327 :
- >>326
自己解決しました。
元のオブジェクトの下に子オブジェクトを追加して、
この子オブジェクトをON/OFFすればできました。
- 328 :
- UnityでFE風のSRPGを作ってる人のブログを前に見たな
自分が見たときはちょうど行動可能範囲に色をつけたところで終わってた
- 329 :
- http://s.kota2.net/1588213392.png
ボタンを押すと5の星だけが表示されるスクリプトなのですが、
親になっている星のオブジェクトをpublicで参照するやり方ではなくて
Findでヒエラルキーから探してくるやり方に変更したら動かなくなりました。
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Button5star : MonoBehaviour//ボタンにアタッチ
{
//public Transform STARParent; //publicで参照するのをやめる
Transform STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
public void button5star()
{
for (int i = 0; i < STARParent.childCount; ++i) // for文
{
STARParent.GetChild(i).gameObject.SetActive(false);//STARParentの子を一旦全部消す
STARParent.transform.Find("star (5)").gameObject.SetActive(true);
}
}
}
-----------------------------
starParentは空のオブジェクトで子のstarは画像のspriteです。
Findで探している部分が間違っているのでしょうか?
- 330 :
- どう動かなくなるのか…
- 331 :
- >>330
ボタンを押しても何も反応しなくなりました。
publicで外部から親を参照していた時はうまく動いていたのですが、
Findで探すようにしたらボタンが反応しなくなった感じです。
- 332 :
- >>329
というかこれエラー出てない?
Findはメンバー変数の宣言時には使えない。
こうすればいけるはず。
Transform STARParent; // = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
void Start()
{
STARParent = GameObject.Find("starParent").GetComponent<Transform>();//Findで探したい
}
- 333 :
- 簡略化してるのかと思ってたけど
もしかしてStart()とかの関数の外でGetComponentしてる?
- 334 :
- >>332 333
どうもありがとうございました。
スタート関数の中でGetComponentを書かなくてはいけなかったのが分かっていませんでした。
publicで親を参照していた時はなぜかエラーが出ていなくてボタンも動いていました。
- 335 :
- 僕もガチ初心者の頃にメソッドの外でGetComponentしようとしたことがありまひた(^^
誰もが通る道なのでふね(^^
ボッキング!(^^
- 336 :
- 昨日screenspace.cameraでのUGUIのドラッグについて質問した者ですが、やっと画面に表示される様になったもののクリックした位置のかなり左にオブジェクトがワープしてしまう様になりました。
もうお手上げです\(^o^)/
- 337 :
- 原因が同じかどうかはともかく
自分もドラッグで位置を変更できるようにしたオブジェクトがわけのわからない挙動になったことがあるわ
既存のSceneを大量にコピーして増やしたうちの一つだけがそうなったから頭を抱えた
結局原因はヒエラルキーに登録したスクリプトのGameObjectにmissingがあることだった
そんなことでも挙動がおかしくなるんだな
- 338 :
- クリックした時の座標データを表示して、見る。
- 339 :
- 質問時にエラーが出てる時は必ず言って欲しいわ
- 340 :
- ワープ現象は手札置き場パネルのホリゾンタルレイアウトがカードオブジェクトのアンカー?を左上にセットしていたのが原因っぽいです。
ドラッグ開始時に一度コンポーネントをオフにし、アンカーをスクリプトから中心に移動する事で解決しました。
screenspaceの問題についてはRectTransformUtilityを使って座標を変換する事で解決しました。
同じ現象で困る人が後から救われる様に書き残しておきます。
ありがとうございました!
>>339
エラーが出れば自分でも調べられるから楽なんですけどね・・・。
- 341 :
- そういえば自分の時はコンソールに何かエラーメッセージが出てたな
- 342 :
- ここで質問していろいろ弄ってわかったことのメモを置いておきます。
【uGUIのImage】と【SpriteRenderer】について
Unityで画像オブジェクトを表示する方法として、uGUIのImageとSpriteRendererの2つがあるようです。
どちらを使っても似たようなことをできるようですが、やり方が多少異なります。
?uGUIのImageを使う場合
uGUIのオブジェクトはヒエラルキーのCanvas以下に置く必要があり、座標系はピクセル(例:-375〜375)。
画像はUI→Imageをオブジェクトにアタッチして設定(あるいは最初からUI→Imageでオブジェクト作成)。
クリックしたときの動作はUI→Buttonをアタッチして設定。
?SpriteRendererを使う場合
画像を直接シーンに、あるいはヒエラルキーに置くとできるのがこのオブジェクト。
座標系は物理距離(例:-2.5〜2.5。他の人のレスによるとメートルを表しているとか)。
またこのオブジェクトをCanvas以下に移動させると座標系がピクセル(例:-375〜375)に変更。
クリックしたときの動作はオブジェクトにColliderをアタッチして、
Rayを飛ばしてColliderに当たったかどうかを判定(というコードを書く)。
(やったことはないですがRayの代わりにEventTriggerを使った方法もあるようです)
実行時には?と?は重なって表示されます。
まだよくわかっていませんが、?の座標系は動作時の環境(スマホの画面サイズ等)に依存するようで、
?と?はずれるかもしれず、その辺りのケアも必要になるかもしれません。
- 343 :
- UGUIではUIを作りましょうって事なんだろうけど、レイヤーを指定して最前面以外に描画できるだけで初心者にはありがたいのになぁ。
- 344 :
- おすすめのアセット教えてください(´・ω・`)
- 345 :
- 何が欲しいねん2Dキャラ欲しいのにSE集いらないやろ
- 346 :
- >>344
セール終わったばっかりじゃん!
初参戦でdotweenとeasysaveとSE集3個買いました。
- 347 :
- 宴を買ったけど今すぐ使いたいのはダイヤローグシステムの方だった
次のセールでも半額になっていますように
- 348 :
- >>344
このブログでも見たら?
http://www.asset-sale.net/
都市ジェネレーターくっそ楽しそう
- 349 :
- >>346
DOTweenは無料のようですが
DOTween Proを買ったのでしょうか?
セールが終わったばかりとは残念なことです。
- 350 :
- >>344
最近買った本にオススメアセットが乗っていました。
Playmaker($65):プログラミング補助ツール
DOTween(無料):オブジェクトアニメーション
Easy Save The Complete Save & Load Tool for Unity ($24.99):セーブやロード実装
Anti Cheat Tool Kit($50):チート対策
UniRx - Reactive Extensions for Unity(無料):コルーチン等非同期処理ライブラリ
JSON .Net For Unity(無料):オブジェクト↔Jsonの変換ライブラリ
Lean Touch(無料):タッチパネル操作
宴3 Unity Text Adventure Game Engine Version3($80):ノベルゲームエンジン
Fungus(無料):ノベルゲームエンジン(ノベルがメインじゃないゲーム用)
Camera Filter Pack($15):カメラエフェクト
Unity Particle Pack(無料):公式エフェクトサンプル
6000+ Flat Buttons Icons Pack($5.99):アイコンやボタンのデザインアセット
- 351 :
- ずっと解決できない不具合があり教えて頂きたいです。
http://s.kota2.net/1588430526.gif
ゲームを始めて
「赤い人」に付いているスタート関数が走って「赤い人になるボタン」が非表示になります。
「青い人になるボタン」を押すと赤い人が非表示になり、もともと非表示だった「青い人」が表示されるクリックイベントが付いています。
表示された「青い人」に付いているスタート関数が走って「青い人になるボタン」が非表示になります。
最後に「赤い人になるボタン」を押すと赤い人が表示されて「青い人」が非表示になるクリックイベントが付いているのですが、
「青い人」が非表示で消えて「赤い人」が表示されず、「赤い人になるボタン」も残ったままで何度押しても何も起こらなくなります。
RedButtonのボタンコンポーネントに付いているクリックイベントの関数
public void _RedButton()// 「赤い人になるボタン」を押したら
{
Transform Parent = GameObject.Find("ManParent").GetComponent<Transform>();//親オブジェを探す
GameObject.Find("BlueMan").gameObject.SetActive(false);// 青い人が消えて
GameObject.Find("RedMan").gameObject.SetActive(true);// 赤い人が表示
}
分かりにくいですが伝わるでしょうか。
ずっと原因が分からず途方に暮れています。ご指導よろしくお願いします。
- 352 :
- GameObject.Findは非アクティブオブジェを検索できないから、
//親オブジェから子を探す
Parent.tran.form.Find("子オブジェ").gameObject.SetActive(true);
にすればいいんじゃないかな
- 353 :
- >>352
ごめんなさい親がTransform関数だからtransformいらなかった(あっても通るけど)
Parent.Find("RedMan").gameObject.SetActive(true);
でいけると思います
- 354 :
- >>352>>353
どうも有難うございます。
GameObject.FindからParent.Findに変更したことで挙動が一歩先に進みました。
http://s.kota2.net/1588433567.gif
「赤い人」が表示されるようになりましたが、
「赤い人」に付いているスタート関数通りに動いていません。
「赤い人になるボタン」が非表示になり「青い人になるボタン」が表示されるはず(ループする)なのですが、「赤い人になるボタン」が残ったままです。
赤い人に付いているスタート関数
using UnityEngine;
public class RedMan : MonoBehaviour
{
void Start()
{
Transform Parent = GameObject.Find("Canvas").GetComponent<Transform>();//キャンバスを参照
Parent.transform.Find("BlueButton").gameObject.SetActive(true);//「青い人になるボタン」表示
Parent.transform.Find("RedButton").gameObject.SetActive(false);//「赤い人になるボタン」非表示
}
}
「赤い人」が表示されて最初の状態に戻ったのでループするはずですが、「赤い人」が表示されているのに↑のスタート関数通りに動いていません。ゲームスタート時はRedManが表示、BlueManが非表示の状態から始まりました。
Parent.transform.Findにしているのでたぶん間違っていないと思うのですが。
どのような原因が考えられるでしょうか。
- 355 :
- >>354
Start関数は1回目にインスタンス化したときにしか呼ばれないから、アクティブ化したとき毎回呼びたいなら
OnEnable関数に入れると解決すると思います
- 356 :
- >>355
どうもありがとうございます!
ずっと行き詰っていたので質問してよかったです!
- 357 :
- ヒエラルキー
Canvas
image
もし、Canvasの子のimageに付いているimage.csの中にあるbool型の変数 isBool が false だったら
{
処理
}
それ以外
{
処理
}
というif文のコードを続けて書くことは出来るでしょうか?
階層をたどって行ってスクリプトの中にある変数がfalseかtrueかを知りたいコードです。
こういう書き方が出来るのであれば教えてください、丸投げで申し訳ないのですがどうぞよろしくお願いします。
- 358 :
- 子の取得
イメージの取得
スクリプトの取得からの変数を取得
の複合となります。
- 359 :
- なんでもかんでも、public にするのは良くないと
よく言われますが、
その理由は、思いがけず他のスクリプトから変更されるリスクがあるから
という認識で大丈夫でしょうか?
そうであるとすれば、個人制作であれば
それほど気にしなくていいですか?
- 360 :
- >>359
いいよ
でも何でもかんでもpublic メンバ変数は良くないと知ったうえで
- 361 :
- >>358
どうもありがとうございます。
別スクリプトの変数の値を取得することが出来ました。
もし、Canvasの子のimageに付いているimageScriptの中にあるbool型の変数 isBool が false だったら
GameObject _image; //スクリプトが付けているオブジェimageを変数に入れる
BigModeScript _imageScript; //imageのコンポーネントimageScriptを変数に入れる
_image = GameObject.Find("image");
_imageScript = _BigModeScript.GetComponent<imageScript>();
bool _isBool = _imageScript.isBool;
if (!_isBool)
{
処理
}
else
{
処理
}
ifの()の中に全部入れるようにするのかと思っていましたがそうではなかったです。
- 362 :
- http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1377.jpg
http://www.diced.jp/~lizard581/cgi-bin/imageup/data/1378.jpg
初歩的な質問ですみません。カメラの撮影範囲を表示している@の線に背景が触れると、Aのように表示されます。
Aのようにならず正常に表示するにはどうすればよいのでしょうか。
分かる方がいましたら回答お願いします。
- 363 :
- >>362
その線は、カメラに表示させる範囲をあらわしてるんよ。
カメラに映る範囲の距離を伸ばせばいいだけだから、
カメラのインスペクタの"Clipping Planes"のFarの値を増やせばいいよ。
- 364 :
- 手前だからNearだな
- 365 :
- ありがとうございました!これで作業が進みます!
- 366 :
- ユニットが選択されたらステータスに顔画像を表示する部分を作っています。
1.ユニットの子オブジェクトのImageに画像をロード(ユニット生成時に一度だけ)
2.ユニットが選択されたとき、ステータスUIのImageを選択ユニットの子オブジェクトImageに置換
というやり方で実装しました。
ここでゲーム実行中に1の画像ファイルを別なものに置き換えたところ、
2のステータスUIの画像までリアルタイムで(正確にはUnityをActive windowにしたときに)変わりました。
ユニットが選択されるたびにファイルアクセスが発生しないように上記のような実装にしたのですが
ステップ1で予め画像をロードしておく処理は無駄なんでしょうか?
- 367 :
- 質問失礼いたします。
カメラにアニメーションキーを打って再生しているのですが、
1フレーム間の移動を大きくすると、再生時に正常に再生されない(キー前後で補完のようなものがはいる)のですが、原因や対処法などございますでしょうか。
宜しくお願い致します。
- 368 :
- マルチっすか……
- 369 :
- マルチだね
- 370 :
- Unity AIPの詳しい解説が掲載されている教本があれば教えてください
- 371 :
- そんな物は無い
- 372 :
- 垢付きさんはUnityの教本一冊も読んでないでしょ〜
- 373 :
- カメラをズームしてもぼやけないよう予め大きめのpng画像でPlayerキャラを用意し、Scale縮小して表示したいと思います。この場合、
・一番親のオブジェクトでまとめて縮小する、
・キャラを描画するレンダラーコンポーネントを付けた子オブジェクトを縮小する
どちらのパターンが無難でしょうか?
親オブジェクトにはRigidbody2Dと接地用のコライダー、メイン処理用のスクリプトが付いており、
子はレンダラー用、レンダラーに追従する当たり判定用などのオブジェクトが3つぐらいあります。
どちらも今のところは大丈夫なんですが、後々物理演算のかみ合わせとかなにか問題出てくる要素あるのではと決めかねています。
なんかふわっと質問で申し訳ないですが、アドバイスください。
- 374 :
- >>373
後々がどういう仕様になるか、ご本人がわからなければ第三者はもっとわかりません。未来の話は置いといて作れば良いかと。
あと、気になったのは大きい画像とありますが、2dでドット絵なら、主スケールの時に1対1ドットにすべきかと思います。縮小すると線が消えますので。
- 375 :
- >>374
ありがとうございます。あまり考えても仕方がないとは思うのですが、
オブジェクトの物理演算の動きを阻害させずにグラフィックだけ動かす必要が出て、オブジェクトのプレハブの親子関係全修正になってしまったので、
後々融通の効くオブジェクト構造とはどういうものなのだろうかと気になっています。
例えば炎がキャラの位置に追随しながら周囲を回転する魔法を実装したい、となった際にはキャラの子オブジェクトとしてインスタンスするのが良さそうですが、
親のルートオブジェクトがキャラによってまちまちの縮小だと汎用的に実装できるのだろうか…とかですかね。
主スケールのときに1対1ドットとは、基準となるカメラのscaleで原寸画像で表示できるサイズにすべき、ということでしょうか?
キャラ画像はドット絵のスプライトアニメではなくアニメ塗りスプライトのボーンアニメを実装しているのですが、カメラを引いた時のガタつきが気になります
- 376 :
- >>373
一番無難なのは、画像アセットの「ユニットごとのピクセル数」を設定する方法かな。
- 377 :
- >>376
SpriteModeのPixel Per Unit の項目ですかね。うろ覚えになって以降意識の外にあったので調べ直してみます。
- 378 :
- >>375
ドット絵と思い込んでましたので、そうでない、拡大にも耐えられる絵なら、主スケールは忘れてください。失礼しました。
- 379 :
- マルチってどういう意味ですか?
- 380 :
- >>379
複数
掲示板などでは嫌われる行為
回答を速く得るために多数の掲示板に書き込む
そういう人はどれかひとつの掲示板に回答があれば他の掲示板住民のことは無視するというかどこに書き込んだか覚えてもいない
自己解決すればすべての回答を放置する確率が高い
最初に説明をすれば許されることがある
急いでたからと言うと炎上する
- 381 :
- >>349
質問させて下さい。
ターン制バトルのRPGなどで敵ABCが居たとして、
それぞれの攻撃の処理にモーションを含めて1秒ずつかかるとします。
Aの攻撃が終わったらBの攻撃〜とする時にコルーチンなどで1秒毎に行動させる方法が思い浮かびます。
しかし、ゲームを作っているうちにAのモーションは2秒かかるという状況もでてくると思います。
その場合はAの行動が終わった事をフラグにして、アップデート関数でif(A行動済み==true)という風に作るのでしょうか?
それとも、Aの行動が終わった時に呼び出す〜みたいな関数があるのでしょうか?
アップデートを極力使わずにプログラミングしているのですが、アクションゲームなどは常にアップデート多様していると思うのであまり気にしないで使っていいのでしょうか?
ご指導頂ければと思います。
よろしくお願い致します。
- 382 :
- すみません、予測変換で謎のアンカーがついてしまいました・・・。
- 383 :
- >>381
いろんな作り方があるので間違いじゃないです。
- 384 :
- >>381
敵ににスクリプトが付いていて、呼び出して行動させるなら、戻り値で対応するべきかと思います。
- 385 :
- >>384
回答ありがとうございます!
引数の使い方を最近やっと覚えたばかりで戻り値というアイデアはありませんでした。
フラグの管理に便利そうですね!
質問の仕方が冗長だったのですが、
メソッドの終了をトリガーにメソッドをスタートさせる事は出来るか(またそれは簡単か)
ターン制のゲームの処理をアップデートで管理するのは普通の事か(RPGに限らずシュミレーション等で敵の移動が完了したら〜など)
が一番知りたいです。
もしご存知でしたら教えて頂けると幸いです。
よろしくお願い致します。
- 386 :
- 私なら、ターン制ならupdateは使わない方向で作るかな。全て一元管理が基本(私見)だし。
- 387 :
- >>386
ありがとうございます!参考にさせて頂きます。
プログラミングの基礎的な事はだんだん出来るようになってきたのですが、ゲーム作りは計算結果を瞬時に表示すれば良いわけじゃないので難しいですね。
- 388 :
- >>387
敵キャラ毎のローカルでupdateを使うこともあります。例えば敵キャラの待機中のアニメのコントロールなどメインに関係のない動作処理で、もちろんメインからの指示があればキャンセルして動作する仕様です。
switch などで条件分け。
- 389 :
- 横から失礼します
>>388
普通のリアルタイムゲームで
敵が例えばしばらく右に動くって場合
毎フレームごとにメインクラスのアップデートから敵クラスの関数(右に動く)を呼び出すカンジで
組むということでしょうか?
メインクラスで基本すべてのオブジェクトを管理するみたいなことでしょうか?
- 390 :
- >>戻り値で対応する
このテクニックおしえてほしいですm(_ _)m
- 391 :
- ButtonコンポーネントのOn Click() は
右下の + を何回も押せば複数設定できますが、
複数の On Click() を設定した場合、上から順番に実行されるのでしょうか?
それともランダムでどれかから実行されるのでしょうか?
- 392 :
- >>381
DOTweenであれば、
.OnCompleteがアニメーションが終わったら実行されるコールバックなので、
この中に続いて行いたい処理を書くのはどうでしょうか。
- 393 :
- >>391
試しに作ってみて呼び出し先でDebug.Logで適当な文字を出力すれば動作がわかると思います。
わかったらおしえてください。
- 394 :
- >>392
DOTween聞いたことない言葉でわからないですがこれから
調べてみようと思います
レスありがとうございます!
- 395 :
- >>393
どうもありがとうございます。
On Click() を10個設定して実行したら必ず上から順番に実行されました。
ありがとうございます。
- 396 :
- PUN2を使用して1つのオブジェクトを複数人で同時に操作することは可能ですか?
所有権が絡むので無理なのかな…
ターン制のゲームを作ろうとしてまして、自分のターンが終了したら「完了」ボタンを押して
次のプレイヤーに所有権を譲渡という処理が現実的ですか?
このとき完了ボタンの所有権も合わせて譲渡なのかな?
考えはあってもコードがスラスラ書けないので
参考になるサイトなどあれば教えてください。
- 397 :
- 関数が実行される回数を数えて5の倍数の時に特別な処理を行うようにしたいのですが、
どのようにすればいいのか教えてください。
- 398 :
- % 演算子 でぐぐりなされ。
- 399 :
- 世界のナベアツに教わるべき
- 400 :
- 実際例題でナベアツのとこもあるしな
- 401 :
- 3の倍数のときだけアホになる処理を行います
- 402 :
- 解決できました。
ありがとうございます!
- 403 :
- unityでAudioClip使って音を鳴らしていたのですが
何かの拍子に音がならなくなってしまいました
ゲームビューのMute Audioはオフで、オーディオリスナーもいて、オーディオソースもミュートになっていません
最初はなっていたのですが気がついたらならなくなっていました
なんでもいいのでこれ確認してみて?っていうのありませんか
思い当たる節としては、ビルドセッティングをPCからwebglに変更したことなのですが何か関係ありますかね?
- 404 :
- >>403
新しいオブジェクトに新しくオーディオソースつけて適当な音つけてatdiosouce.Play()しても鳴りませんでした
isPlayingを確認するとtrueにはなってます
- 405 :
- とりあえずunityエディタ再起動
- 406 :
- >>405
エディタ再起動、本体再起動してみましたがダメでした
音が鳴る他のプロジェクト(書籍のおまけプロジェクト)を開いたら音が鳴りました
あとビルドセッティングをpcに戻してみたんですがやはり鳴らないままでした
- 407 :
- Androidのビルドのプレイヤーが表示されない問題は解決した
管理者権限でPCを使えばいい話だった
でもビルドエラーが19個出て流石に心が折れた
最初は20個以上出てたけど19個にまで減らせた
でももう流石に疲れた
別のことやりながら気長にやるわ
- 408 :
- >>403
一つ気がついたのは、ゲームビューのstatsを押すと、
「Audio Level ー∞dB」になっていました
音が鳴る同一ソース同一音源別プロジェクトだと-33dBと表示されていました
- 409 :
- >>408
解決しました
project setting>disable unity Audioにチェックが入っていました
こんな設定触った覚えはないのですが・・・
お騒がせしました
- 410 :
- やっちまった
今のUnityってAndroidStudioもJDKもいらんのか
古い情報を参考にしてAndroidStudioとJDK入れてしまってた
慣れないマックだからどこに何が入ってるのか全くわからん
ビルドエラーの原因がこれならお手上げやしバックアップデータからリカバリーするわ
- 411 :
- >>396
Pun2のサンプル作成したので適当にどうぞ
ネットワークは初心者向けではないと思うので、これについてのフォローは別スレ「Unityで何かゲームを作りたいんだがね」
https://mevius.2ch.sc/test/read.cgi/gamedev/1452084824/
でお願いします
作りちょっと雑ですが操作権を渡して移動できるようにしてあります
クリックでビームがでるけど、そこは未対応、2,3のWeb見たけど結局公式のチュートリアルとリファレンスにらめっこでした
https://imgur.com/TFScO0P
http://whitecats.dip.jp/up/download/1589102312/attach/1589102312.zip
pass:1234
- 412 :
- 弟子くんやるやん
- 413 :
- >>411
まず感謝もうしあげます。まだ中身見れてませんが帰ったらすぐ確認します!
unity、プログラミング初めて2ヶ月でググりながらここまできて躓いたので手を差し伸べられたのが本当に嬉しいです
- 414 :
- 2か月でオンラインゲー作ろうとかすごいですね
自分も初めて2か月くらいだけどUIのボタンのクリック処理やっと理解したレベル
- 415 :
- >>414
やっぱやりたいことがあると必死になりますね。
VBAとかは仕事でたまにさわってたのでプログラミングってこんな感じ?ってのはありますが
クラス?インスタンス?グローバル変数っておいしいの?ですよ
- 416 :
- UnityでiOS向けのゲームを開発しているのですが、アプリを公開しようと申請をだしたところPUSH通知の設定があるけど証明書が登録されてないよメールが届きました。
アプリの中でPUSH通知を使ってないのですが、どうしたらこのアラートメールが来ないようにできますか?
- 417 :
- リカバリしてUnity入れ直してもビルドエラーが一つも減らない
先にiOS版を出そうかと思ったけどこのスレ見て目眩がした
あかん…本格的に心が折れてきた
ソースコードと過去絵使いまわして同人バカエロゲでも作るのが精神衛生上一番良さげなのが更に心折れる
- 418 :
- フリーのノベルゲームを作りたいのですが、他人が作ったMMDキャラを使う場合、コレは個人利用になりますか?
また、unityでお薦めの参考書があれば教えて下さい
- 419 :
- >>418
真面目な話すると
個人利用に当たるかどうかも自分でわからない奴は手を出さないほうが身のため
- 420 :
- >>419
分かりました。
ありがとうございます。
- 421 :
- unityで2dで開発してます
マウスボタンが押されたかの方法をネットで調べて
Update()でif (Input.GetMouseButton(0))
によりマウスボタンが押されたか判定が実現できました
マウスボタンを押していないときも含めてマウスの座標も得られました
しかし
ドロップダウンのリストが現れているときも
Update()でボタンダウンとかできてしまうので困っています
どうすれば
ドロップダウンのリストが現れているとき
Update()でのマウス位置やボタンダウンに関する処理を
させないようにできるのでしょうか?
自分なりに調べたり試したところUpdate()では何もしないのがいいのかな
ドロップダウンのリストが現れているときというのがわからないから
ドロップダウンのリストの生成やアクティブやZオーダーもこちらで制御できないし
キャンバス2つ用意してEventSystemでなんとかするのかな
- 422 :
- >>421
まず何がしたいのかも何が言いたいのかもわからないです。
現在の自分の状況をまったく知らない人が見てもわかる質問しましょ?
- 423 :
- 他のオブジェにアタッチしたスクリプトの変数をボタンを押して変更したいです。
Boolean(空オブジェ)にアタッチしているBoolean.cs の中の変数 bool BOOL を ボタンを押して、false から true にしたいです。
ヒエラルキーにあるオブジェ
Canvas
Button
Boolean(空のオブジェにBoolean.csアタッチ)
- 424 :
- //■■■Booleanに付けたスクリプト■■
using UnityEngine;
public class Boolean : MonoBehaviour
{
public bool BOOL = false;
void Update()
{Debug.Log(BOOL);}
}
//■■■Buttonのクリックイベント■■
using UnityEngine;
public class Button : MonoBehaviour
{
bool BOOL;
public void Click()//ボタンのクリックイベント
{
BOOL = GameObject.Find("Boolean").GetComponent<Boolean>().BOOL;
if (BOOL == false)
{BOOL = true;}
else
{BOOL = false;}
}
}
ボタンを押してもDebug.Log(BOOL) が true にならないです。
Booleanの中のboolean型の変数 を true にしたいのでどうか教えてください。
- 425 :
- >>424
bool BOOLの下に
Boolean booleanを宣言して
booleanにゲットコンポーネントでBooleanをいれるか、シリアライズフィールドでオブジェクトBooleanをアタッチします
BOOL = trueって、なってるところを
boolean.BOOL = true
に変えればいいと思います
- 426 :
- 下記のスクリプトのようなオブジェクトが滑らかに移動する動作をUIのボタンを押したら移動するようにしたいのですがどうすればいいでしょうか?
public class Move : MonoBehaviour
{
//スタートとゴールの設定
public Transform StartPosition;
public Transform GoalPosition;
// スピードの設定
public float speed = 1.0f;
//2点間の距離を入れる
private float distance_two;
void Start()
{
//二点間の距離を代入
distance_two = Vector3.Distance(StartPosition.position, GoalPosition.position);
}
void Update()
{
// 現在の位置
float present_Location = (Time.time * speed) / distance_two;
// オブジェクトの移動
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
}
}
- 427 :
- >>425
ご親切な回答を有難うございます!
おかげ様で出来ました!
- 428 :
- IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
- 429 :
- void OnEnable()
{
GameObject _button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button1.gameObject.SetActive(true);
GameObject _button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
_button2.gameObject.SetActive(false);
}
↑このようなコードをスタート関数を用いる方法で書き直しました↓
GameObject _button1;
GameObject _button2;
void Start()
{
_button1 = GameObject.Find("Canvas").transform.Find("button1").gameObject;
_button2 = GameObject.Find("Canvas").transform.Find("button2").gameObject;
}
void OnEnable()
{
_button1.gameObject.SetActive(true);
_button2.gameObject.SetActive(false);
}
そうしたら_button1.gameObject.SetActive(true);の行の所で
NullReferenceException: Object reference not set to an instance of an object というエラーがでました。
どのオブジェクトにも参照を持たない参照変数にアクセスしようとするエラーらしいのですが、一応動作はしている見たいで、参照もできている感じですが無視していいのでしょうか。
スタート関数を用いないほうがいいのでしょうか。
- 430 :
- >>429
NullReferenceExceptionが出るということは、_button1が取得できてないんじゃないでしょうか。
Debug.Log(_button1)で中身が出力されますか?
それと、枝葉の話ですがOnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
- 431 :
- >>421
bool IsPressed = false;
if (Input.GetMouseButton(0) && IsPressed==false) {
IsPressed = true;
・・・
}
というふうにするのはどうでしょうか。
ドロップダウンリストを消したタイミングで
IsPressed = false;
にしてやればいいと思います。
- 432 :
- >>421
>>422
http://kmajo.starfree.jp/images/20200512/qq1.png
Update()でif (Input.GetMouseButton(0))で
インスタンス化することで描画とする
http://kmajo.starfree.jp/images/20200512/qq2.png
ドロップダウンのリストでクリック
http://kmajo.starfree.jp/images/20200512/qq3.png
この意図しない描画を防ぎたい
- 433 :
- >>432
IsPointerOverGameObjectで解決しました
- 434 :
- >>430
どうも有難うございます。Debug.Logで調べてみたのですが
どうやらスタート関数よりOnEnable()関数の方が先に呼ばれているようです。
それでうまくいってなかったのだと思います。
OnEnable()の中では、
_button1.SetActive(true);
として、gameObjectはいらないと思います。
↑了解いたしました。有難うございます。
- 435 :
- >>426
まず、滑らかに移動するルーチンをお作りなさい。
つぎに、
ボタンが押されたらある変数が0から1になるルーチンを作りなさい。こちらで押したら離しても1のままとなるように。
- 436 :
- >>426
public class Move : MonoBehaviour
{
//省略
private bool flag;
private float time;
//省略
void Update()
{
if(flag)
{
if(time > distance_two / speed)
{
time = distance_two / speed;
flag = false;
}
float present_Location = time * speed / distance_two;
transform.position = Vector3.Lerp(StartPosition.position, GoalPosition.position, present_Location);
time += Time.deltaTime;
}
}
//buttonで呼ぶ
public void MoveStart()
{
flag = true;
}
}
- 437 :
- 初心者だから毎日の様に新しい知識が増えて、同じプロジェクト内でもスクリプトの記述ルールとかが変わっていきます。
好きにしろよって感じだと思いますが、皆さん書き直してますか?
まだまだクソコードだからキリが無いとも思いますが、コンポーネントの取得方法の書き方などが変わると目的の場所がわからなくなっていくので・・・。
- 438 :
- 初心者だから混乱するので作り直すの難しそう
- 439 :
- >>438
最初は何でもかんでもオブジェクトに貼り付けて全部インスペクターで管理しちゃってたのが段々スクリプト完結になっていったりとか。
前者はUnityの良さでもあるのでNGでは無い気もしますが、混在してるとなんだかモヤモヤしますね。
- 440 :
- 記述ルールの変更ということで、
初めはステータスコンポーネントにキャラクターの能力値を記述していたのですが、
あの能力を使わせよう、この動きを行わせようとしているうちにどんどんメンバが増えていき
講読性も拡張性も大変悪いので、GetterSetter他パラメータ固有動作を一つずつクラス化し、
ステータスコンポーネントのDictionalyに随時格納しているところなのですが、
Dictionalyに格納したクラスは格納したまま変更可能でしたっけ?
出来なければクラス化したパラメータをメンバとしてステータスコンポーネントに並べるだけでなのですが、
そうなると果たしてこの方法が講読性、拡張性を改善した方法と言えるものなのか
そもそもこのやり方、いろいろな意味で正しいのかどうか
既に修正に多大な手間と時間を要している状態なわけですが、自分では判断がつかず悶々としています
皆様の所見としてはどうなのか、お答え願います
- 441 :
- ue5が発表されてTwitterでトレンドまでなってるけどunity使ってる君たちはどんな気持ちなんだ?
- 442 :
- いつだって俺たちはゴキゲンだぜ☆
- 443 :
- ゲームエンジの能力=自分が作れるゲームって勘違いしてるのかな?
- 444 :
- ?橋聖子なんて無視しとけ
あいつUnityどころかRPGツクールも挫折するレベルだぞ
- 445 :
- こんな煽りとID被ってすまんな
- 446 :
- UE5の情報が公開されましたね。
アセットの扱い一つ見ても、”そうそう、それが欲しかったんだよ!”と叫びたくなるほど、
UE5陣営が本当に開発に寄り添っている事が良く分かる、素晴らしいデモだと思います。
UE4の時点でもう進化の限界だろうと思っていましたが、彼らは軽く想像を超えてきます。
unityのデモはいつも何が言いたいのか意味解らないですね。
https://www.unrealengine.com/ja/blog/a-first-look-at-unreal-engine-5
4からの互換もかなり考慮されている模様。
unityは0.1でもバージョンが違うと動かない事が多いので、
この辺りの配慮も嬉しいですね。
- 447 :
- 2dゲーム作るとしてもue5の方がいいのか?
- 448 :
- Unityすらまともに扱えない初心者が集まって教えて君するスレで何やってるんだこいつ
エンジン選ぶ立場の上級者がいるスレでやればぁ?
- 449 :
- >>443
X:自分が作れる
O:自分でも簡単に作れる
- 450 :
- UE5、まるで実写みたいなクオリティの映像見せられまひたけど(^^
一般人がそこまで高クオリティなモデリング出来ると思ってるのでひょうか?(^^
僕的には2Dの扱いやC++以外の言語を使えるようになるかが気になってまふよ(^^
クソゲー製造機がUnityからUE5に変われるかが問題でふ(^^
ボッキング!(^^
- 451 :
- ゲームエンジンをツクールだと思ってる人多いよね。
自分はそうなってくれた方がありがたいレベルだけど。。
- 452 :
- もう新規はみんなue5に行っちゃうけど取り残された君たちはどんな気持ちなんだい?
- 453 :
- 基本無料なんだし、インストールしてみてその人の作りたいものに合ってたら使えばいいんでないのか?取り残されるって何に取り残されるんだ?
- 454 :
- 無限ループで Unity エディタがフリーズしたときってどうすればいいのでしょうか
有料アセットしかないのか
- 455 :
- アセット関係なく、実装不具合。直すがよろし。
- 456 :
- なおそうにもエディターの再生ボタンが止まらない
- 457 :
- ゲームエンジン全般の話だけど、どれだけ機能が凄くて開発元が全力出したデモで痺れるような体験が出来たとして、同じレベルを個人で再現するのは不可能だからな
UE5デモで出てくるハイポリの石像1つすら再現出来るのは何人いるの?って話で、結局は出来ないのと同じだと思うわ
- 458 :
- ue5を使いこなせるのは任天堂やらの大手ぐらいだろう
個人ゲーム開発者には関係ない話だとは思うんだがね
unityより余程ゲームが作りやすい!とかなら移ってもいいが
- 459 :
- キミが知らんだけよ
同人ゲームとか個人でUE使ってる人はたくさんいる
- 460 :
- ue スレで話せばいいと思うよ
- 461 :
- >>437
勉強になるし、書き直しておかないと後でわかりづらくなるので
気がついたときに修正していってます
>>439
このインスペクターに出すってのがなんのためなのかいまいちわかりません
基本的に出さないほうが管理しやすいように思えるので出さない方向でやっています
- 462 :
- 3D空間を移動するオブジェクトAの子にMainCameraがあります。
マウスのx,y座標移動で視点を変える機能を作成したのですが、オブジェクトAとMainCameraの間に遮蔽物(壁や床)が存在すると遮蔽物が映ってしまいます。
狭い道や建物に入ることを想定し、上記の問題を回避したいのですが、解決するにはどのような方法がありますでしょうか?
- 463 :
- >>464
3D作った事ないしうろ覚えだけど、遮蔽物を透明にするのってカプコンかなんかの特許なんじゃなかったっけ?
ズームしてキャラに近づくゲームが多い気がする
- 464 :
- >>462
壁や床に入らないようにコライダーを調整するだけ
- 465 :
- >>462
カメラ周辺から被写体に向けてレイを投げて、障害物があったらその前に回り込ませたり、障害物の透明度を下げたりする。
ただ、勉強のために自分で作ってます、とかならいいけど、
そうでないならCinemachineなどのカメラアセットを使うのをお薦めするよ。
unity公式アセットなので無料だし、ググれば日本語で使い方説明した記事がいっぱい出てくるから。
- 466 :
- WebGLのInputFieldではコピーできないのかよおおおお
どうしたらいいのでしょうか
unityエディタでの動作確認したりするので
対策したらWebGL以外では動かなくなるのは困る
- 467 :
- あの特許1、2年前に切れなかったっけ
- 468 :
- unity2019で作成しtimelineを2018に移行したいのですが、2019だtimelineがpackageになっているためか移行出来ません。
- 469 :
- >>468 です
- 470 :
- >>468 です
投稿ミスりました。
対処法などありますでしょうか。
宜しくお願い致します。
- 471 :
- UE5きたかwww
UEで作ったゲームは3000ドル超えたら超えた分の5%払う条件が
条件が100万ドルになるとかwww 来年かよwwwまだかww
- 472 :
- 詳しくは自分でちゃんとググってねw
個人開発レベルもぐんと上がるのかww
すごい時代やww
- 473 :
- シーン内のオブジェクトって
インスペクタ内でコンポーネントを追加や削除していくと
もともとは何だったのか判別しづらくなると思うんだけど
分かる方法ありますか?
例えば、このオブジェクトは
もともとは"create empty"で作ったものだとか、分かるんかな?
他人が作ったサンプルシーンを開いた時に、
知りたいんです
- 474 :
- ないんじゃない?
知る必要があるとも思えんけど。
- 475 :
- 元がプレハブならオーバーライドのとこ見ればわかるけど
- 476 :
- サーフェスシェーダーで使うIN.uv_MainTexと
シェーダーグラフのUVノードで取得できるfloat2って同じ値でしょうか?
シェーダーグラフでノイズテクスチャを作ってるんですが
サーフェスシェーダーで作ったノイズテクスチャと比べて解像度が低い印象です。
TilingAndOffsetノードでスケール変えたりもしましたがズームするとボヤッとして無限ノイズが作れません。
- 477 :
- BroadcastMessage, SendMessage の仕様なんですが、
if (Input.GetKey("space")) {
gameObject.BroadcastMessage("ApplyDamage", 1.0f);
}
とやってスペースキーを一回押すと、ApplyDamage が 100 回近く呼ばれるんですが、こういう仕様でしょうか?
呼び出しを 1 回にするのはプログラマー側でやらないと駄目ですか?
- 478 :
- 1回にしたいならGetKeyDownかGetKeyUp
- 479 :
- >>478
1 回になりました
- 480 :
- >>479
何故そうなるかは覚えておいた方がいいよ。
OffからOnになったか (GetKeyDown)
OnからOffになったか (GetKeyUp)
Onか(GetKey)
- 481 :
- >>480
なるほど
GetKeyDownが新社会人
GetKeyUpがリストラ無職
GetKeyが神
こういうことか!
- 482 :
- >>481
あんまり面白くなかった
ごめん
- 483 :
- >>480が歌詞みたいで面白い
- 484 :
- ここodin使っている人いますか?
[TableList]で30個ぐらいのボタンを作成したいんですが
配列からボタン名を設定することは可能でしょうか?
現状だとボタン名が全て"ButtonName"になってしまいます。
[TableList]
public List<NewBtn> Lists = new List<NewBtn>()
{
new NewBtn(),new NewBtn(),new NewBtn(),
};
public class NewBtn
{
[Button("ButtonName" , ButtonSizes.Large)]
public void BtnAction(){}
}
- 485 :
- >>483
お前音痴だろ(笑)
- 486 :
- >>483
声出して笑ってしまったわw
>>484
Tool→OdinInspector→AttributeOverviewのButtonのサンプルコードは見てみた?
何をボタン名にしたいのかわからないから
もうちょっと具体的に質問してもらえると手伝えるかも。
- 487 :
- Get Key Down ひとりでは
解けない愛のパズルを抱いて
Get Key Up この街で
やさしさに甘えていたくはない
Get Key Down 君だけが
守れるものがどこかにあるさ
Get Key Up ひとりでも
傷ついた夢を取りもどすよ
- 488 :
- もっこりオブジェクト
- 489 :
- >>487
>Get Key Down ひとりでは
>解けないツールの仕様を抱いて
>Get Key Up このスレで
>やさしさに甘えていたくはない
>Get Key Down 君だけが
>答えれる問いがどこかにあるさ
>Get Key Up ひとりでも
>つまずいたバグを取りはらうよ
- 490 :
- 規制解除めでたい
しかし自宅待機や自粛ストレスの気分転換をコンセプトに作ったワイのアプリの行き場は何処へ…
Unity触り始めの1ヶ月でアプリ二本作ったはいいもののビルドエラーには勝てなかったよ…
ソースコード使い回しで同人エロゲ作るか
PC用なら流石にビルドエラーはないやろ…
- 491 :
- >>490
1ヶ月で2本作るとか凄くない?見てみたい
- 492 :
- >>491
二本作ったとドヤってますが…
実際は教本のサンプルスクリプトを改変しただけなので誰でもできるレベルです
画像も過去に作ったアプリの使い回しやフリー素材を加工したものが大半ですし
教本のサンプルスクリプトは改変したものを公開・販売しても良いと明記されているので改変自体はいいんですがまさかビルドで躓くとは思いませんでした
リリース自体は諦めていませんがビルドの方法は地道に調べていこうと思います
- 493 :
- >>規制解除めでたい
これってどういう意味ですか?
UNITYの規制がなんか解除されたってことでしょうか?
- 494 :
- ゲーム作りもいいがニュースを見よう
- 495 :
- なるほど 文脈からも読み取れますね
最近UE5が話題になってるのでUNITYなんか対抗したのかと思いました
- 496 :
- フラグをつけてupdate内でif文を1度だけ処理させた時、その後も毎フレームtrueかfalseの判定をし続けるのでしょうか?
またそれはパフォーマンスに影響しますか?
それともUnityやC#の仕様などで二度と変化しない様な変数は以降スルーされる様な仕組みになってるんでしょうか?
- 497 :
- 判定し続けないと変わったときに困るだろう
- 498 :
- Debug.Log君に聞いてみればちゃんと答えてくれるゾ
- 499 :
- >>497
ですよね・・・!
>>498
すぐ確かめられますね、、くだらない質問してすみませんでした。
- 500 :
- >>486
ボタン名ですが、例えば特定のフォルダに入ってる複数のシーンアセット名を
テーブルリストのボタンに流し込む仕様で考えていて、作りたいのはシーンローダーのようなものです。
現状はボタン一個にパスをベタ書きしていて、シーンのバージョンが上がったら
書き直す状態なので効率が悪いです。
ボタン名用の参照はこんな感じですかね。
using System.IO;
string[] scs = Directory.GetFiles(Application.dataPath + "/Scenes/Test/", "*.unity", SearchOption.AllDirectories);
- 501 :
- >>500
TebleListがあるスクリプトに、TableList内のエレメントを取得するメソッドを書いてそれを呼ぶ、というのはどうでしょうか。
そのメソッド内から、NewBtn側に用意した、ボタンのラベルとなるstring型の変数を書き換えています。
GetTableElementsは下記ではボタンにしているので、sceneが増えたらボタンを押し直さないといけませんが…
[Button("GetTableElements")]
void GetTableElements()
{
string[] scs = Directory.GetFiles(Application.dataPath + "/Scenes/Test/", "*.unity", SearchOption.AllDirectories);
Lists.Clear();
for (int i = 0; i < scs.Length; i++)
{
Debug.Log(scs[i]);
NewBtn newBtn = new NewBtn();
newBtn.SetLabel(scs[i]);
Lists.Add(newBtn);
}
}
public class NewBtn
{
string buttonLabel;
public void SetLabel(string labelStr)
{
buttonLabel = labelStr;
}
[Button("$buttonLabel", ButtonSizes.Large)]
public void BtnAction() { }
}
- 502 :
- Unity : 2018年にGoogleと提携。
Unreal Engine : 中華企業テンセントが買収。
ゲームエンジンは使う人が少ないため商業化が難しいとされてきたのにUnityが
台頭してきている理由が分かった気がした。
- 503 :
- if文についての質問です
条件の指定の仕方(if文)で
シーンにAとBという名前のついたオブジェクトがあるとします。BはAの子供だとします。
子供はいない場合またはCという名前の子供可能性もあります。
"A"というオブジェクトの子供に"B"というオブジェクトがついていたらという条件式を
書こうとする場合
if()のかっこの中はどう書くかかわかる人いますか?
- 504 :
- >>503
var a = GameObject.Find("A");
var b = GameObject.Find("B");
if (a!=null && b!=null && b.transform.IsChildOf(a.transform))
//;
- 505 :
- >>504
早速の回答ありがとうございます。うごきました。
- 506 :
- 3Dモデル(A)にスクリプトを沢山取り付けて動作させてます。
新しい3Dモデル(B)を作成して(A)のスクリプトをインスペクター上で1個1個コピーして(B)に貼り付けているのですが纏めて貼り付ける方法などありますでしょうか?エディタ拡張はやった事ないのですが自分でエディタ拡張組まないと出来ないのでしょうか?
- 507 :
- >>506です。
良い言い回しが分からず伝え難くてすいません。画像で表すとこのような事をやりたくご教示頂けないでしょうか。
https://i.imgur.com/OYEY2in.jpg
現状は1つづつコピー貼り付けで対応しています。
- 508 :
- >>506
逆に考えるんだ。
aをデュプリケイトして、オブジェクトをbに差し替える。
- 509 :
- >>508
モデルAを複製して見た目をモデルBに
するという事でしょうか、それが可能なら質問事項より断然やりやすくなります。
- 510 :
- >>508
あっ!モデルAをコピーして中身を全部消す→モデルBの中身をモデルAに写すで
うまく行きました!
なんで気が付かなかったんだろ・・
ありがとうございます!
- 511 :
- パーティクルでオーラのようなものを作り、軌跡に粒子を巻き上げながら(というより残しながら)地面を走っていく演出を作ろうとしています
パーティクルでシミュレーション空間をワールドにしたのですが、地面を走らせるためにリジッドボディのAddForceで飛ばしても
粒子がその場に残らずパーティクルの塊がそのままま進んでいってしまいました
前述のような演出を行わせるにはどうしたらよいでしょうか
- 512 :
- >>511
パーティクル設定の、emitter velocityでは?
よく分からんけど、試してみてくれ
- 513 :
- >>501
できました。ありがとうございます。
- 514 :
- unityとVisual Studioを連携させようと環境設定開いたら
外部のスクリプトエディター一覧にvisualstudioが出てこないのですが
なぜでしょうか
バージョンはvisualstudio1.6.0.3
unity2019.1.2f1です
- 515 :
- unityでml-agentsのチュートリアルの3Dボールの機械学習をやりたいんですが、anaconda promptで実行すると
PermissionError: [WinError 5] アクセスが拒否されました。: './models'
During handling of the above exception, another exception occurred:
のようなエラーが出ます。
また、unity上では
Couldn't connect to trainer on port 5005 using API version API-13. Will perform inference instead.
UnityEngine.Debug:Log(Object)
MLAgents.Academy:InitializeEnvironment() (at Assets/ML-Agents/Scripts/Academy.cs:228)
MLAgents.Academy:LazyInitialization() (at Assets/ML-Agents/Scripts/Academy.cs:147)
MLAgents.Agent:OnEnable() (at Assets/ML-Agents/Scripts/Agent.cs:255)
というエラーがでるんですが、どなたか原因がわかるかたいらっしゃいますか
- 516 :
- 移動用のスクリプト、自動で敵を見るスクリプト、射撃用のスクリプトなど、現在オブジェクトに用途別に作ったスクリプトを多数載せてるんですが、これって一つのスクリプトにまとめたほうが処理は軽くなったりしますか?
オブジェクトの使用目的に合わせて、小分けにしたスクリプトをいくつも載せてったほうが汎用性が高そうだと考えてなんですが、これが正解なのか?なんか落とし穴があるんじゃないか?
とモヤモヤしています
- 517 :
- >>515
'./models'へのアクセス権限がないようですが、フォルダを開けますか?
Couldn't connect to trainer on port 5005 using API version API-13.
についてはググれば海外のフォーラムで少し議論されてるようですが参考になりませんか
>>516
私も詳しくありませんが
Unityはコンポーネント指向らしいのでそのやり方でいいんじゃないでしょうか
- 518 :
- https://gametukurikata.com/program/scriptableobjectitemdatabase
今このサイトに沿ってデータベースを作成しました。クリックしたオブジェクトを取得してその別のデータをテキストとして表示する(例えば武器をクリックするとその攻撃力が表示されるなど)にはどういうスクリプトを書いたら良いでしょうか。
ちなみにクリックしたオブジェクト名を取得するところまでは書けていますが,そもそもSceneにあるオブジェクトとデータベースのデータが紐付いていない状況です。
- 519 :
- IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
- 520 :
- vs codeでインテリセンスは有効になるでしょうか?
unity debuggerではだめでしたが、公式のアドオンは存在しないのですか?
- 521 :
- >>518
データベースの後、どこまで作ったのさ?
引っかかったところで質問してくれたら答えやすい。
- 522 :
- 和尚本のサンプルを手本に横スクロール型の2Dドット絵アクションゲームを作っています
キャラがジャンプした時のグラフィックに関して
キャラがジャンプすると髪や胸が揺れるというアニメーションを入れたいと思っています
といっても細かいものではなく
リジット2Dを付けたキャラの上昇時と降下時にスプライトを切り替える程度でいいのですが方法がわかりません
ドット絵アクションでも揺れものアセットを使ってボーンを入れた方がいいのでしょうか?
ご存知の方がいらっしゃれば教えてください
- 523 :
- >>522
どっちでもいいさ。
スプライト 切り替え unityで潜れば良い
- 524 :
- >>522
unity 2D アニメーション
で検索
- 525 :
- >>523>>524
ありがとうございます!
- 526 :
- Mathf.CeilToInt(1 / 2) = 0
Mathf.CeilToInt(0.5f) = 1
これってどうして?
- 527 :
- int型で割るとおかしくなりますよ。
- 528 :
- >>526
1/2=0だから
int / int の端数は切り捨てられる
- 529 :
- >>527>>528
早い回答ありがとうございます
- 530 :
- >>521
>>518のサイトの「アイテムデータベースを利用する」のコードを書いていてコードの意味が掴めなくて手が止まっているのですが,
「Item」型や「ItemDataBase」型,「GetItem」関数ってUnityに標準で組み込まれているもの(ユーザー定義ではない)なのでしょうか?(公式のヘルプでも見つかりませんでした)
もしヘルプかなにかがあれば教えていただきたいです。
- 531 :
- C#の基本を勉強したほうがいい
そのページに書いてあるとおり作ったクラスやメソッド
- 532 :
- 仕事じゃないならデータベースはOdinで作ってた方が良いと思いますね
標準機能でインターフェースとか作ってたら終わらないですよ
- 533 :
- Odinって2020とかでエディタ変わっても追随してるん?
- 534 :
- データベースはcsvで書いておけば楽だと思うんですがどうなんでしょうか
- 535 :
- くだらない質問だけど、ブラゲーでメモリキャッシュオーバーエラー出た時にどこかにUnityって書いてあったらUnityで作られたってことなの?
- 536 :
- 質問失礼します。
スタート関数でHorizontal layoutを持たせた親オブジェクトの中に5個のオブジェクトを生成します。
ゲームのスタートと同時に5個のオブジェクトのポジション情報(vector3)を利用してそのオブジェクトを移動させたいです。
生成のすぐ後に移動アニメーションが含まれた関数を実行すると、恐らくまだレイアウトが効いていないためすべて同じ位置からアニメーションしてしまいます。
遅延処理を入れる事も考えましたが、例えば0.1秒の遅延をいれたとして利用者の端末の処理速度次第では意図しない動作になるのではないかと不安です。
安全マージンをとって1秒などにするのはゲームのテンポを損なうため避けたいです。
初期化が終わったら実行するというのはどの様な手法が考えられますでしょうか?
参考になるかわかりませんが、アセットはDOTWEENだけ持っています。
よろしくお願いします。
- 537 :
- >>536
使った事ないから遠いかもしれないけど、子のオブジェクトのstartに完了フラグ入れて監視しては?
- 538 :
- はじめまして。
質問させて戴きます。
TPSのゲームの簡単なスクリプトを組みまして、少し前に銃を撃つスクリプトを作成しました。
簡単に言うと、弾丸として作成したプレハブを、クリックするたびに銃口(と定義した、銃の先端くらいに配置した空オブジェクト)から銃の向きに真っ直ぐ打ち出す....と言う簡単なものです。
作った時は何も問題なく使えてたのですが、そのあとそのスクリプトはほとんど触っていないのに、銃口より遙かに下から射出されるようになっていました。
それも毎回ではなく3回に一回はちゃんと銃口からでてくるのです。
PCが7年前のものなのでスペックのせいで処理がちゃんとできていないのかな?とも思いましたが、60fpsは出てるような状態でも同じことで、かと言ってスクリプトも単純なものでおかしい点もないように見えます。
上記で頭を抱えているのですが、何かアドバイスをいただけないでしょうか。
よろしくお願いします。
- 539 :
- >>538
ちなみに変な位置から射出された場合も、Instantiate()で指定したプレハブを、指定した角度で射出してくれています。
銃口の取得だけがおかしいように思えます。
- 540 :
- >>536
移動アニメーションがDOTweenで行われているのであれば
DOTweenのOnStart()で移動アニメーション前にレイアウト設定したらどうでしょうか
あるいはオブジェクトをInstantiateを使って生成しているのであれば
Instantiate時に引数でPositionを設定できます
- 541 :
- >>538
地道なデバッグが必要かもしれません
以前は問題なく動いていたということなので
少しずつスクリプトを以前の状態に戻していき
問題が出る場所を特定するとよいでしょう
また以前のスクリプトに戻してもまだ挙動がおかしければ
原因はスクリプト以外にあるということになります
- 542 :
- >>541
ありがとうございます。
いろいろ試してみます....
- 543 :
- ワイもちんちんをクリックするたびに白いオブジェクトが飛び出すゲーム作ったで〜
- 544 :
- >>538
こちら解決しました!!
でもいまいち仕組みがわからない....
操作キャラをWASDで動かすためにキャラクターコントローラーを追加してまして、別のなにかのときにリジッドボディも一緒に入れていたようです。
この2つは一緒に入れちゃダメなやつなんですかね、キャラクターコントローラーってやつがよくわかってないので勉強してきます。
とりあえずリジッドボディを削除したら直りました。
ありがとうございました。
- 545 :
- >>537
horizon layoutの完了を感知する方法、もしくは実行のタイミングがわからないので難しそうです・・・。
オブジェクトが生成された瞬間はx,yともに0の様なのです。
>>540
OnStartすごく便利そうなのに知らなかったです、今後使います。ありがとうございます。
しかし今回はhorizontal layoutのタイミング的に使えなそうです。。
やはり横着せずに自力でレイアウト座標を割り出すしか無いですかね。。
プログラミング自体初心者なのでできるか分かりませんがやってみます。
皆さんありがとうございました。
- 546 :
- horizontal layoutの仕組みを確認したいのですが、コンポーネント自体のソースコードってどうやって確認するんでしたっけ・・・。
VisualStudioを使用していて前に出来た記憶があるのですが思い出せません。。
- 547 :
- 2Dで円の真ん中をくり抜いたようなドーナツ型の当たり判定はどうやって作れますか?
- 548 :
- >>547
内径 < 対象と中心点との距離 < 外径
- 549 :
- >>547
Vector2.Distanceを使って当たり位置と中心位置の差を求めて適当な値の時にfalseにする
- 550 :
- 用意するもの
L:大きい円のコリジョン
S:小さい円のコリジョン
Lに衝突且つSに衝突していない場合に処理。
- 551 :
- >>548〜>>550
ありがとうございます
- 552 :
- Toggleを使ってオンのときにアニメーションが動き,オフのときにアニメーションが一時停止,オンにするとまた動き出すようにするにはインスペクターでどのように設定したらいいんでしょうか?
- 553 :
- toggleのオンで関数呼んで、そこでアニメオンスクリプト。
オフはその逆で紐つけるだけ。
- 554 :
- >>553
すみません。書くのを忘れていました。
Toggle自体の見た目をオフ時に静止,オン時にアニメーションにしたいということです。
- 555 :
- あと,アニメーションは少し長めのものを使うつもりで,オフ時は静止画ではなく,あくまでアニメーションの一時停止の形にしたいです。
- 556 :
- Toggleにアニメーターをアタッチして、アニメーションがループ再生されるようにしておく。
ToggleのOnValueChangedイベントでゲームオブジェクトにtoggleを、ファンクションに
Animator→DynamicBoolの方のenabledを選択。
- 557 :
- >>556
ありがとうございます。その方法でやってみます。
- 558 :
- https://i.imgur.com/FhHJTV1.gif
画像のような選択肢の表示は、一般的にはコルーチンを使って行うのでしょうか
カードゲームであることを加味していただけると嬉しいです
- 559 :
- >>558
待機してるように見えないけど。
Unityならアニメーションの終了をトリガーにすれば良いのでは?
- 560 :
- >>559
誤解を招く文章でした
アニメーション部分というより、選択待ちの際にコルーチンのwhileを使用しているのかなと疑問でした
- 561 :
- >>560
この画像通りの処理ならコルーチンいらないと思うけど一般的かはわかりません。
自分ならフラグでカードの拡大と縮小、拡大中のカードを押したら選択完了、拡大中のカードがある時他のカードは操作無効という感じでやると思います。
- 562 :
- timeline を使ってみているところですが、
スクリプトからヘッダ位置を変更させる方法がわからなくて困っています。
知っている方、教えていただけないでしょうか。
- 563 :
- >>561
ありがとうございます
- 564 :
- >>562
PlayableDirector director;
とかやって
director.time = 5f;
で5秒にヘッドが移動するよ
- 565 :
- DoTweenについてご存知の方いらっしゃいますかね?
あれってUI作る道具ってことでいいんでしょうか
ざっくりした質問で申し訳ありませんが、ご教授お願い申し上げます
- 566 :
- >>565
値をアニメーションさせるツールだから何にでも使えるんじゃないの
エフェクトに使ってもいいしマリオの移動床みたいなのに使ってもいいし
- 567 :
- UI用DOTween的なDoozyUIがあるゾ
- 568 :
- >>566
マジですか!
すげぇ!
使い方があんまりわからないんですが、Proの方もスクリプトでフラグ立てたりして操作するんですかね?
>>567
マジですか……
それはめっちゃ助かります
買うかどうかは分かりませんが見てみたいと思います、ありがとうございます
- 569 :
- 外に出てワイファイ切れたせいでID変わりました
あしからず
- 570 :
- >>568
確かproだとコンポーネントが使えるようになってコード書かなくても使えるとかだった
あとやっぱり一番主な使い方はいちいちアニメーションつけるのがファイルが増えたり面倒なちょっとしたUIをリッチにすることなのかな
- 571 :
- ビルド後、exe側でゲーム実行中にウィンドウサイズを変えると
カメラの外側にあるオブジェクトまで映ってしまいます。
普段エディタ内でテスト再生してたときはカメラの外側は映りませんでした
ゲームタブを独立させてテスト再生中にウィンドウサイズを変えても同様に外側は映りません
どうしたら前者を後者のようにできるのでしょうか
- 572 :
- >>570
なるほど……詳しくありがとうございます
アニメーション設定はできたんですが、ゲーム内での起動を制御する方法とかご存知ではありませんでしょうか?
常に拡大したり縮んだりしていては困るので……
それから公式のサンプルプロジェクトがあんまり理解できなかったのですが、他になにか教材はないでしょうか?
質問多くてすみません
- 573 :
- ちなみに2Dです
- 574 :
- DOTweenはシーケンスにアニメーション(アクション)を順番に登録出来るアセット
主にプレイヤー以外のオブジェクトの移動なんかがツクール並に簡単に記述出来る
- 575 :
- >>574
ありがとうございます
お言葉を参考にしてつぶさに見てみたところscaleやMOVE、fadeなどでてきたのでそういったパラメータを操作できることはわかりました
そして下のオンプレイやオンスタートなどのイベントを使って起動できるのではないかという予測もできました
しかし肝心のアニメーションの作成の方はどうすればよいのでしょうか?
また、アニメーションは一つのAnimationコンポーネントにつき一つが上限なのでしょうか?
- 576 :
- 無料なんだから取りあえず使ってみればいいじゃない。
- 577 :
- >>575
そっちのアニメじゃなくて移動・回転・拡大縮小の方だね、DOTweenはアクションのリスト登録ができる
アクション中にアニメも切り替えたい場合はアニメーターコンポーネントからアニメーションコントローラーにアニメーションクリップを登録してパラメーターで制御が公式推奨で
旧アニメーションコンポーネントからやる場合は
GetComponent<Animation>().Play("名前");
で動く、複数アニメーションクリップを登録するのはサイズを増やすだけ
- 578 :
- >>577
すみません、言い間違いました
値をアニメーションさせると言いますか、アニメーションではなくアクションと言ったほうが良かったかもしれません
申し訳ありませんでした
正確にはDoTweenAnimationコンポーネントでアクションを記録する方法と、それから一つのコンポーネントにつき一つしかアクションを格納できないのかということをお聞きしたかったのです
つたない文章でお手間をおかけして申し訳ありません
それから余談ですが、自分はSimpleAnimationというコンポーネントでアニメーションしてます
旧アニメーションの使い勝手でAnimatorも使えるという感じで中々いい感じですよこれ
このスレの皆さんにもぜひおすすめしたいですね……
- 579 :
- >>578
なるほど、多分それはDOTweenPro限定のUIプレビュー機能だと思う
なので保存出来るのかすらよく分からない、プレビューで上手くいった値をスクリプトにエクスポート出来るとかなのかな?
- 580 :
- >>579
ああ、なるほど……
UIの設定をスクリプトに出力してくれるのですか?
それはすごいですね、コーディングいらずは本当でしたか……
もう少しやってみます、本当にありがとうございます
- 581 :
- >>580
いやPro版の機能だから保存機能あるのかは知らないよ
UIからだからこそ出来る機能ってのは不明で視覚的に操作出来るのがメリットじゃないかな?
機能的にPro版だけにあるのはTextMeshProや2Dスプライトの操作だね
- 582 :
- カードをgrid rayout groupで並べて
斜めにずらしてカードが重なるように配置するにはどうしたら良いでしょうか?
- 583 :
- >>582
グリッドレイアウトで並べて
■■■
■■■
■■■
何を斜めにずらすの?
- 584 :
- >>583
一枚がこんな感じに重なるようにしたいんです。
■■■
■□□□
■□□□
□□□
- 585 :
- こんな感じにしたいんです
https://i.imgur.com/XnnjOZQ.jpg
- 586 :
- 重なってるカード同士を親子関係にして親か子のポジションをずらす
- 587 :
- >>586
ありがとうございます!
- 588 :
- 最初にすべてのシーンを読み込んで、以降ロードを発生させない様な方法はありますか?
- 589 :
- ResourceLoadALLじゃなくてAddressablesで非同期ロードすると待機時間ほぼなかったですよ
起動時に全部読み込むと非表示にしていてもフレームレートを奪ってくるので必要な時に読み込んだ方が良いです
- 590 :
- Unity初心者なのですが、Asset Bundle Browser(ABB)で下記のようなことはできますでしょうか?
※Androidのアプリになります。
@アプリの__dataファイルを取り出す
AABBを使用して、@から画像を取り出す
BAで取り出した画像をpaint.netなどで加工
CABBを使用して、Bで加工した画像を再度__dataファイルに変換する
DアプリにCで作成した__dataファイルを入れてアプリに反映する
- 591 :
- >>590
申し訳ございません、数字が化けてしまっていました。
1.アプリの__dataファイルを取り出す
2.ABBを使用して、1.のファイルから画像を取り出す
3.2.で取り出した画像をpaint.netなどで加工
4.ABBを使用して、3.で加工した画像を再度__dataファイルに変換する
5.アプリに4.で作成した__dataファイルを入れてアプリに反映する
- 592 :
- Updateメソッド内でaddforceでオブジェクトを加速した際、この速度変化は次の行へ処理が移る前に完了するのでしょうか。もしくは次のUpdateメソッド実行時になって初めて変化しているのでしょうか。
同じメソッド内の後の行で加速した後の速度を取り込もうとしているのですが、この件が少々不安です。
- 593 :
- マウスの移動で視点変更したいんだけど画面の端になると視点が動かなくなるんだけど端になっても動くようなこと出来ない?
- 594 :
- >>592
物理計算関係はどこで記述すべきか検索して確かめるよろし
- 595 :
- アセット販売はゲーム販売よりも稼ぐのむずいですか?
- 596 :
- むずいですね。
よほどいいものでないと。いいものの定義も難しいかと。
ただ、それなりのゲームを作るよりかは、楽に作れるかと思いますが、売れるか売れないかの点ではゲームと同じなので、アセットの方が楽でしょうね。
そして、ここで聞くと言うことは、そもそもリサーチができないと思いますから、云々言われても回答できません。
- 597 :
- >>596
リサーチ出来ればいいですが、どの程度の難易度かというのはなかなか分かりづらいです
- 598 :
- >>594
ありがとうございます。分かりました、調べてみます。
- 599 :
- 当方Version 2019.3.15f1 Personalを使用しています。
メニューバーの「ゲームオブジェクト」よりBreakPrefabInstanceなる操作をしてくださいと参考にしているサイトに書いてあったのですが、バージョンの違いのせいか、該当箇所にBreakPrefabInstanceの項目がありませんでした。
この項目がどこに移動したのかご教授願いたいです。
よろしくお願いします。
- 600 :
- >>599
プレハブのインスタンスを普通のゲームオブジェクトに戻すもので
ヒエラルキーからインスタンスを右クリックでUnpack Prefabを選択するとそれが同じもの
のはず
- 601 :
- 仮置き用にスプライトから四角を作成→プレハブ化したら背景と色が被って見にくいので色を変えようとマテリアルを適用しようとしたらプレハブ自体が見えなくなってしまいます 2dでマテリアルを使って色変は出来ませんか?
- 602 :
- エディターのフォントサイズは未だに変更不可能なのでしょうか?
- 603 :
- >>601
割り当てようとしてるマテリアルか3D用だったりしない?
マテリアルでの色変更は、
そのマテリアルのシェーダーが色を変更できるようになっていればできる。
あと、単純に色を変えたいだけなら
SpriteRendererで変えた方が楽かもよ
- 604 :
- >>602
UIスケーリングとは違う?
- 605 :
- >>604
すみません
ゲーム画面のことではなくて、エディター自体の文字サイズです
たとえばインスペクターやヒエラルキーなどの文字です
- 606 :
- あるアニメーションステートに遷移したときに、オブジェクト(人型モデル)の位置と角度をリセットしたいのですが上手くいきません。
StateMachineBehaviourクラスのOnStateEnterで、以下を実行させるスクリプトを作ったのですが、リセットされず…
GameObject.Find("オブジェクト名").transform.position = new Vector3(0f, 0f, 0f);
GameObject.Find("オブジェクト名").transform.rotation = new Quaternion(0, 0, 0, 0);
同様の記述で、ボタンクリック時にリセットさせる動作は出来たのですが、ステート遷移時に動作させたいです。
方法ご存知の方いたら教えて頂けないでしょうか?
- 607 :
- >>605
うん、だから設定のUIスケーリングよ
古いバージョンにはないけど
- 608 :
- 日本語表示の時のフォントの方がアルファベットも読みやすいのですが英語のままフォントを変える事も出来ますか?
UI関連の話がでてたのでご存知の方が居れば教えて下さい!
- 609 :
- >>607
設定を発見しました
やっとできるようになったんですね
- 610 :
- 外付けSSDにunityをインストールすると、もたつきは軽減するでしょうか
特にauto refreshがhddにとってネックなようです
色々と問題もあるようですが、、、
- 611 :
- >>610
エディタのインストール先というよりプロジェクト置く場所が大事
外付けSSDでもHDDよりは早くなるだろうけど、できれば内蔵のPCI-EのM.2 SSDが良い
起動・インポート・ビルド何もかも早くなって快適になる
- 612 :
- >>611
回答ありがとうございます
プロジェクトの場所が重要なんですね
pciについてはマザーボードの仕様がよくわからないので検討しようがないです(中を見ればなんとなくわかりますが、疎いので、、、
もうフロンティアでは買わないです
そこで外付けSSDかフラッシュメモリを検討していたというわけです
フラッシュメモリではだめなんでしょうか?
- 613 :
- >>611
usbメモリは速度面でだめっぽいですね
外付け検討してみます
- 614 :
- 最近のマザーボードならM.2スロットついてること多い
フロンティアのスペック表に必ず書いてあるから見てみ
- 615 :
- m.2ないですね
pcie1が3つとpcie16が1つですね
これらを使うしかないみたいです
- 616 :
- >>600
なるほど!
ありがとうございます!
- 617 :
- 方角を取得したいのですが、方角というのはvector3では表せず、行列を使うと記憶していたのですが、間違っているでしょうか?
左右キーでカメラを回転させ、カメラの正面方向にキャラクターが進むというシステムを作りたいです
- 618 :
- 作るよりStandard AssetsのFPSController使ったほうが早い
もし作るにしても、これのスクリプト見て勉強したらいい
- 619 :
- using UnityEngine;
using System.Collections;
public class FadeOut : MonoBehaviour
{
AudioSource audioSourse;
double FadeOutSeconds = 1.0;
public bool IsFadeOut = true;
double FadeDeltaTime = 0;
void Start()
{
audioSourse= GetComponent<AudioSource>();
}
void Update()
{
if (IsFadeOut == true)
{
FadeDeltaTime += Time.deltaTime;
if (FadeDeltaTime >= FadeOutSeconds)
{
FadeDeltaTime = FadeOutSeconds;
IsFadeOut = false;
}
audioSourse.volume = (float)(1.0 - FadeDeltaTime / FadeOutSeconds);//★
Debug.Log(FadeDeltaTime);
}
}
}
- 620 :
- ↑音を1秒間でフェードアウトさせるコードです
FadeDeltaTimeで処理時間を記録
FadeInSecondsでフェードアウトの時間を設定
(1 - FadeDeltaTime / FadeOutSeconds)で少しずつボリュームの比率を0に近づくようにしています。
質問なのですが、FadeOutSeconds を5秒にした場合、★(5.0 - FadeDeltaTime / FadeOutSeconds) でボリュームの非を小さくすると思うのですが
いつまでたっても音が小さくなりません。
どうしてなのか分かる方いたら教えてください。
- 621 :
- シーンの保存とプロジェクトの保存の違いがいまいちよくわかっていないのですが、プロジェクトの保存をすべき場合というのはどういったケースになるのでしょうか?
よろしくお願いします。
- 622 :
- >>618
2019版のstandard assetsがないようです
旧版で使うものでしょうか
- 623 :
- >>620
諸々の値を表示してテストしてみなさい。
- 624 :
- (1.0 - FadeDeltaTime / FadeOutSeconds) でいけました。
引き算と割り算をする順番を間違えていました。
どうもありがとうございます。
- 625 :
- >>622
解決しました すみません
- 626 :
- ArgumentOutOfExceptionと言うエラーをlist.Countでforを回す時等によく出してしまうのですが、具体的にどこの行(や変数)でエラーが出ているかと言うのを探す方法はありますか?
VSを使っていますがデバッグの方法などが一切わかりません。
どうか助けてください!
- 627 :
- VSなら例外でたタイミングでデバッガ止めるようにするだけじゃ?
例外設定でとりあえず全ての例外で停止するようにすればいい
- 628 :
- >>627
やってみましたが、よく分からないので諦めます。。
unityのコンソールには赤いビックリマークでエラーが出ていますが、VS的には問題ない(設定や使い方が間違っている可能性もあります)みたいです。
例外の設定もすべてチェックマークがついていました。
VSのデバッグの開始を押してからUnityの再生マーク押せば良いんですよね?
- 629 :
- unityエディタのファイル量は5GBで、プロジェクトが1GBだとすると、単純に6GBが必要な容量と考えていいのでしょうか?
SSD化しようと思っていますが、SSDは高いので128GBで検討していますが、とりあえずはこれで十分でしょうか?
- 630 :
- >>628
コンソールのエラー文の中にどのスクリプトのどの行です、って書いてあったような。
とりあえずlist[i]みたいにiを使ってる行の直前でDebug.logでiを書き出してみたらいいんじゃない?
- 631 :
- >>630
0時くらいからずっとハマってたのですが、1フレーム後から(?)しか受け付けない初期化問題だったようです。
AwakeとStartに分けてもエラーだったのでずっと気付かなかったのですが、StartとUpdateに分けたら動作しました。
別の質問になってしまうのですが、こういう場合Updateで一回しか通さない様にして使うしかないのでしょうか?
ゲームスタート直後の遅延初期化で良い方法ってありますか?
- 632 :
- >>631
Startでコルーチンを呼んで、1フレーム待ってから処理、とか?
でも、処理したものをupdate側で即使う可能性があるなら、
その対策は必要になると思います。
- 633 :
- >>632
なるほどコルーチンも試してみます!
そもそもAwakeとStartに分けても動作しないってどういう原理なんでしょうかね?
Awake内で全ての生成が終わる前にStartが呼ばれてるとしか素人目には予想できないのですが、そうしたらあんまり意味ないですよね。
生成に時間がかかってるとしたらupdateでも何回かエラーが出た後に成功しそうですし。。
動けば良い気もしますが、実行端末の性能が遅いとupdateでもエラーなんて落ちがありそうで怖いです。
- 634 :
- >>633
私は幸いまだそのケースに遭遇したことがないのですが、
どういう状況で起こるのか知っておきたいです。
再現できる最小の構成を教えてもらえると助かります。
- 635 :
- ゲームオブジェクトが参照している3Dモデルを変更(更新)する方法をご存じないですか?
Blenderで自作した3Dモデルを使っていたのですが、アニメーションを追加したいので新しい.fbxに置き換えたいです。
よろしくお願いします。
- 636 :
- >>635
このことに加えて別々の3Dモデルに同じコンポーネント群を付与したいというのもあります。
- 637 :
- >>635
同じか分からないけど自分も似たような事で悩んでたけど>>508の言うような
方法じゃ駄目ぽい?
>>507-510
- 638 :
- >>631
UniRXとかいいかも
- 639 :
- >>635
コンポネントの複製はCopyComponent、PasteComponentAsNewでググればだいたいわかるはず
着せ替えとかしたいんであればFBXを事前にプレファブ化しておいて起動時にまとめてロードしておき
必要な時に対象のモデルと差し替える
- 640 :
- 個人制作の場合、やはり3dより2d中心でやったほうがいいでしょうか
3dは大変ですよねいろいろ
- 641 :
- 自分の作りたいゲームのジャンルで決めて
楽だからコッチみたいな理由で決めたら挫折するだろうし
- 642 :
- 両方作りたいんですけど、やはりあれこれ手を出すのでは成功しないですからね、、、
2dだとmoonのようなrpgで、3dはマリオ64のようなアクションゲームです。
- 643 :
- >>640
自分も初心者で両方やったけどゲームとして動かすだけなら3Dの方が楽かもしれない。
そもそもUnityが3D向け機能ばっかりだしアセットストアも2Dの素材ほとんど無い。
全部素材はオリジナルでクオリティも製品レベルにしたいですっていうなら2Dのほうが楽だと思う。
3Dの自作覚えるのキツイし外注するにも2Dの方が安い。
- 644 :
- >>642
その二択だったら圧倒的に3Dの方が楽。
そもそもRPGがイバラの道。
- 645 :
- 好きなようにやったらええがな
全く別ジャンルのゲームを作るのも悪くはない
行き詰まったときの気分転換にもなる
- 646 :
- 同時進行してみる
あと2dパズルも作りたい
1つに注力したほうがいいんだろうけど、色々やってみたいことはある
できるかどうかは別として
- 647 :
- >>637
なるほど...!
ちょっとやってみます
- 648 :
- >>647
自分も3Dモデルの切り替えを頻繁にやるので大変さ分かります。
画像のようにモデル移行する場合は位置を0.0.0に合わせてから。
スクリプトでAnimatorを使っているならアバターの切り替えを忘れずに。
と言っても自分も素人で人様に教えれるような立場じゃないんですけどねw
頑張って下さい。
https://i.imgur.com/rq2HERN.jpg
- 649 :
- >>648
横からすみません、オブジェクト名に日本語って不都合や注意点ありますか?
アタッチでバグるとかFind出来なくなるとか。
素材(スクリプタブルオブジェクトや画像など)の名前にも日本語付けてもいいんでしょうか?
頑張って全てローマ字でやってきたのですが、プロジェクトが巨大になってきたら目的のファイルがパッと見つからないのがストレスで。
- 650 :
- >>649
自分も初心者なので何処まで参考になるか分かりませんが、取りあえず日本語使っている事が原因のバグやエラーは
今のところ出ていません。
でもネットとかで見ると英語が基本みたいですよね、自分の場合はリスクと
利便性を考えて日本語にしちゃってます。
- 651 :
- >>649
追記
スクリプトとか画像とかも日本語使ってます。
ただプロジェクト名も日本語にしてたらコントローラーバインド設定でバインド設定画面に行けないって不具合があったのでプロジェクト名は英文字にしています。
- 652 :
- >>650
ありがとうございます。
空のオブジェクトで仕切るのは良いアイデアですね!
不安ならビルド前に消すこともできますし。
自分でも色々試してみます。
クラス名や変数名に日本語使っても動くらしいので大丈夫だとは思いますが時限式の不具合出たらめんどくさいですからね。
- 653 :
- unityは2dでも不自由ないんですか?
2dならgodotのほうがいいんでしょうか?
- 654 :
- 済みません、初心者ですが、質問です。
HDRPの環境でプロジェクトを作っていますが、Shader Graphを使って、
半透明的な表現や歪みテクスチャを、自作のモデルに適用したいです。
マテリアルはこんな感じ↓です。
https://dotup.org/uploda/dotup.org2169029.png
でも、再生しても半透明になってくれません。
UniversalRPでのdepth textureやOpaque texureみたいな設定項目って、
HDRPにもありますか?それとも別途コードを書かなければいけませんか?
なんでも質問スレとマルチになってしまい恐縮ですが、どうぞご回答いただければ幸いです。
- 655 :
- >654
綺麗な円ですね
- 656 :
- 654ですがUniversalRPの環境で作り直したので、大丈夫です。自己解決です。
- 657 :
- >>656
GJ
- 658 :
- unityはアセットの審査がめっちゃ厳しいと聞きました。
本当でしょうか。
アセット販売はハードルが高いですか?
- 659 :
- クオリティチェックが厳しいらしいな
素人の初心者にはハードルが高いと思う
- 660 :
- 初期はともかく、最近は厳しいらしいという記事を見ました。
まだクソゲーとしての需要があるだけ、クソゲーとして出すほうがハードルは低いかもしれませんね。
ありがとうございました。
- 661 :
- 初心者です。
UniversalRPの環境で、Vfx Graphやろうとすると、使えないノードとかコンポーネントってあるんですか?
具体的には、トレイルを作りたかったので、Trigger Event RaateをUpdateブロックに追加しようとしたのですが、
検索しても出ないです。
- 662 :
- 自己解決しました。
Preferenceからチェックを入れれば良かったんですね。
分かりにくいです。
- 663 :
- 初めまして、始めて質問させて頂きます。
先日BoothというサイトでVRMモデルを購入して
PCゲームのVRCで使用するVRMモデルをUnityで導入したときにモデルが黒くなり色が付きません。
モデルをVRCにアップロードしてみましたが、案の定黒いままでキャラクターもT字のまま動きません。
どのように解決すれば良いでしょうか?
- 664 :
- >>663
販売元に聞けばいいと思います
- 665 :
- GameObject obj = transform.GetChild(1).gameObject;
print(obj);
ツリーから子オブジェクトを取得する場合こうなりますが、なぜオブジェクトを取得するのにtransformクラスを使うんでしょうか?
- 666 :
- 初歩的な質問ですみません。
Rigidbodyで設定できる「抗力(Drag)」とは速度にかかる係数(単位[Ns/m](秒速にこの「抗力」をかければ抵抗力のニュートンの大きさになる))という理解で合っていますでしょうか?
- 667 :
- 追加の質問で申し訳ありません。
Animatorをいじっているのですが、Updateメソッド内のSetTriggerを用いて画像内で選択されている推移を行おうとしたところ上手くいきませんでした。推移が実行されていないようです。
AnyStateから同じようにしてつなげるとうまくいきました。
原因として何か考えられることはありますでしょうか。
お力添えよろしくお願いします。
https://imgur.com/a/CCdnZ8l
- 668 :
- >>667
この件に関しては自己解決しました
「終了時間あり」のチェックを外すことでSetTrigger実行から即時に推移させることができたようです
- 669 :
- もう一つ別の質問をさせてください
ある決まった2点間でオブジェクトをベジエ的に(ゆっくり→速い→ゆっくり)動かそうとして、手計算によって求めた必要な力積を与えると5%程距離が足りず、ではアニメーションによって指定位置まで動かそうとしても10%程距離が足りませんでした
前者は物理演算の誤差であると腑に落とせますが、後者は指定した座標まで移動しないということで腑に落ちません
これはどういうことなのでしょうか
もしよろしければ2点間のベジエ的移動の実現案も提案していただければ幸甚です
- 670 :
- DOTWeen使うとかだとダメなの?
- 671 :
- IT掲示板群 ttp://x0000.net/forum.aspx?id=15
学術の巨大掲示板群 - アルファ・ラボ ttp://x0000.net
数学 物理学 化学 生物学 天文学 地理地学
IT 電子 工学 言語学 国語 方言 など
simulationライブラリで純粋な関数式プログラミングをする
ttp://x0000.net/topic.aspx?id=3631-0
UIライブラリ (C#, 2D) を作ったよ
ttp://x0000.net/topic.aspx?id=3688-0
連続と離散を統一した!
ttp://x0000.net/topic.aspx?id=3709-0
4Dエンジン(画像有り)
ttp://x0000.net/topic.aspx?id=3677-0
matrixのライブラリ
ttp://x0000.net/topic.aspx?id=3711-0
ある強力なFor関数
ttp://x0000.net/topic.aspx?id=3630-0
SQLライブラリ
ttp://x0000.net/topic.aspx?id=3675-0
PS malloc / free を実装してみた (C#)
ttp://up.x0000.net/files/TMallocTest.zip
- 672 :
- タイトル画面のスタートボタンを押して画面がフェードアウトした後、
時間差でシーンが切り替わるようにしたいのですが
フェードアウト中に何度もボタンが押せてしまうのですが、
スタートボタンを押したら他のボタンも無効可したい場合どのようにすればいいのでしょうか。
- 673 :
- ボタン押されたらボタンを消す
- 674 :
- 向こうにしたいタイミング中に透明なパネル出現させとく
- 675 :
- >>673
ボタン押されたらボタンを消すようにしたら、連打しても大丈夫でした。有難うございます。
>>674
透明なパネルをボタンより前面のレイヤーに表示したらボタンをガードできました。
連打しても大丈夫でした。有難うございます。
- 676 :
- Vfxを使ってると、再生時になんか1フレームだけ、馬鹿でかいパーティクル?
がチラチラしていて、しかもそれが頻繁にあってウザいんですが、
何か解決方法はありますか?
- 677 :
- unityでデスクトップアプリケーションも作れるといいますが、実際にはあまり使われていないのでしょうか?それはなぜですか?
- 678 :
- 別にUnityで作る必要がないからでは?
Unity製PCゲームなら多少はあるよ
モバイルと比べてPCなら他の選択肢も多いから数が少なくなるのは当然
- 679 :
- ダメではないけど普通に作るとタイトルロゴが邪魔なのがアレすね
- 680 :
- なるほど、3d関係でない限りunityを使うメリットがないんですね
- 681 :
- そもそもゲームエンジンなんだけどゲームではないアプリケーション開発になんでゲームエンジン使うの?
2Dでも画像やアニメーションを多用するようなアプリなら開発しやすい面もあるだろうし、そのアプリをマルチプラットフォーム展開するならUnityでやる価値は大きくなるだろうし
- 682 :
- 開発環境に慣れていればそういう選択肢もありかなと
ただ、慣れよりデメリットが大きければ他を覚えるでしょうけど
- 683 :
- じゃあ3Dじゃなければメリットがないなんて結論出てこないよね?
- 684 :
- ゲームエンジンだけど建築やら車のUIやらデジタルアートやら色々使われとるけどね、結局実現したいこととマッチしてるかどうかじゃないのかな
- 685 :
- Androidベースのアプリケーションは知らずに使ってるものも多いだろう
- 686 :
- https://i.imgur.com/RvWRL0V.jpg
質問です
先日ゲームが完成したのですがどうも重いと思いましてプロファイラーで
チェックをしてるところです
この画像がその画面ですが
一部処理が突出したポイントを見ると「EditorLoop」というものの処理が
高まっています
この「EditorLoop」をググってもなんのことかわかりません
一体なんなのか教えていただけないでしょうか?
- 687 :
- >>686
自己解決しました
https://answers.unity.com/questions/1603989/i-dont-know-what-editorloop-is-in-my-profileri-don.html
エディタで実行するときだけ追加されるオーバーヘッドなのだそうです
なら自分のゲームが重い別の原因を考えないといけません
- 688 :
- >>670
これは便利ですね
ありがとうございます!解決できなかったら使ってみます
- 689 :2020/06/14
- シェーダーをいじっているのですが、"o."とはいったい何を表しているのでしょうか?
ご教授よろしくお願いします。
みんなで「キモオタの大冒険3D」作ろうぜ
【ライブ】こんなギャルゲーがしたい【メーカー】
FF11製作スレ
MMORPGをHSPで作りたいな Rev.2
妖精さんと一緒に戦うシューティング
ガンダム版大戦略
RPGツクールの不満なところ
HSPでRPG
四次元ゲーム作らないか?? 2次元目
コンソールゲーム
--------------------
【麒麟が来ない】沢尻エリカの代役を予想するスレ【濃姫】
【夢】リップル総合XRP606【希望】
【アラフォー】リカコ【婚活】 Part.31
10万円の給付金を何に使うか?
南クリニック
【93人の殺害を自白】うち50人を確認 米史上「最悪の連続殺人犯」
松岡茉優 Part22
クロスオーバーアンチスレ
胸がスーッとする武勇伝を聞かせて下さい!(142)
宮崎県アクアショップ Part1
ぬるぽを1時間以内にガッ!@鉄道総合板第407編成
【大逆転】関西棋院の石井茜スレッド【小学生名人】
九大就活民「福岡市役所、福岡銀行、TOTO、安川電機、九州電力どれにすっか、、、」→正解は?
北海道の昔の鉄道の思い出を語ろう8!!
[IP]BABYMETAL総合避難所【ベビーメタル】
【電験三種】第三種電気主任技術者試験 415[kvar]
有害野党さん「この緊張下に信じられない!」自衛隊派遣中止要請で一致 ←信じられないのはこっちだよ
YAMAHA MODX 6/7/8 Part.2
【Yahoo!】 LOHACO ロハコ 【ASKUL】 Part14
含み損に耐えつつ利益を出す会
TOP カテ一覧 スレ一覧 100〜終まで 2ch元 削除依頼