---
title: Photon Fusion for Unityで Cinemachineを使いたいだけの人生だった
tags: 
author: [ニム式📘](https://www.docswell.com/user/ni26mu)
site: [Docswell](https://www.docswell.com/)
thumbnail: https://bcdn.docswell.com/page/LE1V6VVY7G.jpg?width=480
description: unity1week online共有会#11 にて使用した資料
published: April 15, 23
canonical: https://www.docswell.com/s/ni26mu/54QVQW-2023-04-15-214703
---
# Page. 1

![Page Image](https://bcdn.docswell.com/page/LE1V6VVY7G.jpg)

Photon Fusion for Unityで
Cinemachineを使いたいだけの人生だった
2023/4/10
unity1week online共有会 #11
by ニム式


# Page. 2

![Page Image](https://bcdn.docswell.com/page/GEWLWLL172.jpg)

自己紹介
●
●
●
●
名前 ニム式
サイト http://nimushiki.com
twitter https://twitter.com/ni26mu
@nimushiki@misskey.io
●
●
●
オンラインゲーム挑戦中
u1w8回目
猫3匹と同棲


# Page. 3

![Page Image](https://bcdn.docswell.com/page/47ZM5MMXE3.jpg)

UnityGamingService
●
Unityのクラウドサービス
○
○
○
○
●
マッチング
Analytics
課金システム
etc
別件で使用
○
サーバサイドプログラムを実行


# Page. 4

![Page Image](https://bcdn.docswell.com/page/YJ6N9NNPJV.jpg)

$1800日本円にして約24万円


# Page. 5

![Page Image](https://bcdn.docswell.com/page/GJ55N55PJ4.jpg)

原因
●
●
10/15～2/10まで起動しっぱなしだった
使わないときはちゃんと停止しよう！


# Page. 6

![Page Image](https://bcdn.docswell.com/page/9E2N5NNZ7R.jpg)

アジェンダ
●
●
●
投稿作品について
Photon Fusionとは
前提知識
○
○
●
Photon FusionでCinemachineを使いたい
○
○
●
Photon Fusion
Cinemachine
実装の目標
適するパターン、適さないパターン
まとめ


# Page. 7

![Page Image](https://bcdn.docswell.com/page/D7YPKPPN7M.jpg)

投稿作品について
エクストリーム郵便配達 | フリーゲーム投稿サイト unityroom
●
●
2チームに分かれるオンラインマルチプレイ
ターゲットをゴールまで運ぶ


# Page. 8

![Page Image](https://bcdn.docswell.com/page/VEN5R55VJ8.jpg)

アジェンダ
●
●
●
投稿作品について
Photon Fusionとは
前提知識
○
○
●
Photon FusionでCinemachineを使いたい
○
○
●
Photon Fusion
Cinemachine
実装の目標
適するパターン、適さないパターン
まとめ


# Page. 9

![Page Image](https://bcdn.docswell.com/page/Y79YMYYVE3.jpg)

Photon Fusionとは
●
ゲーム向けネットワークエンジン
○
○
○
●
様々な新機能
○
○
○
●
状態転送ネットコードSDK
PUN2の後継
展開中のPhotonシリーズの一部
ラグ対策
帯域節約
複数の接続方法
詳しくは公式サイト
Fusionイントロダクション | Photon Engine


# Page. 10

![Page Image](https://bcdn.docswell.com/page/G786L664JD.jpg)

アジェンダ
●
●
●
投稿作品について
Photon Fusionとは
前提知識
○
○
●
Photon FusionでCinemachineを使いたい
○
○
●
Photon Fusion
Cinemachine
実装の目標
適するパターン、適さないパターン
まとめ


# Page. 11

![Page Image](https://bcdn.docswell.com/page/L7L9L99VER.jpg)

前提知識～Photon Fusion
●
マルチピアモード
○
○
Unityエディタ１つでビルドせずマルチプレイを実行、テスト
マルチシーンを利用


# Page. 12

![Page Image](https://bcdn.docswell.com/page/4EMZMZZN7W.jpg)

前提知識～Chinemachine
●
●
Unity公式の高機能カメラ
主なコンポーネント
○
○
●
camera
Cinemachine Brain
Cinemachine virtualCamera
ポイント
○
○
Brain
Camera：Brainは１：１
VirtualCameraは最適なものが自動選択
VirtualCamera
イベント用
VirtualCamera
戦闘用


# Page. 13

![Page Image](https://bcdn.docswell.com/page/PER6V664J9.jpg)

アジェンダ
●
●
●
投稿作品について
Photon Fusionとは
前提知識
○
○
●
Photon FusionでCinemachineを使いたい
○
○
●
Photon Fusion
Cinemachine
実装の目標
適するパターン、適さないパターン
まとめ


# Page. 14

![Page Image](https://bcdn.docswell.com/page/P7XMZMMZJX.jpg)

実装の目標
●
●
TPSゲームでよくある肩越しマウスエイムカメラ
体の向き＋砲塔の向き（≒カメラ）を同期する（ここ伏線）
プレイヤーオブジェに以下をつける
Camera,Cinemachine,AudioListener


# Page. 15

![Page Image](https://bcdn.docswell.com/page/37KG8GGVED.jpg)

Photon FusionでCinemachineを使いたい
●
●
●
まずはローカルでベーシックな実装
それをオンライン化
Unity公式動画を参考に実装
自由に走り回れる三人称視点のキャラクターを作る方法 - Cinemachine TIPS #1


# Page. 16

![Page Image](https://bcdn.docswell.com/page/LJ3N2N5QJ5.jpg)

Photon FusionでCinemachineを使いたい 結果
●
全てのvirtualCameraがマウスに反応
○
●
全てのプレイヤーのカメラが同じ動きに …
virtualCameraはプレイヤーの判別ができない
Player1の
マウス入力
Player1
Player2
camera
camera
Brain
Brain
VirtualCamera
VirtualCamera


# Page. 17

![Page Image](https://bcdn.docswell.com/page/8JDWZWDWEG.jpg)

Photon FusionでCinemachineを使いたい １敗
●
●
スクリプトからコントロール
NetworkInputを経由
○
Photon Fusionの標準的な入力の同期方法
入力
virtual
camera
改善前
改善後
入力
Network
Input
Photon
Cloud
Network
Input
virtual
camera


# Page. 18

![Page Image](https://bcdn.docswell.com/page/VEP9D9XX78.jpg)

Photon FusionでCinemachineを使いたい 結果
●
●
ビルドすれば意図した動作
マルチピアでは妙な動作に
○
原因は別の所だったかも …
正常
異常


# Page. 19

![Page Image](https://bcdn.docswell.com/page/27VM1ML37Q.jpg)

Photon FusionでCinemachineを使いたい ２敗
●
●
virtualCameraのコントロールは諦める
砲塔を回転させ、virtualCameraを追従させる
入力
入力
砲塔
virtual
camera
砲塔が追従
改善前
砲塔を回転
virtual
cameraが
追従
改善後


# Page. 20

![Page Image](https://bcdn.docswell.com/page/5JGG2GXYJL.jpg)

Photon FusionでCinemachineを使いたい 結果
●
●
期待した動きに
しかし矢印キーだと2次元のエイムが難しい


# Page. 21

![Page Image](https://bcdn.docswell.com/page/47QXPX86JP.jpg)

Photon FusionでCinemachineを使いたい ３敗
●
操作の仕様を変更
○
○
●
マウスの２次元操作から
矢印キーの１次元操作へ
Unity公式を参考に実装
肩越しカメラを実現する方法 - Cinemachine TIPS #2


# Page. 22

![Page Image](https://bcdn.docswell.com/page/KE46Y62MJ1.jpg)

Photon FusionでCinemachineを使いたい 結果
●
●
操作性はクリア
画面がビカビカする
○
優先するvirtualCameraが定まらない
どっちのVirtualCameraを
使うんだ…？
Player1
Player2
camera
camera
Brain
Brain
VirtualCamera
VirtualCamera


# Page. 23

![Page Image](https://bcdn.docswell.com/page/L71V6VMYJG.jpg)

Photon FusionでCinemachineを使いたい ４敗
●
●
Cinemachineで複数Cameraを使うための設定
カメラの数だけレイヤーを分けてCulling Maskをかける
複数の Unity カメラ | Cinemachine | 2.6.0
Mask1
Layer1
Player1
Player2
camera
camera
Brain
Brain
VirtualCamera
VirtualCamera
Mask2
Layer2


# Page. 24

![Page Image](https://bcdn.docswell.com/page/G7WLWL31J2.jpg)

Photon FusionでCinemachineを使いたい 結果
●
●
正常に表示
課題
同時接続者数分のレイヤーが必要
標準では25程度しかレイヤーがない
○
○
●
参考
【Unity】レイヤーを実質無限に使えるようにするライブラリの紹介【Layer2】 - Qiita


# Page. 25

![Page Image](https://bcdn.docswell.com/page/4JZM5MVX73.jpg)

唐突な
アンケート
Q.全てのUnity使いが100万回以上出し
たことのあるエラーログといえば？
A.


# Page. 26

![Page Image](https://bcdn.docswell.com/page/YE6N9N5PEV.jpg)

Photon FusionでCinemachineを使いたい ５敗
●
●
各プレイヤー・各ピアに対しカメラ（とAudioListener）がある
Runner Visibility Nodesを利用
○
自動で１つのピア（シーン）だけ有効にする
Multi-Peer Mode | Photon Engine
Unity Editor
ピア１
ピア２
Player1
Player2
Player1
Player2
camera
camera
camera
camera


# Page. 27

![Page Image](https://bcdn.docswell.com/page/GE55N5YPE4.jpg)

Photon FusionでCinemachineを使いたい 結果
●
●
一部成功
まだ重複あり
アクティブにしたピア（シーン）だけ有効
＝
アクティブなピア内のものは全て有効
Unity Editor
ピア１
ピア２
Player1
Player2
Player1
Player2
camera
camera
camera
camera


# Page. 28

![Page Image](https://bcdn.docswell.com/page/972N5NGZJR.jpg)

Photon FusionでCinemachineを使いたい ６敗
●
●
ピア内に複数ある場合は自力で無効化
自作スクリプトで処理
ここは自力
Unity Editor
ピア１
ピア２
Player1
Player2
Player1
Player2
camera
camera
camera
camera


# Page. 29

![Page Image](https://bcdn.docswell.com/page/DJYPKPVNJM.jpg)

Photon FusionでCinemachineを使いたい 結果
●
重複「は」しなくなった…


# Page. 30

![Page Image](https://bcdn.docswell.com/page/V7N5R5MVE8.jpg)

Photon FusionでCinemachineを使いたい 1分
●
入力～同期までの遅延が無視できない
○
●
ローカルと同等の追従は無理かもしれない
以下の仕様のため
○
○
プレイヤーの移動は入力即反映
カメラの移動はホストの反映を待つ


# Page. 31

![Page Image](https://bcdn.docswell.com/page/YJ9YMYNV73.jpg)

Photon FusionでCinemachine 適さないパターン
●
以下の要件が合わさると難しそう
○
○
○
○
車体の向き＋砲塔の向き 2軸
砲塔にカメラが同期する
高速で移動する
マルチピアに対応する


# Page. 32

![Page Image](https://bcdn.docswell.com/page/GJ86L6K4ED.jpg)

Photon FusionでCinemachine 適するパターン
●
●
一般的なゲームであれば問題なさそう
例えば
○
○
●
カメラの位置を同期しないもの
動きがゆっくりしているもの
試してない組み合わせは多い
○
○
○
マルチピアを使わない
virtualCameraのbody,aim、入力コントロール
各カメラオブジェクトの配置


# Page. 33

![Page Image](https://bcdn.docswell.com/page/LJL9L9ZV7R.jpg)

まとめ（今後実装したい人向け）
●
カメラ系コンポーネントは全プレイヤー分用意する
○
●
●
●
NetworkInputを介してコントロールする
LayerとCulingMaskで複数Cinemachineに対応
Runner Visibility Nodesを利用する
○
●
Camera,Brain,VirtualCamera
他プレイヤーのカメラ類は自力で非アクティブに
shared modeなら遅延を無視できる
○
カメラの同期を待つ必要がないため


# Page. 34

![Page Image](https://bcdn.docswell.com/page/47MZMZVNJW.jpg)

おまけ（今後実装したい人向け）
他にもあったアレコレ
●
●
Cinemachineの複数プレイヤー利用は想定外かも
cameraの設置について
○
●
●
移動の基準をカメラの向きにする工夫
砲塔の回転にFixedUpdateNetworkが使えない
○
●
各プレイヤーの prefabに含める？全体で１つでいい？
アニメーションには Renderを使う
Networked intに0を代入するとコールバックが起きない問題
○
○
負の値にはならないので +1して対処
Networkedは値を同期させるためのアトリビュート


# Page. 35

![Page Image](https://bcdn.docswell.com/page/P7R6V624E9.jpg)

Photon Fusionとは 参考記事
Photon Fusion for Unityの導入手順とPUN2との機能比較
https://qiita.com/nimushiki/items/d6fe4f0cbe0437677fa8
Photon Fusion for Unityの新機能 描画補間、ラグ補償、同期範囲設定
https://qiita.com/nimushiki/items/c82763817a8c7c4f2278
その他
https://qiita.com/tags/photonfusion


# Page. 36

![Page Image](https://bcdn.docswell.com/page/PJXMZMDZEX.jpg)

ご清聴
ありがとうございました！


