7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

第1回: 「転スラ」のリムル様をGenesisで設置!

Last updated at Posted at 2025-01-03

はじめに

こんにちは、しゅんです! 重要事項:マジで遊んでるだけ
今回は「転生したらスライムだった件」の「リムル」を超適当にBlenderで作成し、Genesisに取り込んでシミュレーションを試してみました。目標はリムルにジャンプや壁越えをさせること、そして将来的には強化学習で動きを洗練させることです。この記事では、シミュレーション準備と基本的なモデルの導入について紹介します。
前回の記事見てくれてありがとうございます。


Blenderでリムルモデル作成

まずはBlenderで簡単にスライム形状を作成しました。あまり細かい調整はせず、動作確認が主目的なので、形がそれっぽければOKです。

エクスポート形式は.objを使用。以下のパスに保存しました:

/your_path/rimuru.obj

適切なパスに置き換えすること


Genesisのセットアップ

必要な準備

Ubuntu 24.04環境でGenesisを動かす手順は前回の記事をご覧ください。また、以下の環境でテストしました:

  • GPU: NVIDIA RTX 3080 (VRAM 8GB)
  • Genesis Version: 最新

前回の記事です

基本的なシーンの構築

まずは地面にスライムを配置し、動作確認してみます。

コード:

import numpy as np
import genesis as gs

# 初期化
gs.init(seed=0, precision='32', logging_level='debug')

# シーン作成
scene = gs.Scene(
    sim_options=gs.options.SimOptions(
        substeps=10,
        gravity=(0, 0, -9.8),
    ),
    mpm_options=gs.options.MPMOptions(
        dt=5e-4,
        lower_bound=(-1.0, -1.0, -0.2),
        upper_bound=(1.0, 1.0, 1.0),
    ),
    viewer_options=gs.options.ViewerOptions(
        camera_pos=(1.5, 0, 0.8),
        camera_lookat=(0.0, 0.0, 0.0),
        camera_fov=40,
    )
)

# 地面とスライムを追加
scene.add_entity(morph=gs.morphs.Plane(), material=gs.materials.Rigid(rho=1000, friction=0.5))
slime = scene.add_entity(
    morph=gs.morphs.Mesh(file='your_path/rimuru.obj', pos=(0.0, 0.0, 0.2), scale=0.05, euler=(90, 0, 0)),
    material=gs.materials.MPM.Muscle(E=1e4, nu=0.39, rho=1000., model='neohooken'),
)

# シミュレーション実行
scene.build()
scene.reset()
for i in range(1000):
    scene.step()

結果

シミュレーション内でスライムは物理エンジンによる影響を受け、地面に落ちました。形状も概ね保持されています。(嘘です...ちょっとスライムが謎過ぎて調節が何時間もかかった)次回は壁を設置して障害物の追加に挑戦します!

7
6
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?