マルチプレイヤー数当てゲーム

index.html

<!DOCTYPE html>
<html lang="ja">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <link rel="stylesheet" href="styles.css">
  <title>マルチプレイヤー数当てゲーム</title>
</head>
<body>
<header>
  <h1>マルチプレイヤー数当てゲーム</h1>
</header>

<div class="player-registration">
  <input type="text" id="playerName" placeholder="プレイヤー名">
  <input type="file" id="profileImage" accept="image/*">
  <button id="submitPlayer">プレイヤー登録</button>
</div>

<!-- モーダルウィンドウの追加 -->
<div id="modal" class="modal">
  <div class="modal-content">
    <span class="close-button">×</span>
    <p id="modalMessage"></p>
  </div>
</div>

<section class="game-rules">
  <h2>ゲームのルール</h2>
  <p>1から100までの数字を10回以内に当ててください。正解するとポイントが獲得できます。</p>
</section>

<div class="game-container">
  <div class="user-stats">
    <p>総プレイゲーム数: <span id="totalGamesPlayed">0</span></p>
    <p>正解総数: <span id="totalCorrectGuesses">0</span></p>
  </div>

  <div class="live-feedback" id="liveFeedback"></div>

  <input type="number" id="guessInput" min="1" max="100" placeholder="あなたの予想">
  <button id="guessButton">予想する</button>
  <p id="message"></p>
  <p>残り予想回数: <span id="remainingGuesses">10</span></p>
</div>

<div class="leaderboard">
  <h2>トッププレイヤー</h2>
  <ul id="topPlayers"></ul>
</div>

<footer>
  <p>© 2023 数当てゲーム開発者</p>
  <p>お問い合わせ: <a href="mailto:contact:tyosuke2010@gmail.com">contact:tyosuke2010@gmail.com</a></p>
</footer>

<script src="script.js"></script>
</body>
</html>

script.js

document.addEventListener('DOMContentLoaded', () => {
    let secretNumber = Math.floor(Math.random() * 100) + 1;
    let guessesRemaining = 10;
    let gamesPlayed = 0;
    let correctGuesses = 0;

    const playerNameInput = document.getElementById('playerName');
    const submitPlayerButton = document.getElementById('submitPlayer');
    const guessInput = document.getElementById('guessInput');
    const guessButton = document.getElementById('guessButton');
    const message = document.getElementById('message');
    const totalGamesPlayed = document.getElementById('totalGamesPlayed');
    const totalCorrectGuesses = document.getElementById('totalCorrectGuesses');
    const remainingGuesses = document.getElementById('remainingGuesses');
    const liveFeedback = document.getElementById('liveFeedback');

    submitPlayerButton.addEventListener('click', () => {
        const playerName = playerNameInput.value;
        if (playerName) {
            alert(`ようこそ、${playerName}さん!`);
            playerNameInput.disabled = true;
            submitPlayerButton.disabled = true;
        } else {
            alert('プレイヤー名を入力してください。');
        }
    });

    guessButton.addEventListener('click', () => {
        const userGuess = parseInt(guessInput.value);
        if (!userGuess || userGuess < 1 || userGuess > 100) {
            alert('1から100までの数字を入力してください。');
            return;
        }

        guessesRemaining--;
        remainingGuesses.textContent = guessesRemaining;

        if (userGuess === secretNumber) {
            correctGuesses++;
            totalCorrectGuesses.textContent = correctGuesses;
            message.textContent = `正解! ${userGuess} が正しい数字です!`;
            resetGame();
        } else if (guessesRemaining === 0) {
            message.textContent = `ゲームオーバー!正しい数字は ${secretNumber} でした。`;
            resetGame();
        } else {
            message.textContent = userGuess > secretNumber ? 'もっと低い数字です!' : 'もっと高い数字です!';
            liveFeedback.textContent = `あなたの予想: ${userGuess}`;
        }
    });

    function resetGame() {
        secretNumber = Math.floor(Math.random() * 100) + 1;
        guessesRemaining = 10;
        remainingGuesses.textContent = guessesRemaining;
        guessInput.value = '';
        gamesPlayed++;
        totalGamesPlayed.textContent = gamesPlayed;
    }
});

