手軽に表示して、回転、ズーム、アニメーション表示がしたい。 Webサーバー無しで実現したい。
了解です!
あなたの目的は明確ですね👇
✅ 目的まとめ:
.glb
モデルを手軽に表示- 回転・ズームがしたい(マウスで操作)
- アニメーション再生も対応したい
- Webサーバー無し(ローカルで動作)
- 可能なら ネイティブアプリ(C++)で完結したい
🏆 一番おすすめの構成:Qt 6 + QtQuick3D(QML)
✅ 理由:
.glb
対応が公式でしっかりしている- アニメーション・回転・ズームがQMLだけで実現できる
- Webサーバー不要(ネイティブアプリとして完結)
- Windows/macOS/Linuxで動作
- 見た目が美しい&拡張しやすい
💡 実際にできること:
機能 | QtQuick3D での対応状況 |
---|---|
GLB読み込み | ✅ 対応(Model で直接) |
回転 / ズーム操作 | ✅ 対応(OrbitCameraController) |
アニメーション再生 | ✅ 対応(Model + Animator) |
🔰 最小サンプル:GLBビューア(回転・ズーム付き)
main.qml
import QtQuick import QtQuick.Window import QtQuick3D import QtQuick3D.Helpers Window { width: 800 height: 600 visible: true title: "GLB Viewer" View3D { anchors.fill: parent environment: SceneEnvironment { backgroundMode: SceneEnvironment.Color clearColor: "#333" } PerspectiveCamera { id: camera position: Qt.vector3d(0, 2, 5) lookAt: Qt.vector3d(0, 0, 0) } OrbitCameraController { camera: camera lookAt: Qt.vector3d(0, 0, 0) } DirectionalLight { worldDirection: Qt.vector3d(-1, -1, -1) } Model { id: glbModel source: "model.glb" // ローカルのGLBパス scale: Qt.vector3d(1, 1, 1) } } }
📁 準備するもの:
- 上記
main.qml
- Qt Creator で QtQuickプロジェクトを作成
model.glb
を同じフォルダに置く- Qt 6.2 以降がインストールされていればすぐ実行可能!
▶️ アニメーション再生もしたい場合
.glb
にアニメーションが含まれていれば、以下のようにできます:
Model { id: glbModel source: "model.glb" onSceneChange: animation.start() Node { id: animation property alias running: glbModel.animations[0].running } }
または Animator
を使って明示的に操作も可能です。
💡 もし C++ ベースで組みたいなら?
QML と組み合わせる形で C++ からも .glb
読み込みやアニメーション制御が可能です。
でも QML だけで90%完結するので、シンプルなビューアなら QML を推奨します。
✅ まとめ:ベスト構成
条件 | 解決手段 |
---|---|
Webサーバー不要 | Qt(ネイティブアプリ) |
回転・ズーム | OrbitCameraController |
アニメーション表示 | .glb + QtQuick3D Model |
クロスプラットフォーム | Qt 6.x |
構築の簡単さ | Qt Creator で即構築可能 |
次のステップ?
- このテンプレートを元に Qt プロジェクトを作りたい?
- あるいは
.glb
モデルを持ってるならテストもできます!
プロジェクトファイル一式の雛形が欲しければすぐ出します!
どうする?😎
.glb モデルを手軽に表示回転・ズームがしたい(マウスで操作)アニメーション再生も対応したいWebサーバー無し(ローカルで動作) ができれば、言語はこだわらない
完璧!その条件に対して「言語こだわらず、手軽に実現できる最強の方法」をズバッと紹介します👇
🏆 ベストな選択肢3つ(Webサーバー不要&アニメーションOK)
ツール/言語 | UI操作 | アニメ対応 | 軽さ | 実行方法 | おすすめ度 |
---|---|---|---|---|---|
Qt 6 + QtQuick3D | ✅あり | ✅OK | ◯ | ネイティブアプリ | ⭐⭐⭐⭐⭐ |
Godot Engine (C++) | ✅あり | ✅OK | ◯ | ネイティブアプリ | ⭐⭐⭐⭐☆ |
Blender(Python) | ✅あり | ✅OK | △ | GUIアプリ(既製) | ⭐⭐⭐⭐ |
✅ 一番シンプルでパワフルなのは…
🟢 Qt 6 + QtQuick3D(ネイティブGLBビューアを最速で構築可能)
.glb
読み込み → 1行- 回転・ズーム →
OrbitCameraController
つけるだけ - アニメーション → 自動再生 or 制御も簡単
- Webサーバー不要 → Qtアプリとしてローカル実行
- QMLだけで完結(C++書かなくてもOK)
💻 具体イメージ
Model { source: "model.glb" } OrbitCameraController { camera: ... }
Qt Creator でGUIプロジェクト作ればすぐ動く!
🟡 代替:Godot Engine(C++やスクリプト対応)
- 完全ネイティブ、Webサーバー不要
.glb
ドラッグ&ドロップで即表示- マウス操作、アニメも自動サポート
- GUIエディタ付きで視覚的に編集可能
✅ 特におすすめ:
- 将来的に3Dアプリやビューワーを拡張したいなら超便利
🔵 裏技:Blender + スクリプト(Python)
.glb
読み込み → File > Import > glTF- マウス操作 → 標準で可能
- アニメーション → 自動再生可能(タイムライン付き)
- スクリプト書けば再生制御もできる
- Blender自体がビューアになる
🔧 どれを選ぶべき?
あなたが望むこと | おすすめツール |
---|---|
最短で .glb を回転・ズーム・再生 | ✅ QtQuick3D |
拡張性・視覚的操作もほしい | ✅ Godot Engine |
モデリング環境でも見たい | ✅ Blender |
🔥 いますぐ試すなら(Qt)
ご希望あれば、Qt 6 プロジェクトテンプレート(QML完結)
すぐコピペできるもの、または Qt Creator 用に一式も出せます!
また、Godot プロジェクトテンプレート(GLB読み込み済み)も出せます。
どれ使ってみたいですか?👇
- Qt(ネイティブで美しく軽快)
- Godot(簡単&GUIで直感操作)
- Blender(既に入ってるなら楽)
気に入ったのがあれば、その手法に合わせたスターター一式をすぐご用意します!
Qt(ネイティブで美しく軽快)
ナイス選択です!🎉 Qt は ネイティブで高速&美麗、しかも .glb
対応がしっかりしていて、回転・ズーム・アニメーション再生まで全部できます!
✅ やること一覧(Qt Quick 3D ビューア)
ステップ | 内容 |
---|---|
① プロジェクト作成 | Qt Creator で「Qt Quick アプリケーション」作成 |
② QMLファイル編集 | main.qml に View3D、Model、Camera など追加 |
③ .glb 配置 | 任意の .glb モデルをプロジェクトに追加 |
④ 実行 | ローカルでそのまま再生・操作OK! |
📁 プロジェクト構成例
GLBViewer/ ├── main.qml ├── model.glb ← 任意の3Dモデル ├── GLBViewer.pro
🧩 main.qml(テンプレート)
import QtQuick import QtQuick.Window import QtQuick3D import QtQuick3D.Helpers Window { visible: true width: 800 height: 600 title: "GLB Viewer" View3D { anchors.fill: parent environment: SceneEnvironment { backgroundMode: SceneEnvironment.Color clearColor: "#222" } PerspectiveCamera { id: camera position: Qt.vector3d(0, 1.5, 5) lookAt: Qt.vector3d(0, 1, 0) } OrbitCameraController { camera: camera lookAt: Qt.vector3d(0, 1, 0) } DirectionalLight { worldDirection: Qt.vector3d(-1, -1, -1) } Model { id: glbModel source: "model.glb" // ← ここにGLBファイルの名前 scale: Qt.vector3d(1, 1, 1) onSceneChange: { // アニメーション自動再生 if (animations.length > 0) { animations[0].running = true animations[0].loopCount = Animation.Infinite } } } } }
✅ アニメーション付き .glb
に対応済み!
.glb
にアニメが入っていれば、自動的に読み込まれます。animations[0].running = true
で再生可能。
▶️ 実行方法(Qt Creator)
- 「Qt Quick Application」テンプレートで新規作成
main.qml
を上記に差し替え.glb
ファイルをプロジェクトに追加(ドラッグ&ドロップOK)- ビルド&実行!
🌟 さらに欲しい機能ありますか?
- アニメーション選択UI(複数ある場合)
- ライト・背景色の切り替え
- C++から
.glb
を動的に変更 - クリック操作や物理エフェクト追加
必要であればカスタムもできます。
まずはこのテンプレートで動かしてみて、動作確認しましょう!
ご希望があれば、フルテンプレートZIP一式をすぐご用意します!
Qt Creatorのインストール手順を以下に説明します。Qt CreatorはQtの統合開発環境(IDE)で、Qtアプリケーションの開発に必要なツールがすべて揃っています。
Qt Creatorのインストール手順(Windows, macOS, Linux)
1. Qt公式サイトからインストーラーをダウンロード
- Qt公式ダウンロードページ にアクセス。
- 「Go open source」ボタンをクリックして、オープンソース版のダウンロードページに進みます。
- 「Download the installer」を選択して、インストーラー(
qt-installer.exe
/qt-installer.dmg
/qt-installer.run
)をダウンロードします。
2. インストール手順
Windowsの場合
- ダウンロードしたインストーラー(
qt-installer.exe
)を実行します。 - インストーラーが起動したら、「Next」をクリック。
- 「Qt 6.x」などインストールするバージョンを選択(推奨:最新バージョン)。
- インストール先のディレクトリを選択(デフォルトで問題ありません)。
- インストールが完了したら、「Launch Qt Creator」を選択してQt Creatorを起動します。
macOSの場合
- ダウンロードしたインストーラー(
qt-installer.dmg
)を実行します。 - インストーラーを開いて、Qt Creatorをドラッグしてアプリケーションフォルダに移動します。
- アプリケーションフォルダからQt Creatorを起動します。
Linuxの場合
- ダウンロードしたインストーラー(
qt-installer.run
)を実行します。- 端末で以下のコマンドを実行して、インストーラーを実行できるようにします:
chmod +x qt-installer.run ./qt-installer.run
- 端末で以下のコマンドを実行して、インストーラーを実行できるようにします:
- インストーラーが起動したら、指示に従ってインストールを進めます。
3. Qt Creatorの初期設定
- Qt Creatorを初めて起動した際に、必要なコンパイラやQtのバージョンを設定します。
- Qt Creatorは自動的にデフォルトで必要なツールをインストールしますが、手動でコンパイラや追加のツールをインストールすることもできます。
4. Qt Quick 3Dのセットアップ
Qt Creatorがインストールされた後、QtQuick 3D
を使用するために、Qtの追加モジュール(Qt 3D
)がインストールされていることを確認してください。Qt Creatorを使って新しいQt Quickアプリケーションを作成し、Qt 6.x
が正しく設定されていれば、.glb
モデルの読み込みや3Dシーンの作成が簡単に行えます。
次のステップ
- Qt Creatorをインストール後、先ほど送った**
GLBViewer_template.zip
** を解凍してプロジェクトを開いてください。 model.glb
を実際の3Dモデルファイルに置き換えて、main.qml
を実行して動作確認してください。
もしインストール中に問題が発生したり、追加で質問があればお気軽にお知らせください!
ありがとう使います。 C++でも準備できますか?
もちろん、C++でQtを使用してGLBファイルを表示する準備もできます!
C++の場合、QtQuick 3Dを使用して同じように3Dモデルを表示することができますが、C++のコードで直接操作を行いたい場合、以下の手順で進められます。
C++でQtを使ってGLB表示の準備
1. Qt Quick 3DのC++コード(基本設定)
まず、Qt CreatorでC++プロジェクトを作成し、Qt Quick 3Dを利用する設定を行います。
- 新規プロジェクト作成
- Qt Creatorで「新しいプロジェクト」→「Qt Quick アプリケーション(C++)」を選択。
- プロジェクト名や保存場所を設定し、「次へ」で進めます。
main.cpp
ファイル編集 Qt Quick 3Dのアプリケーションは、C++からQMLのView3D
コンポーネントを操作する形で構築できます。以下のように、main.cpp
を設定します。
#include <QGuiApplication> #include <QQmlApplicationEngine> #include <QtQuick3D> #include <QQuickView> int main(int argc, char *argv[]) { QGuiApplication app(argc, argv); // QMLエンジンを作成 QQmlApplicationEngine engine; engine.load(QUrl(QStringLiteral("qrc:/main.qml"))); return app.exec(); }
3. main.qml
ファイル(3Dモデル表示)
C++とQMLを連携させるため、C++から操作する部分はQMLに記述します。main.qml
内で、3Dモデルを表示するために必要なコンポーネントを使います。
import QtQuick import QtQuick.Window import QtQuick3D Window { visible: true width: 800 height: 600 title: "GLB Viewer" View3D { anchors.fill: parent PerspectiveCamera { id: camera position: Qt.vector3d(0, 1.5, 5) lookAt: Qt.vector3d(0, 1, 0) } OrbitCameraController { camera: camera } DirectionalLight { worldDirection: Qt.vector3d(-1, -1, -1) } Model { id: glbModel source: "model.glb" // GLBファイルのパス } } }
4. C++からの操作例
C++でQMLを操作したい場合、QQmlContext
を使ってプロパティを設定することができます。例えば、カメラの位置をC++から変更したい場合:
QQmlApplicationEngine engine; const QUrl url(QStringLiteral("qrc:/main.qml")); engine.load(url); // カメラをC++から操作する例 QObject *rootObject = engine.rootObjects().first(); QObject *camera = rootObject->findChild<QObject*>("camera"); camera->setProperty("position", QVariant::fromValue(QVector3D(0, 2, 10)));
5. プロジェクト構成例(C++版)
GLBViewer/ ├── main.cpp ├── main.qml ├── GLBViewer.pro ├── model.glb (3Dモデル)
6. Qtプロジェクト設定ファイル(GLBViewer.pro)
C++用のプロジェクト設定ファイルです。QtQuick3Dを有効にするために必要な設定が含まれています。
TEMPLATE = app TARGET = GLBViewer QT += quick 3dcore SOURCES += main.cpp RESOURCES += qml.qrc
7. ビルドと実行
- Qt Creatorでプロジェクトをビルドし、実行します。
.glb
ファイルをプロジェクト内に配置し、source: "model.glb"
と指定します。
C++とQt Quick 3Dのメリット
- 柔軟性: C++を使って、QtQuick3Dのコンポーネントやデータを動的に操作できます。
- パフォーマンス: Qtのネイティブコードで動作し、高速な描画が可能です。
- 拡張性: C++でロジックやアルゴリズムを追加し、複雑なアプリケーションへスケールアップできます。
この方法で、C++でもQtを使って .glb
モデルの表示、回転・ズーム、アニメーション再生が可能です。もし追加のサンプルコードや設定方法が必要であれば、お知らせください!