【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
まくら

【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#1

投稿記事 by まくら » 8年前

(C言語掲示板でUNITYの質問をするのが場違いでしたら申し訳ありません。)


CAMERA_AとCAMERA_Bを用意します。
フィールド上にOBJ_A 群と OBJ_B群 があります。
CameraとOBJは同じ空間上に存在します。
この時、OBJ_AはCAMERA_Aだけに見え、OBJ_BはCAMERA_Bだけに見える様にする事は可能でしょうか?

よろしくお願いします。

C6b14

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#2

投稿記事 by C6b14 » 8年前

お邪魔します。私も初心者で知りたいです。メモhttp://cswin10.nisinippon.com/index.htmlを見ても思い出せないほど難しかったので、ここ(DxLib)やopencvで勉強してからやりなおそうとしてます。いまはじめてCameraを2つにしてみました。背景が違うけど同じものをみてますね。ところで 同じ空間の物をどうゆう目的で分けたいのでしょう?。

まくら

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#3

投稿記事 by まくら » 8年前

>> C6b14

ゲームのプレイヤーが二人おり、同じフィールドで行動しています。
それぞれプレイヤー一人に一つのカメラが割り当てられており、
1Pは画面左半分に、2Pは画面右半分にカメラの出力が割り当てられています。

この時、1Pに見えて2Pに見えない物(逆も同様に)を実装したく思い、この質問をしました。

まくら

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#4

投稿記事 by まくら » 8年前

>> C6b14

ちなみに、DxLibやopenCVは使った事無いですが、
DirectXやOpenGLは普段用いているのでそれを用いた実装法をお教えしますね。
もし、DxLibやopenCVに同じ機能があればこれを参考にして実装してみて下さい。

ポリゴンを描画する際、バックバッファでは無くRenderTargetTextureに描画してみて下さい。
RenderTargetとは、レンダリングした情報をテクスチャに描画しておき、その情報を画像テクスチャの様に用いれる機能です。
つまり、描画したいオブジェクト(ポリゴン)を複数のグループ分けし、グループAのポリゴンはRenderTarget_Aに描画、グループBのポリゴンはRenderTarget_B…の様に描画します。
そして、バックバッファに四角形ポリゴンにRenderTargetのテクスチャを張り付けて描画すると同様の事が可能となります。


もしかしてUnityでもこの過程を踏まないといけないんですかね…?

C6b14

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#5

投稿記事 by C6b14 » 8年前

よくは理解できてないので  他の詳しい方に きいて みたいと思います。
でも それは 視点が かわる だけで 出来る様な?。素人なので 他の方のご意見を拝聴したいと思います。

C6b14

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#6

投稿記事 by C6b14 » 8年前

C#プログラミングを除けば[超簡単]です。CameraのViewport Rect を2つともX=0.5にする以外の操作は必要ないように見えるのですが。
http://csi.nisinippon.com/u01.jpg
http://csi.nisinippon.com/u02.png
http://csi.nisinippon.com/u03.png
Cubeには近所の公園の写真がマウスのDrag & Dropでテクスチャーマッピングされています。Cubeと球が回転しながら落っこちるだけのものです。(メモ:Unity Game 4 C# で プログラム に カメラを2個にしてみた)

C6b14

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#7

投稿記事 by C6b14 » 8年前

そういえば 最近 OpenGLで ダブルバッファリングで テクスチャ のプログラムを 書いたhttp://dixq.net/forum/viewtopic.php?f=3&t=18543のですが、Unity とか OpenCV 、Dxlib はこういう 面倒なことを 吸収(代行) してくれる ものだと思います。そのため 線形代数 (アフィン変換のマトリックス演算とか)  が隠れて しまって ブラック・ボックス になって しまっているので、返ってわかりずらいです。それでDxLib とか OpenCV で 勉強してます。( ルンゲ クッタ法まではいらないでしょうけど ここで ときどき出てきますね) オイラー法で微分 とかも少しだけ かじっておこうかなというとこです。[雑談的ことなことでごめんなさい]

まくら

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#8

投稿記事 by まくら » 8年前

https://gyazo.com/6fab8e22ca26533313da91caf072877e

このURLの画像を例として説明します。
左側が1P、右側が2Pだとします。
1Pには丸いオブジェクトが見え、四角いオブジェクトは見えません。
2Pには、四角いオブジェクトが見え、丸いオブジェクトは見えません。
地面のタイルは1Pと2P両方が見えます。

上記の様な状況を作り出したい、と言う事です。

Egg

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#9

投稿記事 by Egg » 8年前

カメラにCullingMaskがあるので、それを利用しましょう。

丸いオブジェクトには『1P』というタグをつけ、
四角いオブジェクトには『2P』というタグをつけます。
その後、1P用のカメラのCullingMaskを選択し『2P』のチェックをはずします。
2P用のカメラも同様にします。
これでカメラにそれぞれに対応するオブジェクトが見えるはずです。

https://docs.unity3d.com/ja/current/Man ... amera.html

C6b14

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#10

投稿記事 by C6b14 » 8年前

なるほど。Tags and Layers で 出来ました。Layer 機能はいろいろ と使えそう。

まくら

Re: 【UNITY】カメラ毎にレンダリングしたいオブジェクトを変更する方法について

#11

投稿記事 by まくら » 8年前

実装出来ました!
本当に有難うございます!

閉鎖

“C言語何でも質問掲示板” へ戻る