Unityを使った3Dゲームの作り方(かめくめ)ゲーム開発エンジンUnityを使った3Dゲームの制作に参考になる情報を公開しています。2017.07.15Unityでオフラインでの協力プレイや対戦プレイを出来るようにするにはUnityでオフラインの対戦プレイや協力プレイを実現する方法Unityでオフラインの対戦プレイや協力プレイをする為の機能を作成していきます。コントローラーを複数繋いでそれぞれのコントローラーでそれぞれのキャラクターを動かせるようにします。gametukurikata.com2016.08.23の記事でやり方を記載しました。今回の記事では↑の記事のようにプレイヤー毎にキャラクターを操作出来るようになっている必要があります。カメラが動かず1画面でプレイヤー全てを見る事が出来ればゲームとして問題はありませんが、キャラクターが広い世界を動き回りプレイヤー毎に専用のカメラがある場合はそれぞれの動かすキャラクターが見えないと困ります。そこで今回はプレイヤー毎のカメラを作成し2プレイヤーなら画面を2つに分割し、それぞれのキャラクターを写すようにしたいと思います。今回はカメラを2プレイヤー用の縦・横の分割、4プレイヤー用の4分割が出来るようにしていきます。プレイヤー数分のカメラ分割が出来ますが大型ディスプレイとかでないと全然見えなくなるかもしれません・・・・。キャラクターを4プレイヤー作成するのは設定が大変なのでキャラクターは2プレイヤーだけ作り、4プレイヤー分のカメラを作成します。Targetスクリプトを取りつけます。Targetを選択します。Targetにはカメラが追っていくキャラクターをドラッグ&ドロップし設定します。Offsetはカメラの位置調整ですね。カメラが出来たら名前をPlayer1Cameraとします。カメラを選択している状態でCtrl+Dでコピーし名前をPlayer2Camera、Player3Camera、Player4Cameraとします。Componentを選択し削除します。TargetのTargetにはPlayer2を設定します。今回のサンプルでは2プレイヤーしかいないので2~4のカメラはPlayer2を追いかけることにします。カメラがそれぞれ分かれていると見づらいので、空のゲームオブジェクトを作成し名前をCameraとしその子要素にカメラをまとめてしまいます。Listenerだけ残し、後は削除しておきます。これでカメラの作成が終了しました。カメラ分割スクリプトカメラの作成が終了したので次はカメラの分割をするスクリプトを作成します。実際には分割しているわけではなくウインドウ内のどこからどこまでがカメラ1の描画範囲、どこからどこまでがカメラ2の描画範囲と設定を変えるだけです。今回はタイトルシーンとゲームシーンを分けて作りません。本来であればシーン移動時にゲームの設定等を引き継ぎその設定にしたがってカメラの分割を行う必要があります。今回は空のゲームオブジェクトを作成し名前をCameraScriptとし、それに新しくSplitCameraSettingスクリプトを作成し取りつけます。SplitCameraSettingスクリプトのインスペクタでカメラの分割設定を出来るようにし確認する事にします。0.5f);}}}インスペクタで4プレイヤー用のカメラを設定出来るようにし、カメラの分割モードによってカメラのViewPortRectを変更します。Rectは第1引数がXの位置、第2引数がYの位置、第3引数が幅、第4引数が高さとなります。Xの0はウインドウの左、Yの0はウインドウの下、Xの1はウインドウの右、Yの1はウインドウの上をあらわしています。4プレイヤーモードの場合はPlayer1が左上、Player2が右上、Player3が左下、Player4のカメラが右下に表示されるようになります。SplitCameraSettingのインスペクタでmodeをsquareにしてUnityを実行すると↑のようにプレイヤー毎のカメラが4分割されて表示されました。カメラの枠を付けるカメラの分割は出来ましたがカメラの仕切りがないので少し見づらい部分があります。そこでカメラに枠を付けそれぞれのカメラをわかりやすくしたいと思います。カメラ枠用の画像を作成します。Windowsのペイントで作成した10×10サイズの画像です。枠画像を作るのが面倒な方は↑の画像を右クリック→名前を付けて保存でローカルに保存してご自由に使ってください。Asset...でさきほど作成した画像を選択します。次にヒエラルキー上で右クリック→UI→Canvasを選択し名前をPlayer1Wakuとします。CameraにはPlayer1Cameraを設定します。することでこのCanvasはPlayer1Cameraの枠に合わせて表示されるようになります。次にPlayer1Wakuの子要素に右クリック→UI→Imageを4つ作成し名前をLeft、Right、Top、Bottomという名前に変更します。それぞれが枠の部品になります。一つの大きい枠を作成し設定する事も出来ますがウインドウサイズによって画像が引き延ばされるので個別に作ることにしました。一つの枠でも出来るような気がしますが・・・とりあえず今回はパスで・・・・(;一_一)Imageには先ほど取り込んだ10×10の画像を設定します。枠それぞれでAnchorsの位置を設定し、幅や高さを変更します。LeftはRightはTopはBottomはのように設定します。Left、RightはWidth、Top、BottomはHeightのサイズを変更します。これでPlayer1Wakuが出来たのでCtrl+DでコピーしPlayer2Waku~Player4Wakuを作ります。Cameraはそれぞれのカメラを設定するようにします。これで枠の設定が終わりました。接している部分の枠の幅を変更するこのままでも枠が表示されますが、カメラそれぞれが接している部分は枠が重なるので太さが2倍になります。接している部分を強調する場合はこのままでいいですが、枠の幅を同じにしたい場合は調整が必要になります。そこでSplitCameraSettingスクリプトに枠の幅を変更する処理を追加します。waku4Rect.localScale.z);}}}RectTransformのWidthやHeightを直接変更する事が出来なかったのでScaleを変更するようにしました。枠の子要素から名前で検索し、そのカメラの枠が接している部分のScaleを半分にしています。SplitCameraSettingの設定は↑のように設定します。これで全ての機能が完成しました。カメラ分割機能を確認するカメラ分割機能と枠の表示機能が完成したのでゲームパッドを2つ繋いで機能を確認してみます。↑のようになりました。これで協力プレイ時も他のユーザーがどこにいるかわかるので便利ですね。コピーかめくめちゃんをフォローする7Unityを使った3Dゲームの作り方(かめくめ)Unityを使った3Dゲームの作り方(かめくめ)関連記事カメラUnityでサブカメラを作り、別視点で小窓に表示するUnityでサブカメラを作成し、メインカメラの右上に小さく表示します。これでキャラクターの頭上からの視点を右上に小さく表示するといったことが出来ますカメラUnityのCineMachineを使ってカメラの動きを作成してみるUnityのCineMachineを使うと通常のゲームシーンのカメラとしてだけでなく、イベントシーンのカメラワークの作成も簡単に作成出来ます。そんなCineMachineを使っていくつかのカメラワークを作成してみます。カメラUnityでカメラをスクリプトから切り替えられるようにするUnityで二つのカメラをスクリプトから切り替えるようにし、視点変更機能を作成してきます。プログラムUnityのゲームでキャラクターの動きを追うレーダーカメラを作成するUnityでゲームステージ上からの視点のカメラを作成し、キャラクターを丸印で表示してレーダーのように見える機能を作成します。カメラUnityでカメラが壁に遮られキャラクターが見えなくなったらカメラを移動させるUnityのゲームでキャラクターとカメラの間に壁が入ってしまった時、壁でキャラクターが見えなくなるのでカメラ位置を調整しキャラクターを映すようにします。カメラレンダーテクスチャを使ってカメラに映る映像をリアルタイムに描写するUnityでカメラにレンダーテクスチャを設定しランタイムでテクスチャを更新し表示します。レンタルサーバーロリポップで独自の無料SSLが使えるようになったので対応してみましたUnityのAnimationClipのルートモーションの設定ホームカメラスポンサーリンクサイト内検索が出来ますプロフィール管理人のかめくめちゃんです。(-_-)メールはこちらにお願いします(記事に関する質問は送らないでください、返信は期待しないでください(._.))。kamekumechan@gmail.comいずれはSIRENやバイオハザードみたいなアクションゲームを作りたいと思っています。ゲームシナリオが書けないので面白いゲームはなかなか作れません・・・・。(^_^;)名前の由来はカメが好きだからです。プロフィールになってないな・・・・(-.-)Unityをこれから始める人へこれからUnityを使ってみようという方はUnityを使った3Dゲームの作り方(かめくめ)の歩き方Unityを使った3Dゲームの作り方(かめくめ)で、はじめてUnityの学習をする時の当ブログの記事を読む順番を書きました。機能を積み上げていく形になるので便利かも?gametukurikata.com2019.06.21の記事に記載の順番で見て頂くとUnityの基本的な使い方がわかり、簡単なアクションゲームや、TPSゲームの作成までが出来ます。自作タイピングゲームタイピングゲームを作りました。WebGL形式なのでPCのブラウザで遊べます。以下からプレイ出来ます。FinalTypingUnityを使って作成したローマ字入力のタイピングゲームです。gametukurikata.com2022.01.02お知らせ2023/01/24個人的にUnity2022.2.3f1をインストールしました。2022/10/14UnityのIKを使って足の位置と角度を地面に合わせる機能Unityのゲームでキャラクターの両足が別の高さの地面の上にある時にそれぞれの足をそれぞれの地面につけるようにする機能を作成しますgametukurikata.com2016.04.11機能を少し修正しました。2020/09/19コメント欄は閉鎖しました。今までコメントを投稿してくださった方はありがとうございました。(^^)/2018/08/07わたくしに出来る事は既に記事にしてあるので、ブログ右上の検索窓を活用してください。(._.)またブログの最初の方の機能を積み上げていく記事に関しての疑問点は当ブログ記事のスクリプトの説明と寄せられた質問への回答Unityを使った3Dゲームの作り方(かめくめ)の機能積み上げ形式の記事のスクリプトの説明と寄せられた記事の機能についての質問への回答を掲載しています。gametukurikata.com2019.08.01Unityを使い始めたばかりの人がつまづきやすい点を解消するUnityを使い始めたばかりの人が結構な確率で陥る不具合や疑問点を解消していきます。基本的にはブログに寄せられた質問への回答という感じです。gametukurikata.com2018.12.04も参照してみてください。小・中学生によるデジタルコンテンツ開発の全国大会ですuycc.unity3d.jp2022年大会の先行エントリーが開始されているようです。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。当ブログはハイスピードプランです。WordPressの編集画面の動作が早くなった。記事の内容に質問がある方へUnityを使った3Dゲームの作り方(かめくめ)の歩き方UnityのJavaScriptとC#を読み替えてどちらでも対応出来るようにするホーム検索トップサイドバータイトルとURLをコピーしました。