+
*
+
ココ先生
ゲーム開発の案内役
この記事では フォトモードと撮影UI を、読んで終わりにせず、PhotoModeDemo の小さな実装イメージまでつなげて案内します。
+
*
+
はじめちゃん
ゲームエンジン学習中
フォトモードとスクリーンショットUIを迷わせない設計ガイド を読む前に、まずUnity のどこを見ればよいかを確認したいです。
今日は「フォトモードと撮影UI」を、まず何が変わるのか、次に画面で何を見せるのか、最後にどの値を確認するのか、という順番で読んでいきます。
大きなテーマに見えますが、今日は「PhotoModeDemo」という小さな練習用の場面だけを作るのですね。何から始めればよいか分かりました。
撮影モードへ入るを表示、Photo Buttonで進める、カメラを調整を確認の流れを追えば、記事の内容を自分のプロジェクトへ移しやすくなります。

完成イメージ
フォトモードと撮影UIの状態を分ける
撮影モードへ入る、カメラを調整、UIを隠して保存 を別々の状態として扱い、今どの段階かを画面で確認できるようにします。
撮影前に何を隠すかをUIで伝える
Console だけではプレイヤーには見えません。TextMeshPro や Slider に cameraFov / focusDistance / uiHidden を出して、判断材料を画面へ移します。
最小実装から広げる
まず PhotoModeDemo を動かし、その後に本物の入力、通信、戦闘、保存処理などへ置き換えると、原因を見失いにくくなります。
導入
ゲームを止めてカメラを自由に動かし、撮影ボタンで画像を保存します。観光用のカメラへ持ち替えるモードです。
作るもの
Photo Camera を用意します。PhotoMode に mainCamera、photoCamera、panel を登録します。
モードを切り替える
public void Toggle(){ active=!active; mainCamera.enabled=!active; photoCamera.enabled=active; panel.SetActive(active); Time.timeScale=active?0:1; }
撮影する
public void Capture(){ ScreenCapture.CaptureScreenshot($"photo_{System.DateTime.Now:HHmmss}.png"); }
完成版
using UnityEngine;public class PhotoMode:MonoBehaviour{[SerializeField]Camera mainCamera,photoCamera;[SerializeField]GameObject panel;bool active;public void Toggle(){active=!active;mainCamera.enabled=!active;photoCamera.enabled=active;panel.SetActive(active);Time.timeScale=active?0:1;}public void Capture(){ScreenCapture.CaptureScreenshot($"photo_{System.DateTime.Now:HHmmss}.png");}void OnDisable(){Time.timeScale=1;}}
最後に整理すると、フォトモードと撮影UIでいちばん見失いやすい所はどこですか?
内部処理だけを追って、画面で伝える言葉を後回しにする所です。PhotoModeDemoでは、まずプレイヤーに見える変化を先に決めます。
流れは「撮影モードへ入るを表示」から始めて、「Photo Buttonで進める」で操作を入れる、と覚えればよいですか?
その通りです。その後に「カメラを調整を確認」で途中状態を見て、「UIを隠して保存で結果を見る」で結果を確認します。順番を固定すると、失敗した場所も見つけやすくなります。
つまり、いきなり完成システムにせず、状態名、表示、値の変化を小さくそろえるのですね。
はい。最後は「フォトモードと撮影UIをわかりやすく考える」の考え方で、難しい処理をプレイヤーに伝わる短い合図へ置き換えられるか確認しましょう。
この記事のまとめ
カメラ位置、被写界深度、UI非表示、保存導線まで含めて、撮りたい瞬間を邪魔しないフォトモード設計を整理します。
大きな違いを生むのは、派手な性能よりも 毎日触れる環境を無理なく整えること です。見やすい画面と使いやすい道具がそろうと、学習や次の一歩を決めやすくなります。