style.css

body {
    font-family: 'Arial', sans-serif;
    background-color: #f4f4f4;
    color: #333;
    line-height: 1.6;
    padding: 0;
    margin: 0;
    text-align: center;
}

header {
    background: #333;
    color: #fff;
    padding: 1rem 0;
    margin-bottom: 15px;
}

header h1 {
    margin: 0;
}

.player-registration, .game-container, .game-rules, .leaderboard {
    max-width: 600px;
    margin: 20px auto;
    padding: 20px;
    border: 1px solid #ddd;
    background: #fff;
    border-radius: 10px;
    box-shadow: 2px 2px 5px rgba(0,0,0,0.3);
}

input[type='text'], input[type='number'], input[type='file'], button {
    display: block;
    width: 90%;
    padding: 10px;
    margin: 10px auto;
    border-radius: 5px;
    border: 1px solid #ddd;
}

button {
    background-color: #5f9ea0;
    color: #fff;
    border: none;
    cursor: pointer;
}

button:hover {
    background-color: #486f70;
}

footer {
    background: #333;
    color: #fff;
    text-align: center;
    padding: 1rem 0;
    position: absolute;
    bottom: 0;
    width: 100%;
}

footer p {
    margin: 0;
}

/* 追加スタイル */
ul {
    list-style-type: none;
    padding: 0;
}

li {
    margin-bottom: 5px;
    
}

