Tristan Metz

トリスタン・メッツ

ゲームプレイ&ツールプログラマー

操作して気持ちいいキャラクターと、それをチームで素早く調整するためのツールやテストレベルを作っています。東京の株式会社XR Japanでリードプログラマーを務めています。

履歴書(PDF) 作品を見る
トリスタン・メッツの写真

概要

ゲームの手触りと、それを支えるツールを専門とするゲームプログラマーです。最近はC#とUnityで開発しており、それ以前は2つの自作C++エンジンで物理、シリアライズ、エディターを書きました。

職歴

リードプログラマー

2025年3月 — 現在
株式会社XR Japan(旧AVR Japan)・東京
  • 医師が専用の内視鏡コントローラーとフットペダルで内視鏡的粘膜下層剥離術(ESD)を練習できるバーチャルトレーニング「Lumen」と、クライアント向けVR・iPadOS研修アプリのリードプログラマー
  • Burstでコンパイルしたソルバーによる組織の挙動(高フレームレートでも滑らかに動作)、病変のマーキング、コントローラーとペダルの入力を内視鏡先端の動き(押し引き・回転・角度)に変換する処理
  • シミュレーションのパフォーマンス計測とフレーム時間の改善、メッシュデータの読み込みの高速化
  • 設計方針とコーディング規約の策定、コードレビュー、プログラマーの育成とオンボーディング。医師・パートナー・クライアントとの技術的な打ち合わせ(見積もりとリスク管理を含む)
  • 全プロジェクトで使われる共通Unityパッケージ(イベントと状態管理のRipple、VRテンプレート、UnityUtilities、AutoAssign)と、繰り返しの確認作業をなくすテスト環境を整備

ゲームプログラマー

2024年9月 — 2025年2月
株式会社AVR Japan・東京
  • UnityでVR・タブレット向け研修アプリのゲームプレイ、UI、ツールを開発(Unreal Engineでの開発も一部担当)
  • 新しいクライアントアプリの出発点となるVRテンプレートパッケージを作成。インタラクション、フェード、トゥイーン、条件付きイベントのコンポーネントを揃え、新しいアプリをコピーしたコードではなく動く部品から始められるようにしました

共同創業者・プログラマー

2022年1月 — 現在
Idomi Games(インディースタジオ、本業と並行)
  • Global Game Jam 2022の作品から始まった2Dプレシジョンプラットフォーマー「Ryze」(Steamでプレイテスト公開中、5人チーム)のプログラマー
  • 「パールを投げてワープする」という唯一のアクションを支えるキャラクターコントローラー。小さなステートマシンで、着地直前の投げ入力は先行入力として受け付け、足場から歩いて落ちると落下ではなくパールに変身し、両足のプローブで崖際のふらつきを検知してアニメーションが先に反応します
  • 崩れる足場から、オブジェクトごとのタイムライン(Chronos)で物理とアニメーションがまとめて遅くなるタイムバブルまで、作ったギミックすべての区画を持つテストレベル。コントローラーの変更を1分で全ギミックと照合できます
  • 以前のプロジェクトから持ち込んだ会話システム。各セリフをイベントとして送るだけでUIには一切触れず、会話の開始は進行条件を受け取るawait可能な呼び出し一つ。トリガー範囲、歩いて近づくカットシーン、失敗が続いたときのセリフはどれも小さなコンポーネントで実装しています
  • スタジオのゲームジャム作品のプログラミングをすべて担当。Shroomer(GMTK Game Jam 2026、4日間)、This Side Up(Mini Jam 188、72時間)など

ゲームプレイプログラマー(卒業インターンシップ)

2021年9月 — 2022年4月
VR Amsterdam・オランダ アムステルダム
  • 複数人が一つの実空間を共有するマルチプレイVRアーケードゲーム「Ghostebash」を、空のプロジェクトから一人でプログラミング
  • クライアント・ホスト型のMirrorによるローカルマルチプレイ、プレイヤーの実際の体をゲーム内に再現するIKリグ、XR Interaction Toolkitによる物理ベースのつかみ操作とインタラクション
  • フリーロームVRに関する卒業研究。ネットワーク処理の1フレームあたりの負荷はクライアント0人で0.08ms、4人で0.40ms、10人で1.33msと計測し、クライアント・ホスト型で十分であることを確認しました

プログラマー(インターン)

2019年2月 — 2019年7月
Damocles Games・オランダ
  • 10人のチームでUnityの3Dグリッド型ターン制ストラテジー(ファイアーエムブレム風)を開発
  • ビジュアルスクリプティング用のAPIとカスタムユニットを作成し、デザイナーがプログラマーを待たずにゲームプレイの挙動を作れるように。プレイテストの反復が速くなりました
  • ユニットのホバー表示の要望をきっかけに、柔軟性に欠けていた選択・ハイライトの仕組みを作り直し、ホバーやターン制のカメラ操作などの機能をすぐに追加できるようにしました

エンジン・ツールの作品

Tristeon

VulkanレンダラーのC++エンジン · 2人・5か月 · 2017年 · GitHubスター70以上

ImGuiによるエディターと、それを支えるリフレクションを担当。C++にはリフレクションがないため、各型がmainの前にファクトリーを登録します。シーンには型名を保存し、同じ情報で専用UIなしにあらゆるコンポーネントを編集できるインスペクターを動かしています。

Orb

初の自作C++エンジン(OpenGL)で動くパズルゲーム · 2017年

物理エンジンを担当。抵抗・摩擦・反発をもつリジッドボディ、速い物体が壁をすり抜けない連続衝突判定付きのAABB衝突、トリガー、レイキャスト。Unityをレベルエディターにし、エクスポートしたデータをエンジンがオブジェクト単位で復元します。

osu!catch レベルエディター

Unity · 個人開発 · 2018年 — 2019年

ビートグリッドを1枚のフラグメントシェーダーでピクセル単位に描画し、数千本の線オブジェクトでは遅くなるところを、どのテンポやズームでも正確に表示。自分自身を元に戻すメメントによるUndo/Redo。マッパーのフィードバックをもとに改良しました。

C# vs. Wren

C++エンジン向けスクリプト言語のベンチマーク · 2023年

採用前に両方を計測。C#は6〜15倍速く動作し、Wrenはコンパイルが1000倍以上速く、C++の呼び出しもほぼゼロコストでした。