手軽に表示して、回転、ズーム、アニメーション表示がしたい。 Webサーバー無しで実現したい。

手軽に表示して、回転、ズーム、アニメーション表示がしたい。 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)✅あり✅OKGUIアプリ(既製)⭐⭐⭐⭐

✅ 一番シンプルでパワフルなのは…

🟢 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)

  1. 「Qt Quick Application」テンプレートで新規作成
  2. main.qml を上記に差し替え
  3. .glb ファイルをプロジェクトに追加(ドラッグ&ドロップOK)
  4. ビルド&実行!

🌟 さらに欲しい機能ありますか?

  • アニメーション選択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の場合
  1. ダウンロードしたインストーラー(qt-installer.exe)を実行します。
  2. インストーラーが起動したら、「Next」をクリック。
  3. 「Qt 6.x」などインストールするバージョンを選択(推奨:最新バージョン)。
  4. インストール先のディレクトリを選択(デフォルトで問題ありません)。
  5. インストールが完了したら、「Launch Qt Creator」を選択してQt Creatorを起動します。
macOSの場合
  1. ダウンロードしたインストーラー(qt-installer.dmg)を実行します。
  2. インストーラーを開いて、Qt Creatorをドラッグしてアプリケーションフォルダに移動します。
  3. アプリケーションフォルダからQt Creatorを起動します。
Linuxの場合
  1. ダウンロードしたインストーラー(qt-installer.run)を実行します。
    • 端末で以下のコマンドを実行して、インストーラーを実行できるようにします: chmod +x qt-installer.run ./qt-installer.run
  2. インストーラーが起動したら、指示に従ってインストールを進めます。

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シーンの作成が簡単に行えます。


次のステップ

  1. Qt Creatorをインストール後、先ほど送った**GLBViewer_template.zip** を解凍してプロジェクトを開いてください。
  2. 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を利用する設定を行います。

  1. 新規プロジェクト作成
    • Qt Creatorで「新しいプロジェクト」→「Qt Quick アプリケーション(C++)」を選択。
    • プロジェクト名や保存場所を設定し、「次へ」で進めます。
  2. 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 モデルの表示、回転・ズーム、アニメーション再生が可能です。もし追加のサンプルコードや設定方法が必要であれば、お知らせください!

よかったらシェアしてね!
目次