ポケモン

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerController : MonoBehaviour
{
public float moveSpeed;
public LayerMask solidObjectsLayer;
public LayerMask grassLayer;

private bool isMoving;
private Vector2 input;

private Animator animator;

private void Awake()
{
    animator = GetComponent<Animator>();
}
private void Update()
{
       if (!isMoving)
        {
        input.x = Input.GetAxisRaw("Horizontal");
        input.y = Input.GetAxisRaw("Vertical");

        //remove diagonal movement
        if (input.x != 0) input.y = 0;

        if(input != Vector2.zero)
        {
            animator.SetFloat("moveX", input.x);
            animator.SetFloat("moveY", input.y);
            var targetPos = transform.position;
            targetPos.x += input.x;
            targetPos.y += input.y;

            if(IsWalkable(targetPos))
            StartCoroutine(Move(targetPos));
        }
    }

    animator.SetBool("isMoving", isMoving);
}
IEnumerator Move(Vector3 targetPos)
{
    isMoving = true;

    while ((targetPos - transform.position).sqrMagnitude > Mathf.Epsilon)
    {
        transform.position = Vector3.MoveTowards(transform.position, targetPos, moveSpeed * Time.deltaTime);
        yield return null;
    }
    transform.position = targetPos; // 目標位置に合わせて最終位置を設定

    isMoving = false;

    CheckForEncounters();
}

private bool IsWalkable(Vector3 tagetPos)
{
    if(Physics2D.OverlapCircle(tagetPos, 0.2f, solidObjectsLayer) != null)
    {
        return false;
    }

    return true;
}

private void CheckForEncounters()
{
    if(Physics2D.OverlapCircle(transform.position, 0.2f, grassLayer) != null)
    {
        if(Random.Range(1, 101) <= 10)
        {
            Debug.Log("野生のポケモンに遭遇した");
        }
   
}

}

PlayerController.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

[CreateAssetMenu(fileName = “ポケモン”, menuName = “ポケモン/新しいポケモンを作成する”)]
public class PokemonBase : ScriptableObject
{
[SerializeField] string name;

[TextArea]
[SerializeField] string description;

[SerializeField] Sprite frontSprite;
[SerializeField] Sprite backSprite;

[SerializeField] PokemonType type1;
[SerializeField] PokemonType type2;

//Base Stats
[SerializeField] int maxHp;
[SerializeField] int attack;
[SerializeField] int defense;
[SerializeField] int spAttack;
[SerializeField] int spDefense;
[SerializeField] int speed;

}

public enum PokemonType
{
None,
Normal,
Fire,
Water,
Electric,
Grass,
Ice,
Fighting,
Poison,
Ground,
Flying,
Psychic,
Bug,
Rock,
Ghost,
Dragon
}

PokemonBase

MMORPGの作り方

MMORPG(Massively Multiplayer Online Role-Playing Game)を作成するには、非常に多くのスキルとリソースが必要です。以下は、MMORPGを作成する一般的な手順の概要です。

  1. コンセプトの設計: MMORPGのコンセプトを明確にし、ゲームのテーマ、設定、物語、ゲームプレイ要素、キャラクターの特性などを考えます。ユーザーが楽しむ要素を確立し、競合他社との差別化を考慮します。
  2. プランニングとデザイン: ゲームの設計ドキュメントを作成し、ゲームプレイの仕組み、ルール、ゲームエンジンの選択、キャラクターデザイン、ワールドマップ、クエスト、アセット(グラフィック、音楽、効果音など)を計画します。
  3. 開発: ゲームを開発するためのプログラマ、デザイナー、アーティスト、音楽家などのスタッフを採用または手配します。ゲームエンジン(Unity、Unreal Engineなど)を選択し、ゲームをプログラムして開発します。
  4. サーバーのセットアップ: MMORPGでは、オンラインサーバーが不可欠です。サーバーをセットアップし、プレイヤー間の通信、キャラクターデータの管理、セキュリティを確保します。
  5. テストとバグ修正: ゲームをテストし、バグを修正してプレイ可能な状態にします。ベータテスターを募集し、フィードバックを収集して改善を行います。
  6. ゲームプレイの調整: ユーザーエクスペリエンスを向上させるために、ゲームプレイバランスを調整し、新たなコンテンツを追加します。
  7. ローンチ: ゲームを公式にリリースし、プレイヤーに提供します。広告、プレスリリース、ソーシャルメディアなどを活用して宣伝を行います。
  8. サポートとアップデート: ゲームの運用を継続し、プレイヤーからのフィードバックを受け入れてゲームを改善し続けます。新しいコンテンツやアップデートを提供し、コミュニティを維持します。
  9. セキュリティとモデレーション: ゲーム内で不正行為や違反行為を監視し、セキュリティ対策を実施します。モデレーターを雇用して、プレイヤー間の対立を解決します。
  10. モバイルプラットフォームや他のプラットフォームへの展開(任意): ゲームを他のプラットフォームに移植することで、さらに多くのプレイヤーにアクセスを提供します。

MMORPGを開発するプロジェクトは非常に複雑で大規模です。開発者、デザイナー、アーティスト、テスター、サーバーエンジニア、コミュニティマネージャーなど多くのスキルを必要とし、膨大な時間と予算が必要です。また、適切な法的および知的財産権の検討も重要です。

アクションRPGの作り方解説!

アクションRPGの作り方

アクションRPGの作り方には、ゲーム開発の知識が必要です。アクションRPGとは、アクションゲームの要素とRPGの要素を組み合わせたゲームです。オンラインでのプレイが可能なアクションRPGもあります。アクションRPGの制作には、ゲーム開発の知識が必要ですが、初心者でも作成することができます。Unityという統合開発環境を使えば、簡単にアクションRPGを作成できます。また、チュートリアルやオンラインの講座を利用することで基礎的な知識を学ぶことができます。アクションRPGは、プレイヤーが自由に行動できることが魅力の一つです。ゼルダや原神、モンハンなどの有名なアクションRPGを参考にしながら、ゲームのバランスや難易度の調整も重要な要素です。アクションRPGは、初心者でも作成できる魅力的なジャンルの一つです。

Unityを使用したアクションRPGの作成

アクションRPGの制作にはゲーム開発の知識が必要です。アクションRPGとは、アクションゲームの要素とRPGの要素を組み合わせたゲームです。オンラインでのプレイが可能なアクションRPGもあります。

Unityとは、ゲーム開発のための統合開発環境です。Unityを使えば、簡単にアクションRPGを作成することができます。プログラミングの知識がなくてもUnityの操作方法を学ぶことでアクションRPGを作成できます。

アクションRPGの要素の解説

アクションRPGには、戦闘やアイテムの収集、キャラクターの成長などの要素があります。ゼルダや原神、モンハンなどの有名なアクションRPGを参考にすると良いでしょう。ゲームのバランスや難易度の調整も重要な要素です。アクションRPGは、プレイヤーが自由に行動できることが魅力の一つです。シナリオやキャラクターのストーリー性も重要な要素です。オープンワールドやマルチプレイヤー要素の追加も魅力的なアクションRPGの特徴です。

初心者でも作れるアクションRPGのポイント

初心者でもアクションRPGを作成することができます。チュートリアルやオンラインの講座を利用することで基礎的な知識を学ぶことができます。プレイヤーの操作性やゲームの操作方法など、初心者に優しい設計を心掛けましょう。アクションRPGの作り方や制作にはゲーム開発の知識が必要ですが、Unityを使用することで簡単に作成することができます。Unityはゲーム開発のための統合開発環境であり、プログラミングの知識がなくても操作方法を学べばアクションRPGを作成できます。アクションRPGの要素としては、戦闘やアイテムの収集、キャラクターの成長などがあります。有名なアクションRPGのゼルダや原神、モンハンなどを参考にすると良いでしょう。ゲームのバランスや難易度の調整も重要な要素です。アクションRPGはプレイヤーが自由に行動できることが魅力の一つであり、シナリオやキャラクターのストーリー性も重要です。また、オープンワールドやマルチプレイヤー要素の追加も魅力的なアクションRPGの特徴です。

アクションRPGの魅力

アクションRPGは、プレイヤーが自由に行動できることが魅力の一つです。プレイヤーはキャラクターを操作し、戦闘やアイテムの収集、キャラクターの成長など、様々な要素を楽しむことができます。ゼルダや原神、モンハンなどの有名なアクションRPGをプレイし、その世界に没頭することができます。また、アクションRPGはシナリオやキャラクターのストーリー性も重要な要素です。プレイヤーはストーリーに沿って冒険を進め、新しいエリアやキャラクターとの出会いを楽しみます。さらに、オープンワールドやマルチプレイヤー要素の追加によって、他のプレイヤーと協力したり対戦したりすることも可能です。アクションRPGの魅力には多様な要素がありますが、いずれもプレイヤーの自由な行動や物語への没頭感を追求した結果です。アクションRPGはその魅力のため、多くのユーザーに支持され続けています。

VRMMOの作り方

VRMMOとは、仮想世界でのマルチプレイヤーオンラインロールプレイングゲームのことです。VRMMOを開発するためには、以下のようなステップが必要になります。

  1. コンセプトの策定 まずは、どのようなVRMMOを開発するのか、ターゲットユーザーは誰なのか、どのようなゲームデザインにするのかなど、コンセプトを明確にすることが重要です。
  2. プランニング ゲームのルール、世界観、キャラクター、クエスト、アイテム、システムなど、VRMMOに必要な要素をプランニングし、設計書を作成します。
  3. ゲームエンジンの選定 VRMMOを開発するためには、専用のゲームエンジンを使用する必要があります。UnityやUnreal EngineなどのエンジンがVRMMO開発には適しています。
  4. アセットの作成 ゲーム内で使用するアセット(3Dモデル、アニメーション、音楽、効果音など)を作成します。
  5. プログラミング ゲーム内での動作やシステムの開発には、プログラミングが必要になります。開発言語としてはC#やC++などが使用されます。
  6. テスト 開発が完了したら、実際にテストプレイを行い、バグや不具合を修正します。
  7. サーバーの構築 VRMMOは、オンラインでプレイすることができるため、サーバーの構築が必要になります。サーバーの構築には、セキュリティやスケーラビリティなどに配慮する必要があります。

VRMMOの開発は、大規模なプロジェクトになるため、複数の人々によるチームでの開発が必要になります。多様なスキルや知識が必要であるため、チーム内での役割分担が重要になります。

ソーシャルゲームの作り方

ソーシャルゲームを作成するための基本的な手順を以下に示します。

ゲームのアイデアの構築: 最初に、どのようなゲームを作りたいのか、どのような要素や目標を持つかを明確にする必要があります。ゲームのジャンル、プレイヤーの目標、プレイの流れなどを考えます。

プラットフォームの選択: ゲームを提供するプラットフォームを選択します。モバイルデバイス向けのアプリケーション、Webブラウザ、ソーシャルメディアプラットフォームなど、利用者層や予算に応じて最適なプラットフォームを選びましょう。

開発環境のセットアップ: ゲームを開発するための環境を整えます。プログラミング言語やゲームエンジンの選択、必要なツールやリソースのインストールなどを行います。

ゲームデザインの作成: ゲームデザインの要素を詳細に定義します。キャラクター、レベルデザイン、ゲームプレイのルール、報酬システムなど、ゲームの仕組みを設計します。

プログラミングと開発: ゲームのプログラミングを始めます。選択したプログラミング言語やゲームエンジンを使用して、ゲームの基本的な機能を実装します。プレイヤーの操作、アイテムの管理、ゲーム内の進行などをプログラムします。

グラフィックとサウンドの作成: ゲームの見た目や音声効果を作成します。キャラクターデザイン、背景アート、アニメーション、効果音など、ゲームのビジュアルとオーディオ要素を開発します。

テストとデバッグ: ゲームのテストを行い、不具合やバグを修正します。実際にゲームをプレイして、プレイヤーの体験やパフォーマンスの問題を特定し、修正します。

リリースと運営: ゲームを公開するために、適切なストアやプラットフォームに申請します。ゲームのプロモーションやマーケティングも行い、ユーザーのフィードバックを収集しながら運営していきます。

これらの手順はゲーム開発の一般的なプロセスですが、実際の開発は非常に複雑で時間がかかる場合もあります。チームメンバーの役割分担やスケジュール管理も重要です。また、ゲーム開発にはプログラミングスキルやデザインスキルが必要ですので、必要なスキルを身につけることも重要です。

http://unity3d.com/jp/

http://unity3d.com/jp/
http://www.sakura.ne.jp/domain/
https://www.onamae.com/domain/account_reminder/id
http://dotinstall.com/lessons/basic_android_v2/31001
http://3dnchu.com/archives/ue4-cell-shading/
https://aiming-inc.com/ja/jobs/career/engineer/onlinegame-client/
https://developers.google.com/vr/unity/reference/class/gvr-controller#properties
chrome://history/
http://www.raitonoveru.jp/index.htm
https://teratail.com/questions/15096
http://qiita.com/h_hiro_/items/a83a8fd2391d4a3f0e1c
https://www.assetstore.unity3d.com/jp/#!/content/54491
https://developer.mozilla.org/ja/docs/Web/API
http://dotinstall.com/lessons/basic_android_v2/31002
http://www.inside-games.jp/article/2014/04/09/75871.html
http://3dnchu.com/archives/ue4-cell-shading/
http://www.zephyrosanemos.com/windstorm/current/live-demo.html
https://iway.isao.net/sega/dupcheck2.cgi#acc
http://pso2.swiki.jp/
Unity – 3Dプログラミングを学びたい(15096)|teratail
3Dプログラミングを学びたい

Unity 3DCG WebGL
2015/08/25 15:37 投稿
2015/08/26 08:49 編集
 sima
sima
score 130
3
回答
0
評価
745
view

0
0
0
3Dプログラミングの勉強をはじめたいです。

まわりの知人たちに訪ねてみたところ、Unityを推されたのですが、
私はあまりゲーム制作に興味がもてません。

Unityといえば、ゲームをつくるためにあるというイメージが強くあるのですが、
一方、Unityをゲーム以外にも活用している事例などもあると耳にします。
具体的にUnityのゲーム以外の活用例をご存知でしたら、どんなものがあるのか教えて頂きたいです。

私は主にメディアアートの分野に興味があり、恥ずかしながら将来的にはライゾマティクスやPARTYのような、いわゆるカッコイイ系のインタラクティブコンテンツの制作に携わりたいと考えています。
そのため、表現手法として、3Dプログラミングを学びたいと考えています。3Dプログラミングを初心者からはじめたい人にとって、おすすめの言語やツールをお教え頂きたいです。

・WebGL(three.js)
・Processing

程度であれば、少しだけかじったことがあります。

みなさん、本当にためになる意見を頂き、ありがとうございました!
決めるのが難しかったのですが、最も具体度の高い回答をくださったpikovoltさんにベストアンサーをしました!

クリップGood 0
評価を下げる(0)
新着順評価が高い順古い順
回答(全3件)
ベストアンサー
2

たぶん挙げている集団の作品を考えると、ツールというか重要な部分はC++とかで自作じゃないでしょうか。
(ものによって、MAXやLiveで同期取ったりはしているかもしれませんが)

自作の全部入り系という意味ではopenFrameworksがお勧めです。
C++のライブラリなのでC++を覚える必要がありますが、いろんな機能を連携させるのを主眼にしたフレームワーク作りが行われています。

ただ個人的にはCycling’74のMAXを面白がれるなら、アリかも。と思います。かなりアカデミックな分野に近いところの技術になりますが、いろいろなモジュールを連動させる系統としては歴史のあるソフトです。
体験版で試してみるか、同じ系統のPureDataを使ってみることをお勧めします。
こっちも、自分でオブジェクトを作り始めるにはC++が必要になってきます。
あと音楽を連動させる場合は、Ableton Live 及び Max for Liveもお勧めです。

あと3Dソフトですが、Blenderの使い方くらいは覚えた方が良いです。
なにかデータを表示させたい場合に、計算で自動生成した幾何学模様しか出なくてもよければソフト不要と言えますが…普通なにかの形状を表示させたりすると思うので。
標準でどんなデータ形式が扱えて、UIでどんな操作ができるのか、くらいは最低限知っておきましょう。

ところで、
質問者さんの挙げているクリエイティブ系の分野だと、1人でどうこう考える前にまずは同好の士を求めた方が良いと思います。
もし学生さんでしたら、そういう人が集まる大学を探してその大学に必要な基本スキルと、自分の好きな分野をはっきりさせるのが先です。尖った奴らと意見を戦わせて、自分の土台をしっかり固める中で必要なスキルとして3DCG技術が必要な状況でしたら、僕は先に挙げたようなフレームワークやツールをお勧めします。
2015/08/25 21:17 投稿
退会済みユーザー
退会済みユーザー
sima  sima
2015/08/26 03:29 編集
とてもくわしい回答をありがとうございます!
回答者様のおっしゃる通り、自分のやりたいことをしっかり整理したいと思います。

とりあえず、openFrameworksとBlenderのことを調べてみたいと思います。

フレームワークという概念がいまいち分からないのですが、OpenGLや画像処理なんかを基本的な知識だけあれば、簡単に(直感的に)使えるというような認識でいいのでしょうか?たとえば、上に挙げたUnityなんかは複雑な物理演算の知識がなくても、ある程度のものであれば制作できると思うのですが、そういったイメージで問題ないでしょうか?

初歩的な質問ですみません。
退会済みユーザー  退会済みユーザー
2015/08/26 04:38 編集
 openFrameworks(oF)は別々に提供されているライブラリの統合を目的にしていて、インターフェースをある程度まとめてある。という感じですがバラバラに覚えるよりは楽だし、機能を探し歩く手間も少ないです。

 フレームワークというと、作業に対する枠組みを用意して作業を定型化・効率化するのが目的ですが、oFはまだそこまで纏めきれてない印象です。ただ初期化処理とか纏まってるだけでも初期導入時には助かるので使った方が楽かと。

>簡単に(直感的に)使えるというような認識でいいのでしょうか?
 ミドルウェア的に高度に機能をラップして、ハンドリングし易くしている感じでもないと思います。単に導入を楽にする感じです。

 もっとミドルウェア的なものがお望みだとUnity、少し細かいところに手を入れるのがお望みならUE4(UnrealEngine4)を試してみてはどうでしょうか。
sima  sima
2015/08/26 08:51
なるほど、openFrameworksの勉強をすれば、その周辺の知識もある程度いっぺんに学習できるということで効率が良いんですね。

この質問で、自分のやりたいことを実現するには、Unityよりも他の言語のほうがよさそうな感じがしました。もちろんUnityも触ってみますが。

いろいろと教えてくださり、本当にありがとうございました!!

2

Unityといえば、ゲームをつくるためにある
おっしゃる通り、基本的にゲームエンジンですが、
ゲーム以外にも活用できるというのはそうでしょう。

Unityのゲーム以外の活用例
初音ミクが人気ロックバンド「BUMP OF CHICKEN」とコラボ、PV制作に使われたUnity

映像分野で有名な例では上記があります。

3Dプログラミングを初心者からはじめたい人にとって、おすすめの言語やツール

・WebGL(three.js)
・Processing

これらはそのままおすすめできる言語です。
とくにProcessing.jsを使えば、JavaScriptで扱えて手軽です。

カッコイイ系のインタラクティブコンテンツの制作
コンテンツが動画中心か、操作中心かで方向性が異なりますが、
動画寄りでしたら、動画編集ソフトが重要になると思います。

たとえばAviUtlとか、商業制作であればAfter Effectsとか。

それから、Blenderやメタセコイアなど、3Dのモデリングソフト。
ただ自分でモデリングせず、なるべく素材を使う手もあります。

ですから、どんなツールを使うかというのは、
プログラミング、モデリング、エディティングなど、
どの部分に重心を置くか、質問者様の制作方針によります。

2015/08/25 19:05 投稿
 LLman
LLman
score 1159
フォロー
sima  sima
2015/08/26 03:33
回答ありがとうございます!

私は、3Dモデリングで精巧なCGグラフィックをつくりたいといったわけではなく、どちらかというとインタラクティブなインスタレーション作品のプログラマーとして携わりたいです。

LLman  LLman
2015/08/26 06:10
>インタラクティブなインスタレーション作品のプログラマー
でしたらやはり、Processingが一番それに向く言語だと思います。

それからProcessingの周辺、インタラクティブアートに関係する言語には、
「p5.js」「Pure Data」「vvvv」「Context Free Art」などがあります。
実際に使うかどうかはともかく、一応ご紹介しておきます。

「openFrameworks」はC++で組むため、本格的ですがハードルは高くなります。
商業作品などで性能が求められる場合、腰をすえて取り組む必要があるでしょう。

Unityは、インタラクティブ性がゲームに近くなる場合、とくに効率的でしょう。
たとえば、建物の中で人に話しかける仮想空間を提示する作品とか。
sima  sima
2015/08/26 08:45
ありがとうございます!
インタラクティブアート周辺にはそんなにたくさん言語があったんですね!
なるほど、C++…とりあえずドットインストールでもやってみます!

この質問で、自分のやりたいことを実現するには、Unityよりも他の言語のほうがよさそうな感じがしました。もちろんUnityも触ってみますが。

いろいろと教えてくださり、本当にありがとうございました!!

1

Unityは、Rigidbody(物理挙動)という属性をオブジェクトに与えることができます。
これを使うと「物体が重力によって落下する」「壁にぶつかって跳ね返る」といった動作を、自分で物理学的計算をしなくても作ることができます。
なのでシミュレーション的な使い方もできます。計算精度の点では充分ではありませんが、“お手軽な可視化ツール”として使っています。

オブジェクトの質感を変えたり、ライティング周りも簡単にできます。
無償版でもかなりの機能が使えるようですので、ためしに使ってみるといいですよ。
結構楽しめます。
2015/08/25 23:30 投稿
 mie
mie
score 193
フォロー
sima  sima
2015/08/26 03:10
なるほど!以外な使い方があるんですね!参考になります!