VersePrint()でデバッグ出力
Print()関数を呼び出すと、画面上、ゲーム内ログ、UEFNの出力ログの3箇所にメッセージが表示されます。
Versespawn{}で非同期処理を開始
spawn式は1つの非同期関数を開始し、後続のコードは即座に実行されます。タイマーやループ処理を別スレッドで実行したい時に便利。
Verserace{}でタイムアウト実装
race{}を使えば、処理とタイマーを同時実行して先に終わった方を採用できます。「5秒以内に操作しないと失敗」のようなタイムアウト処理に最適。
Verseoption型で安全なnull処理
Verseのoption型(?付き)を使うと、値が存在しない可能性を明示的に扱えます。if(Value?)で存在チェックしてから使用するのが安全。
Verse配列のFind[]で高速検索
for文で全要素をチェックするよりFind[]関数を使う方が効率的。見つかった時点で検索が終了するため、大きな配列で特に有効。
デバイスTriggerデバイスの範囲調整
Triggerデバイスの検知範囲は見た目より少し大きめに設定されています。正確な範囲が必要な場合はVolume系デバイスの使用を検討。
デバイスSequencerで演出を作る
Cinematic Sequence Deviceを使えば、カメラワークやオブジェクトのアニメーションを細かく制御できます。オープニングムービーやイベント演出に。
デバイスHUDメッセージの活用
HUD Message Deviceで画面にテキストを表示。チュートリアル説明やルール表示、カウントダウンなど様々な用途に使えます。
デバイスBarrier Deviceで見えない壁
Barrier Deviceを透明に設定すれば、プレイヤーの移動を制限する見えない壁を作れます。マップの境界やエリア制限に便利。
デバイスConditional Buttonで条件分岐
Conditional Buttonは特定の条件を満たした時だけ動作するボタン。「アイテムを持っている時だけ開くドア」などの仕掛けに最適。
地形・建築グリッドスナップの切り替え
Ctrl+Gでグリッドスナップのオン/オフを切り替え。細かい配置調整が必要な時はオフにして、整列させたい時はオンに。
地形・建築地形スカルプトの基本
Landscape Modeで地形を彫刻。Sculptで凹凸を作り、Smoothで滑らかに、Flattenで平らにできます。Ctrl押しながらで逆の効果。
地形・建築Prop Manipulatorで動く建築
Prop Manipulatorを使えば、建物やオブジェクトを動かせます。回転するプラットフォームや上下するエレベーターの作成に。
地形・建築フォリッジの一括配置
Foliage Modeで草や木を一括配置。密度やランダム性を調整してリアルな自然環境を効率的に作れます。
地形・建築Water Volumeで水場を作成
Water Volume Deviceで泳げる水場を簡単に作成。深さや透明度、水の色もカスタマイズ可能です。
ビジュアルPoint Lightで雰囲気作り
Point Lightを配置して局所的な照明を追加。暖色系で温かみ、寒色系でクールな雰囲気を演出できます。
ビジュアルPost Processで色調補正
Post Process Volumeで画面全体の色味やコントラストを調整。ホラーマップなら彩度を下げ、ファンタジーなら彩度を上げるなど。
ビジュアルFogで奥行き感を演出
Exponential Height Fogを追加すると、遠くの景色が霞んで見えてリアルな奥行き感が出ます。ホラーマップにも効果的。
ビジュアルDecalで汚れや傷を追加
Decalを使えば、壁や床に汚れ、傷、血痕などのテクスチャを投影できます。使い込まれた雰囲気の演出に。
ビジュアルSky Atmosphereで空を変更
Sky Atmosphereの設定で、時間帯や天候を変更できます。夕焼け、夜空、曇り空など、マップの雰囲気に合わせて調整。
サウンドAudio Playerで環境音
Audio Player Deviceで環境音を再生。森なら鳥の声、洞窟なら水滴の音など、音で没入感が大幅にアップします。
サウンド3Dサウンドの距離減衰
Audio Playerの減衰設定で、音源からの距離に応じて音量が変化。リアルな空間音響を演出できます。
サウンドMusic PlayerでBGM
Music Player Deviceでバックグラウンドミュージックを設定。ループ再生や条件付き切り替えも可能です。
ゲームデザインスポーン位置の分散
Player Spawnerは複数配置して分散させるのがベター。一箇所に集中すると開始直後の混戦や待ち伏せが発生しやすい。
ゲームデザインチェックポイントの配置間隔
難しいセクションの直前にチェックポイントを配置。やり直しの負担を減らすことでプレイヤーの離脱を防げます。
ゲームデザイン初心者ルートと上級者ルート
同じゴールに複数のルートを用意。簡単だけど遅いルートと、難しいけど速いルートを作ると幅広い層が楽しめます。
ゲームデザイン視覚的なガイドを設置
プレイヤーが迷わないよう、進行方向を示す矢印や光、色分けなどの視覚的ガイドを設置。UXが大幅に向上。
最適化メモリ使用量の確認
エディタ右上のメモリバーで使用量を確認。100%に近づくと不安定になるので、オブジェクト数を減らすか簡略化を検討。
最適化LODで遠景を軽量化
Level of Detail(LOD)設定で、遠くのオブジェクトを簡略化。見た目を維持しながらパフォーマンスを改善できます。
最適化不要なコリジョンを無効化
装飾用の小さなオブジェクトはコリジョンを無効に。当たり判定の計算が減り、パフォーマンスが向上します。
最適化Verseのループ最適化
毎フレーム実行されるVerseコードは最小限に。重い処理はイベント駆動に変更するか、実行間隔を空けましょう。
UI/UXBillboard Deviceで案内板
Billboard Deviceでテキストや画像を表示。ルール説明、エリア名、警告などの情報をプレイヤーに伝えられます。
UI/UXPopup Dialogで選択肢
Popup Dialog Deviceで選択肢付きのダイアログを表示。ストーリー分岐や設定変更のUIに使えます。
UI/UXMap Indicatorで目標表示
Map Indicator Deviceで、ミニマップ上に目標地点を表示。広いマップでプレイヤーが迷わないようにガイド。
制作Tips最初にゲームループを決める
マップ制作前に「プレイヤーが何をして、どう楽しむか」を明確に。ゴールが決まると必要な要素が見えてきます。
制作Tipsグレーボックスから始める
最初は簡単な形状でレイアウトを決め、テストプレイで調整。見た目の作り込みは後からでOK。
制作Tipsテストプレイは他人にも
自分だけでなく、他の人にもテストプレイしてもらう。作者には気づかない問題点が見つかることが多い。
制作Tipsセーブは頻繁に
Ctrl+Sでこまめに保存。大きな変更前には「名前を付けて保存」でバックアップを取る習慣をつけましょう。
制作TipsIslandの設定を確認
My Island設定で、ゲームモード、チーム設定、時間制限などを調整。意図したルールになっているか確認を。
制作Tipsプレビューモードで確認
編集中に「Play」ボタンでプレビュー。実際のプレイ感覚を確認しながら調整すると効率的。
ショートカットCtrl+Dで複製
選択したオブジェクトをCtrl+Dで素早く複製。同じオブジェクトを並べる時に便利。
ショートカットFキーでフォーカス
オブジェクトを選択してFキーを押すと、カメラがそのオブジェクトにフォーカス。迷子になった時に便利。
ショートカットAlt+ドラッグで複製移動
Altキーを押しながらオブジェクトをドラッグすると、複製しながら移動。等間隔配置に便利。
ショートカットEndキーで地面にスナップ
オブジェクトを選択してEndキーを押すと、地面にピッタリ配置。浮いているオブジェクトの調整に。
ショートカットHキーで非表示切り替え
選択オブジェクトをHキーで一時的に非表示。邪魔なオブジェクトを隠して作業効率アップ。
トラブル対処デバイスが動かない時
まず電源がオンになっているか確認。次にイベント接続が正しいか、条件設定が合っているかをチェック。
トラブル対処Verseコンパイルエラー
エラーメッセージの行番号を確認。多いのはスペルミス、型の不一致、セミコロン忘れ、インデントずれ。
トラブル対処プレイヤーが壁を抜ける
コリジョン設定を確認。「Block All」になっているか、メッシュのコリジョンが正しく設定されているかチェック。
トラブル対処ライトが反映されない
Static Lightの場合は「Build Lighting」が必要。Dynamic Lightに変更するか、ライティングをビルドしてみて。
トラブル対処公開後に動作が違う
エディタとプレイモードで挙動が異なる場合あり。公開前に必ずプレイモードでテストを。チーム設定も要確認。
Versesync{}で並列処理の完了待ち
sync{}を使うと、複数の非同期処理を同時に実行し、全てが完了するまで待機できます。複数のアニメーションを同期させたい時に便利。
Verserushで最速結果を即採用
rush{}はrace{}と似ていますが、最初に完了した処理の結果を即座に返し、他の処理はキャンセルせずバックグラウンドで継続します。
Versebranchで分岐非同期処理
branch{}は新しい非同期タスクを開始しつつ、即座に制御を返します。spawn{}と異なり、構造化された方法でタスクを追跡できます。
Verseclassでカスタム型を定義
Verseではclassを使って独自のデータ型を定義できます。関連するデータと処理をまとめて整理でき、コードの可読性が向上。
Verseinterfaceで共通の振る舞いを定義
interfaceを使うと、異なるクラスに共通の振る舞いを強制できます。「攻撃できるオブジェクト」など、抽象的な概念を定義するのに便利。
Verse属性でデバイス参照を簡単に
@editable属性を使うと、UEFNエディタからVerseの変数に値を設定できます。デバイス参照やパラメータ調整に必須のテクニック。
Versemapで連想配列を使う
Verseのmap型を使うと、キーと値のペアでデータを管理できます。プレイヤーIDからスコアを取得するなど、高速な検索が可能。
デバイスSignal Remote Managerで遠隔操作
Signal Remote Managerデバイスを使うと、プレイヤーにリモコンを持たせて遠隔からデバイスを操作できます。ドローン操作やカメラ切り替えに。
Tracker Deviceでオブジェクト追跡
Tracker Deviceで目標の追跡マーカーを表示。動くターゲットを追いかけるミッションや、かくれんぼゲームのヒント機能に。
デバイスItem Spawnerで武器・アイテム配置
Item Spawnerで武器やアイテムをスポーンさせる場所を設定。レアリティ別の確率設定や、リスポーン時間の調整も可能です。
デバイスTimer Deviceでカウントダウン
Timer Deviceで制限時間や待機時間を管理。画面にタイマーを表示したり、時間切れで自動的にイベントを発火させたり。
デバイスScore Managerでポイント管理
Score Managerでプレイヤーやチームのスコアを管理。条件を満たしたらスコア加算、目標達成で勝利判定など。
デバイスVehicle Spawnerで乗り物配置
Vehicle Spawnerで車、ボート、飛行機などの乗り物をスポーン。リスポーン時間や燃料設定もカスタマイズ可能。
地形・建築Splineでカーブした道を作る
Spline Actorを使うと、曲線に沿ってオブジェクトを配置できます。カーブした道路、フェンス、パイプラインの作成に便利。
地形・建築ランドスケープレイヤーで地形ペイント
複数のマテリアルレイヤーを使って、同じ地形に草、砂、岩などを塗り分けられます。自然な地形表現に必須のテクニック。
地形・建築アクタグルーピングで整理
Ctrl+Gで選択オブジェクトをグループ化。建物のパーツをまとめたり、複数配置する際の管理が楽になります。
地形・建築プロシージャルアセットで効率化
Procedural Content Generation (PCG)を使うと、ルールに基づいて自動的にオブジェクトを配置できます。森や街を効率的に生成。
ビジュアルNiagara Particleでエフェクト
Niagaraシステムで高品質なパーティクルエフェクトを作成。炎、煙、魔法、爆発など様々な視覚効果を表現できます。
ビジュアルマテリアルインスタンスで効率化
Material Instanceを使うと、ベースマテリアルのパラメータだけを変えて複数のバリエーションを作れます。テクスチャや色違いの作成に。
ビジュアルReflection Captureで映り込み
Reflection Capture Actorを配置すると、金属や水面に周囲の環境が映り込みます。リアルな反射表現に必須。
ビジュアルColor Grading LUTで映画風
LUT(Look Up Table)を使うと、映画のような色調補正を簡単に適用できます。Post Process Volumeと組み合わせて使用。
サウンドSound Mixで音量バランス調整
Sound Mixを使うと、BGM、効果音、環境音などのカテゴリ別に音量バランスを調整できます。状況に応じた動的な変更も可能。
サウンドReverb Volumeで空間音響
Reverb Volume内では残響効果が追加され、洞窟や教会のような空間の広さを音で表現できます。
サウンド足音の素材別切り替え
Physical Materialを設定すると、歩いている地面の素材に応じて足音が変わります。草、コンクリート、金属などリアルな音響に。
ゲームデザイン難易度曲線を意識する
最初は簡単に、徐々に難しくなるように設計。急激な難易度上昇は離脱の原因になります。段階的に新要素を導入。
ゲームデザインリスクとリワードのバランス
危険な場所には良い報酬を、安全な場所には控えめな報酬を配置。プレイヤーに「リスクを取る価値」を感じさせる設計。
ゲームデザインフィードバックを明確に
プレイヤーの行動に対して、視覚・聴覚・触覚のフィードバックを返す。ダメージを受けたら赤いフラッシュ、成功したら音が鳴るなど。
ゲームデザインプレイヤーに目標を与える
常に次の目標が明確になるように設計。「何をすればいいか分からない」状態は離脱の原因。短期・中期・長期の目標を用意。
最適化Occlusion Cullingで非表示最適化
カメラから見えないオブジェクトは描画をスキップ。壁の後ろや遠くのオブジェクトを効率的に処理できます。
最適化テクスチャストリーミングの活用
テクスチャストリーミングを使うと、必要なテクスチャだけをメモリにロードできます。大きなマップでメモリを節約。
最適化Static Meshの結合
複数のStatic Meshを1つに結合すると、Draw Call数が減ってパフォーマンスが向上します。動かない装飾品などに有効。
最適化Instance Static Meshで大量配置
同じオブジェクトを大量に配置する場合、Instanced Static Meshを使うと効率的。草や木、街灯などに最適。
UI/UXダイアグラムUIで情報整理
複雑な情報はダイアグラムやチャートで視覚化。プログレスバー、ミニマップ、ステータス表示など効果的に情報を伝える。
UI/UXレスポンシブなUIデザイン
画面サイズや解像度が異なっても正しく表示されるUIを設計。アンカーポイントとスケーリングを適切に設定。
UI/UXインタラクションの予測表示
プレイヤーがインタラクト可能なオブジェクトに近づいたら、何ができるかを事前に表示。「Eキーで開ける」などのヒント。
制作Tipsモジュラーデザインで効率化
壁、床、ドアなどのパーツを規格化して作成。組み合わせることで様々な建物を効率的に作れます。
制作Tipsコメントとドキュメント化
Verseコードにはコメントを書き、複雑な仕掛けには説明メモを残す。後から見返す時や他の人に引き継ぐ時に役立つ。
制作Tipsバージョン管理の重要性
大きな変更前には必ずバックアップ。ファイル名に日付や番号を付けて、いつでも前の状態に戻れるようにしておく。
制作Tipsリファレンスを集める
制作前に参考になる画像や動画を集める。目指すビジュアル、ゲームプレイ、UIなど具体的なイメージを固めておく。
制作Tipsプレイヤー目線でテスト
エディタのGod視点ではなく、実際のプレイヤー目線でマップを歩いてみる。見えない角度、分かりにくい場所を発見できる。
ショートカットマルチ選択の活用
Shiftクリックで範囲選択、Ctrlクリックで追加選択。複数オブジェクトを効率的に選択して一括操作。
ショートカットピボットポイントの変更
Alt+中クリックでピボット(回転の中心)を一時的に移動。ドアのヒンジ部分を中心に回転させたい時などに便利。
ショートカットブックマークで素早く移動
Ctrl+数字キーで現在のカメラ位置を保存、数字キーで呼び出し。広いマップの複数ポイントを行き来するのに便利。
ショートカットスナップ設定のカスタマイズ
グリッドや回転のスナップ間隔をカスタマイズ。細かい作業には小さい値、大まかな配置には大きい値を使い分け。
ショートカットSurface Snappingで地面配置
Surface Snappingを有効にすると、オブジェクトを地面や他のオブジェクト表面にぴったり配置できます。
トラブル対処Verseランタイムエラーの対処
ゲーム中に発生するエラーはログで確認。配列の範囲外アクセス、nullアクセス、無限ループなどが一般的な原因。
トラブル対処FPS低下の原因特定
GPU統計情報を表示してボトルネックを特定。大きなテクスチャ、複雑なシェーダー、過剰なライトなどが原因になりがち。
トラブル対処マルチプレイヤーの同期問題
ローカルでは動くのにマルチプレイで動かない場合、サーバー/クライアントの同期を確認。全プレイヤーに影響する処理かを意識。
トラブル対処UEFNクラッシュからの復旧
UEFNがクラッシュしても、自動保存から復旧できることが多い。Recovered フォルダを確認し、最新の状態を復元。
トラブル対処アセットの破損対処
開けないアセットや読み込みエラーが出る場合、Fix Up Redirectors、アセットの再インポート、またはバックアップから復元を試みる。