跳转到内容
打开/关闭菜单
  • 169 条目
  • 16 文件
  • 6 用户
  • 3608 编辑
Novark
打开/关闭外观设置菜单
打开/关闭个人菜单
未登录
未登录用户的IP地址会在进行任意编辑后公开展示。

弥恩诸世:修订间差异

来自Novark
wiki-js>Cyanidion
import from wiki.js: updated row=112 (content = post-action snapshot)
wiki-js>Cyanidion
import from wiki.js: updated row=113 (content = post-action snapshot)
第95行: 第95行:
   <!-- {blockquote:.is-info} -->
   <!-- {blockquote:.is-info} -->
   #### 示例
   #### 示例
<!-- 弥恩世界 - 交互式意识形态坐标图 -->
<!-- 将此代码块直接复制到您的编辑器中即可使用 -->


<!-- 第一部分:坐标图容器与控件 -->
<div class="ideology-chart-container" style="margin: 2rem 0; padding: 1rem; background: #f8f9fa; border-radius: 8px; border: 1px solid #dee2e6;">
    <h3 style="color: #8B7355; border-bottom: 2px solid #8B7355; padding-bottom: 0.5rem;">弥恩世界意识形态动态坐标图</h3>
    <p style="color: #666; font-size: 0.9rem; margin-bottom: 1rem;">
        拖拽蓝色定位点可调整其位置。点击下方表格中的“定位”按钮可高亮对应点。横轴(X):<strong>激进变革(左)← → 传统守序(右)</strong>;纵轴(Y):<strong>主动驾驭(上)← → 敬畏顺从(下)</strong>
    </p>
    <!-- 坐标图画布 -->
    <div class="chart-canvas" style="position: relative; width: 100%; height: 500px; background: white; border: 2px solid #333; border-radius: 4px; overflow: hidden;">
        <!-- 坐标轴与网格线 -->
        <div class="gridline" style="position: absolute; left: 50%; top: 0; width: 1px; height: 100%; background: rgba(0,0,0,0.1); transform: translateX(-50%);"></div> <!-- 垂直中线 -->
        <div class="gridline" style="position: absolute; left: 0; top: 50%; width: 100%; height: 1px; background: rgba(0,0,0,0.1); transform: translateY(-50%);"></div> <!-- 水平中线 -->
        <!-- 坐标轴标签 -->
        <div style="position: absolute; left: 10px; top: 10px; color: #CC0000; font-weight: bold;">激进变革</div>
        <div style="position: absolute; right: 10px; top: 10px; color: #2E4D2B; font-weight: bold;">传统守序</div>
        <div style="position: absolute; left: 10px; top: 10px; color: #4682B4; font-weight: bold; transform: translateY(20px);">主动驾驭</div>
        <div style="position: absolute; left: 10px; bottom: 10px; color: #B8860B; font-weight: bold;">敬畏顺从</div>
       
        <!-- 动态定位点将在此生成 -->
        <div id="chart-points-container"></div>
    </div>
    <!-- 坐标显示与控制面板 -->
    <div style="margin-top: 1rem; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 1rem;">
        <div>
            <strong>当前选中:</strong><span id="selected-point-name">无</span>
            <span id="selected-point-coords" style="margin-left: 1rem; color: #666; font-family: monospace;">(X: -, Y: -)</span>
        </div>
        <div>
            <button onclick="resetAllPoints()" style="padding: 0.4rem 0.8rem; background: #6c757d; color: white; border: none; border-radius: 4px; cursor: pointer;">重置所有点到默认位置</button>
            <button onclick="exportCoordinates()" style="margin-left: 0.5rem; padding: 0.4rem 0.8rem; background: #28a745; color: white; border: none; border-radius: 4px; cursor: pointer;">导出当前坐标数据</button>
        </div>
    </div>
</div>
<!-- 第二部分:可编辑的实体数据表格 -->
<div style="margin: 2rem 0; overflow-x: auto;">
    <h4 style="color: #8B7355;">意识形态实体坐标管理表</h4>
    <table id="ideology-table" style="width: 100%; border-collapse: collapse; font-size: 0.9rem; margin-top: 1rem;">
        <thead>
            <tr style="background-color: #e9ecef;">
                <th style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: left;">实体</th>
                <th style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: left;">意识形态标签</th>
                <th style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">当前坐标</th>
                <th style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">默认坐标</th>
                <th style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">操作</th>
            </tr>
        </thead>
        <tbody>
            <!-- 每一行对应一个实体,可以随意添加 -->
            <tr id="row-1">
                <td style="padding: 0.75rem; border: 1px solid #dee2e6;"><strong>[[赤环学会]]</strong></td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; color: #CC0000;">革命理性主义</td>
                <td class="coord-cell" style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace;">0.15, 0.85</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace; color: #999;">0.15, 0.85</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">
                    <button onclick="focusPoint('point-1')" style="padding: 0.25rem 0.5rem; background: #007bff; color: white; border: none; border-radius: 3px; cursor: pointer; margin-right: 0.25rem;">定位</button>
                    <button onclick="resetPoint('point-1', 0.15, 0.85)" style="padding: 0.25rem 0.5rem; background: #ffc107; color: black; border: none; border-radius: 3px; cursor: pointer;">重置</button>
                </td>
            </tr>
            <tr id="row-2">
                <td style="padding: 0.75rem; border: 1px solid #dee2e6;"><strong>[[铸铁公约]]</strong></td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; color: #4682B4;">技术威权主义</td>
                <td class="coord-cell" style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace;">0.85, 0.80</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace; color: #999;">0.85, 0.80</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">
                    <button onclick="focusPoint('point-2')" style="padding: 0.25rem 0.5rem; background: #007bff; color: white; border: none; border-radius: 3px; cursor: pointer; margin-right: 0.25rem;">定位</button>
                    <button onclick="resetPoint('point-2', 0.85, 0.80)" style="padding: 0.25rem 0.5rem; background: #ffc107; color: black; border: none; border-radius: 3px; cursor: pointer;">重置</button>
                </td>
            </tr>
            <tr id="row-3">
                <td style="padding: 0.75rem; border: 1px solid #dee2e6;"><strong>[[林语会]]</strong></td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; color: #B8860B;">灵性公社主义</td>
                <td class="coord-cell" style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace;">0.20, 0.20</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center; font-family: monospace; color: #999;">0.20, 0.20</td>
                <td style="padding: 0.75rem; border: 1px solid #dee2e6; text-align: center;">
                    <button onclick="focusPoint('point-3')" style="padding: 0.25rem 0.5rem; background: #007bff; color: white; border: none; border-radius: 3px; cursor: pointer; margin-right: 0.25rem;">定位</button>
                    <button onclick="resetPoint('point-3', 0.20, 0.20)" style="padding: 0.25rem 0.5rem; background: #ffc107; color: black; border: none; border-radius: 3px; cursor: pointer;">重置</button>
                </td>
            </tr>
            <!-- 您可以直接复制上面的行,修改以下变量来添加新实体:
                - 修改所有 id 中的数字(如 row-4, point-4)
                - 修改实体名称和意识形态标签
                - 修改默认坐标(两次出现)
                - 修改按钮函数中的参数('point-4', x, y)
            -->
        </tbody>
    </table>
    <p style="color: #666; font-size: 0.85rem; margin-top: 0.5rem;">提示:要添加新实体,请复制一行并修改所有相关数据。坐标范围:0.0 到 1.0。</p>
</div>
<!-- 第三部分:核心交互脚本 -->
<script>
// 1. 实体数据定义 (可以在这里添加新实体)
const entities = [
    {id: 'point-1', name: '[[赤环学会]]', color: '#CC0000', defaultX: 0.15, defaultY: 0.85, rowId: 'row-1'},
    {id: 'point-2', name: '[[铸铁公约]]', color: '#4682B4', defaultX: 0.85, defaultY: 0.80, rowId: 'row-2'},
    {id: 'point-3', name: '[[林语会]]', color: '#B8860B', defaultX: 0.20, defaultY: 0.20, rowId: 'row-3'}
    // 添加新实体示例:
    // ,{id: 'point-4', name: '[[您的实体]]', color: '#颜色代码', defaultX: 0.5, defaultY: 0.5, rowId: 'row-4'}
];
// 2. 初始化所有定位点
function initPoints() {
    const container = document.getElementById('chart-points-container');
    container.innerHTML = '';
   
    entities.forEach(entity => {
        // 从表格中读取当前坐标(如果已经调整过)
        const coordCell = document.querySelector(`#${entity.rowId} .coord-cell`);
        let currentX = entity.defaultX, currentY = entity.defaultY;
        if (coordCell && coordCell.textContent) {
            const parts = coordCell.textContent.split(',').map(s => parseFloat(s.trim()));
            if (parts.length === 2 && !isNaN(parts[0]) && !isNaN(parts[1])) {
                currentX = parts[0];
                currentY = parts[1];
            }
        }
       
        // 创建定位点元素
        const point = document.createElement('div');
        point.id = entity.id;
        point.className = 'chart-point';
        point.style.position = 'absolute';
        point.style.width = '16px';
        point.style.height = '16px';
        point.style.backgroundColor = entity.color;
        point.style.border = '2px solid white';
        point.style.borderRadius = '50%';
        point.style.cursor = 'move';
        point.style.boxShadow = '0 2px 4px rgba(0,0,0,0.2)';
        point.style.zIndex = '10';
        point.style.transform = 'translate(-50%, -50%)';
       
        // 计算位置(百分比)
        point.style.left = `${currentX * 100}%`;
        point.style.top = `${(1 - currentY) * 100}%`; // 反转Y轴,使0在上,1在下
       
        // 添加悬停提示
        point.title = `${entity.name} (${currentX.toFixed(2)}, ${currentY.toFixed(2)})`;
       
        // 添加拖拽功能
        makeDraggable(point, entity);
       
        // 添加点击事件
        point.addEventListener('click', function(e) {
            e.stopPropagation();
            updateSelectedPoint(entity.name, currentX, currentY);
            highlightPoint(entity.id);
            highlightRow(entity.rowId);
        });
       
        container.appendChild(point);
    });
}
// 3. 拖拽功能实现
function makeDraggable(element, entity) {
    let isDragging = false;
    let offsetX, offsetY;
    const container = element.parentElement;
   
    element.addEventListener('mousedown', startDrag);
   
    function startDrag(e) {
        isDragging = true;
        const rect = container.getBoundingClientRect();
        const pointRect = element.getBoundingClientRect();
       
        // 计算鼠标相对于点中心的位置
        offsetX = e.clientX - pointRect.left;
        offsetY = e.clientY - pointRect.top;
       
        document.addEventListener('mousemove', drag);
        document.addEventListener('mouseup', stopDrag);
       
        e.preventDefault();
        updateSelectedPoint(entity.name, 0, 0);
        highlightPoint(entity.id);
        highlightRow(entity.rowId);
    }
   
    function drag(e) {
        if (!isDragging) return;
       
        const rect = container.getBoundingClientRect();
       
        // 计算新位置(限制在容器内)
        let newLeft = e.clientX - rect.left - offsetX;
        let newTop = e.clientY - rect.top - offsetY;
       
        newLeft = Math.max(0, Math.min(newLeft, rect.width));
        newTop = Math.max(0, Math.min(newTop, rect.height));
       
        // 转换为坐标值 (0-1)
        const x = newLeft / rect.width;
        const y = 1 - (newTop / rect.height); // 反转Y轴
       
        // 更新点位置
        element.style.left = `${x * 100}%`;
        element.style.top = `${(1 - y) * 100}%`;
       
        // 更新表格和提示
        updateTableCoordinates(entity.rowId, x, y);
        element.title = `${entity.name} (${x.toFixed(2)}, ${y.toFixed(2)})`;
        updateSelectedPoint(entity.name, x, y);
    }
   
    function stopDrag() {
        isDragging = false;
        document.removeEventListener('mousemove', drag);
        document.removeEventListener('mouseup', stopDrag);
    }
}
// 4. 辅助函数
function updateTableCoordinates(rowId, x, y) {
    const coordCell = document.querySelector(`#${rowId} .coord-cell`);
    if (coordCell) {
        coordCell.textContent = `${x.toFixed(2)}, ${y.toFixed(2)}`;
    }
}
function updateSelectedPoint(name, x, y) {
    document.getElementById('selected-point-name').textContent = name;
    document.getElementById('selected-point-coords').textContent = `(X: ${x.toFixed(2)}, Y: ${y.toFixed(2)})`;
}
function highlightPoint(pointId) {
    // 移除所有高亮
    document.querySelectorAll('.chart-point').forEach(p => {
        p.style.boxShadow = '0 2px 4px rgba(0,0,0,0.2)';
        p.style.transform = 'translate(-50%, -50%)';
    });
   
    // 高亮选中的点
    const point = document.getElementById(pointId);
    if (point) {
        point.style.boxShadow = '0 0 0 3px rgba(0,123,255,0.5), 0 2px 8px rgba(0,0,0,0.3)';
        point.style.transform = 'translate(-50%, -50%) scale(1.2)';
        point.style.zIndex = '100';
    }
}
function highlightRow(rowId) {
    // 移除所有行高亮
    document.querySelectorAll('#ideology-table tbody tr').forEach(row => {
        row.style.backgroundColor = '';
    });
   
    // 高亮选中的行
    const row = document.getElementById(rowId);
    if (row) {
        row.style.backgroundColor = 'rgba(0,123,255,0.1)';
    }
}
function focusPoint(pointId) {
    const entity = entities.find(e => e.id === pointId);
    if (entity) {
        const coordCell = document.querySelector(`#${entity.rowId} .coord-cell`);
        if (coordCell && coordCell.textContent) {
            const parts = coordCell.textContent.split(',').map(s => parseFloat(s.trim()));
            if (parts.length === 2) {
                updateSelectedPoint(entity.name, parts[0], parts[1]);
            }
        }
        highlightPoint(pointId);
        highlightRow(entity.rowId);
    }
}
function resetPoint(pointId, defaultX, defaultY) {
    const entity = entities.find(e => e.id === pointId);
    if (!entity) return;
   
    // 更新表格
    updateTableCoordinates(entity.rowId, defaultX, defaultY);
   
    // 重新初始化点(会从表格读取新坐标)
    initPoints();
   
    // 更新选中显示
    updateSelectedPoint(entity.name, defaultX, defaultY);
    highlightPoint(pointId);
    highlightRow(entity.rowId);
}
function resetAllPoints() {
    if (confirm('确定要重置所有点到默认位置吗?')) {
        entities.forEach(entity => {
            updateTableCoordinates(entity.rowId, entity.defaultX, entity.defaultY);
        });
        initPoints();
        updateSelectedPoint('无', 0, 0);
        document.querySelectorAll('#ideology-table tbody tr').forEach(row => {
            row.style.backgroundColor = '';
        });
    }
}
function exportCoordinates() {
    let exportText = "弥恩意识形态坐标数据\n====================\n\n";
    entities.forEach(entity => {
        const coordCell = document.querySelector(`#${entity.rowId} .coord-cell`);
        if (coordCell) {
            exportText += `${entity.name}: ${coordCell.textContent}\n`;
        }
    });
    exportText += `\n导出时间: ${new Date().toLocaleString()}`;
   
    // 复制到剪贴板(简单方案)
    const textArea = document.createElement('textarea');
    textArea.value = exportText;
    document.body.appendChild(textArea);
    textArea.select();
    try {
        document.execCommand('copy');
        alert('坐标数据已复制到剪贴板!\n\n' + exportText);
    } catch (err) {
        alert('无法自动复制,请手动复制以下内容:\n\n' + exportText);
    }
    document.body.removeChild(textArea);
}
// 5. 页面加载完成后初始化
document.addEventListener('DOMContentLoaded', function() {
    initPoints();
});
</script>
<!-- 第四部分:使用说明(可折叠) -->
<details style="margin-top: 2rem; padding: 1rem; background: #f1f3f4; border-radius: 8px;">
    <summary style="font-weight: bold; color: #8B7355; cursor: pointer;">📘 使用说明与扩展指南</summary>
    <div style="margin-top: 1rem; line-height: 1.6; font-size: 0.9rem;">
        <h4>核心功能</h4>
        <ul>
            <li><strong>拖拽定位</strong>:直接在坐标图上拖拽蓝色圆点,实时调整其位置。</li>
            <li><strong>表格联动</strong>:点击表格中的“定位”按钮,坐标图上对应的点会高亮显示。</li>
            <li><strong>坐标管理</strong>:表格中的坐标会随拖拽自动更新,支持单个重置和全部重置。</li>
            <li><strong>数据导出</strong>:点击“导出当前坐标数据”可将所有坐标复制到剪贴板。</li>
        </ul>
       
        <h4>如何添加新实体(势力/组织)</h4>
        <ol>
            <li>在表格部分找到注释处,复制一行表格代码,例如复制 <code>&lt;tr id="row-3"&gt;...&lt;/tr&gt;</code>。</li>
            <li>将新行的所有数字递增(如 <code>row-4</code>、<code>point-4</code>)。</li>
            <li>修改实体名称、意识形态标签(确保使用正确的<span data-tooltip="请严格遵守色码表">颜色代码</span>)。</li>
            <li>设置默认坐标(两个位置)。</li>
            <li>在 JavaScript 部分的 <code>entities</code> 数组中添加一行新数据,格式参照现有条目。</li>
        </ol>
       
        <h4>如何与世界观整合</h4>
        <ul>
            <li>此坐标图可以放置在您的 <span style="color: #8B7355;">[[世界观设定]]</span> 核心页面。</li>
            <li>每个实体名称都使用了 <code>[[内部链接]]</code> 语法,确保点击可跳转到对应页面。</li>
            <li>导出的坐标数据可以用于 <span style="color: #8B7355;">[[叙事记录]]</span>,记录意识形态的演变。</li>
            <li>鼓励在实体描述页面引用其坐标位置,例如:“根据意识形态坐标图,本组织位于 <strong>(0.35, 0.60)</strong>,属于 <span style="color: #FF7F50;">渐进改良主义</span> 象限。”</li>
        </ul>
       
        <p style="margin-top: 1rem; padding: 0.75rem; background: #e7f4e4; border-left: 4px solid #28a745;">
            <strong>提示:</strong> 此工具完全基于标准 HTML/CSS/JavaScript,兼容绝大多数支持自定义 HTML 的 Wiki 平台和编辑器。如果遇到问题,请确保您的平台允许执行内联脚本。
        </p>
    </div>
</details>

2026年4月6日 (一) 11:19的版本

  1. **弥恩诸世**

在此地的住民口中,**弥恩**也即天地之意,而“**弥恩文明**”便顺理成章地成为他们用以自称的称谓。

    • 弥恩文明**与恶意相伴而生——诡异的**古孽**盘踞在疆域之外,狂暴的**龙族**潜伏于深山林涧,古怪的**智械**镇守着古代废墟……在这被归为“**灾厄**”的三重恶意环伺之下,**弥恩文明**挣扎而顽强地生存成长,历经漫长的**221纪**,疆域自**昭旦平原**东扩至无垠沧海,南达广袤雨林,北抵连绵沙碛,更向西将旗帜插至以**厄南峰**为核心的**天山山脉**脚下。

横跨六千万平方公里的辽阔大地上,分布着多个以各自“中央建构”为核心的广袤大区。幅员如此辽阔,人口如此驳杂,致使诸区风貌迥异,宛若云泥。而曾经统御诸区、率领众生抗击**灾厄**的,是一个永恒而伟大的帝国——以文明之名冠称的“**弥恩帝国**”。

然而,**七纪**之前,帝国倾覆。辉煌的统一文明化为齑粉。破碎山河之间,军阀、城邦、国度如野草般滋长,在昔日帝国的遗骸之上挣扎求生。而你们的冒险,正要从这片混沌的世间拉开序幕。

    1. 历法
    • 弥恩**诸地子民每日经历着日出于东方,落于西方的生活,那照耀此星的太阳,被当地人唤为**芙莱斯塔**——常简称为**芙莱**。而当夜幕降临,唤为**伊莱克塔**——也即**伊莱**——的月亮便接替**芙莱**之位,高悬穹苍之中。夜空中常可见一道横贯月面的淡灰色弧形暗影,那便是环绕**弥恩**运行的**维洛斯星带**,静静横亘于大地与月亮之间。

在**芙莱**、**伊莱**与**维洛斯星带**之外,**弥恩**的星空中还高悬着被称为**宇域神宿**的二十一个星体。它们环绕**芙莱**运行,被认为是二十一位神明的居所。其中最为特殊的,是象征知识与起源之神**伊斯普洛尔**的**启明之星**。这颗拖曳淡蓝色彗尾的星辰,与**弥恩**轨道几乎重合,却逆向而行。每一**纪年**,**伊斯普洛尔**会与**弥恩**擦肩两次:第一次在**纪元日**,即**启蛰时节**开启之际;第二次则在**炎焚时节**末尾、**素秋时节**初临之时,标志着**纪程**过半,气候由酷热转向温和。

**弥恩通行历法**,正是依据大地在星空间运行的规律而制定。一日共三十六小时,划分如下:0至8时为凌晨,8至12时为晨分,12至16时为上午,16至18时为正午,18至22时为下午,22至28时为夜分,28至36时为夜晚。伴随**弥恩**的**伊莱**,其一次完整的月相周期约为三十日,故定三十日为一**月**。每六十四**月**,**弥恩**完成一次环绕**芙莱**——那高悬远空的湛蓝艳阳——的**公转周期**,此一轮回称为一**纪年**。

因**公转周期**并非恰好六十四**月**,每**纪年**之始以**启明之星**、**弥恩**与**芙莱**三星共线为准,此日被定为**纪元日**。**定纪**是**弥恩**规范**节历**的重要流程,除依据当**纪年**天象赋予专属**纪年**名外,亦负责**置闰**之调整。此外,为区分各**月**间显著的气候差异,**弥恩通行历法**在**纪年**与**月**之间设有**节历**,每八月为一**时节**,共分八节,依次为:冻土复苏、深雪融化的**启蛰时节**;气候温和,百花齐放的**芳华时节**;多雨且天气骤变的**清霖时节**;气温骤升、野火频发的**炎焚时节**;由热转寒、天气稳定的**素秋时节**;气温转寒、昼夜温差显著的**霜降时节**;气温剧降、风雪不止的**玄英时节**;以及每纪最后八月,流水凝结、万物凝滞的**归藏时节**。

一套标准的**弥恩通行历法**日期,书写格式即为:XXX**纪年**XX**时节**X**月**X日。


    1. 位面
    • 弥恩**大陆是一个纯粹的单一世界,所有故事均发生于唯一的**物质位面**(亦称主位面)之内。此位面涵括世间一切存在:自地底深处的幽暗地域,延伸至苍穹之上的神域,乃至由**魔法**构筑的各类临时空间,皆归属于**物质位面**的范畴。

尽管**物质位面**的定义明确清晰,与之相对的**非物质位面**在**弥恩**却仍属未解之谜。其是否存在,至今仍无定论。

对**非物质位面**的探讨,源于对**异界存在**的观察。这些存在——无论是弱小的**元素生物**,抑或强大的**异界宗主**——虽可经由**魔网**召唤至**物质位面**,并施加真实可见的影响,却无一能准确描述其来源位面的样貌。

任何**异界存在**一旦尝试描述**非物质位面**,即会陷入不可逆的思维错乱。与此同时,**物质位面**的生灵亦无法以任何方式传送或观测至**非物质位面**。因此,**非物质位面**的存在本身,处于“无法证实”的状态。

基于上述设定,**弥恩**的位面模型认为:一切实体仅存于**物质位面**,其外的**非物质位面**仅为概念性存在。无论其形态如何光怪陆离,与**物质位面**的关联何等复杂,对**弥恩**的生灵而言,皆属不可触及、不可认知之域。

在实际运作中,**弥恩**学界为诠释某些**次元魔法**效应,仍以推理方式定义了多种位面。这些描述并非亲眼所见,而是基于对**非物质位面**存在的推测所构建的理论框架。

> **【规则适配说明】** > - 你无法以任何方式观测或传送至**非物质位面**。 > - 你无法通过召唤物获取对**非物质位面**的准确描述。 > - 异界生物仅在受到观测或与物质位面相互作用时才“存在”。它们可被召唤、遣返或重新召唤,并能与物质世界沟通,但仅拥有对自身来源的“感觉”,而无清晰的“认知”。 > - 半位面是上述限制的唯一例外,其本质属于物质位面所衍生的额外空间。 > - PHB及其拓展中所述的大部分位面,在弥恩中皆以“不可抵达但可互动”的形式存在。你可自其中召唤生物、获取力量与指引,此设定不影响绝大多数规则的使用。 >

    1. 基调
    • 弥恩**世设与传统的奇幻世界存在显著差异。其核心灵感源自现实世界的**一战前期**,并对个人武力——无论是**奥术**还是体术所能达到的极限(即等级上限)——施加了更为严苛的限制。**魔法**并非总是可靠,**奥术**与**神术**时有失效,甚至可能引发灾难性后果。

然而,这并非一个魔法稀有的世界。相反,在**生产力**发展的推动下,魔法早已摆脱了源于古代**神秘学**的偶发性和私有性,成为一种得到充分开发和利用的、普及化的集体智慧与**资源**。这个世界从不缺少宏大的奇幻景致与**奇迹**,但与许多传统设定不同,这些奇迹极少由某个强大的个体单独创造。在这片生活着数亿人口、幅员辽阔的**大陆**上,个体的力量是有限且微小的。简而言之,**弥恩**是一个更为“**现实**”的世设。 这并不意味着玩家角色会处处受限或感到挫败。在难以成为传统“个人英雄”的**弥恩**,冒险的核心动机应源于与这片大陆历史进程的深切联结——小至一个**NPC**的命运转折,大至**思想**的变迁、**国度**的兴衰。**弥恩**将玩家角色置于一个充满变革矛盾的时代:毁灭与存续、革命与反动、繁荣与破败,这些矛盾在众生行动中不断演变。地下城主(DM)应着力展现,在变革的洪流中,每个角色的选择如何具体地**影响历史**的走向,无论其导向进步还是倒退。 为了构建这样一个世界,角色的动机也必须与其背景深刻绑定。一个邪恶的**巫妖**不会仅因“对力量的渴望”这种单薄的理由就召唤亡灵大军。无论是行善还是作恶,背后都应有更深刻、更合理的动机,而这些动机正根植于角色的**背景**之中。 传统以“**阵营**”来界定角色的行为准则,但其标准往往模糊、主观且易被突破。为了更具体地诠释动机,**弥恩**世设将在后文使用“**个人意识形态**”这一概念,从理念与实践两个层面阐明角色行动的理由及其可能造成的影响,以提供更直观的指引。 > **本节内容与《城主指南》第3、5章主旨相似,旨在说明如何构建符合弥恩基调的战役。本节内容主要面向地下城主,文中“你”即指代地下城主。**

      1. 游戏风格

- #### 诗神已死

   **弥恩**所处的年代,是**乌托邦理想**破灭、“**灾祸**”频发与“个人毁灭”的年代。传统的田园诗式冒险已然逝去,“痛苦的良心”、纯粹的“自我完善”等古典叙事不再适用。因此,**弥恩**的战役风格应是**现实主义**的:社会关系在矛盾中流转变化,历史的进程真实而具体地影响每一个个体,同时也被每一个个体所塑造。DM应有宏大的视野,部分参照现实世界的逻辑,合理而具体地描绘这个处于变革中的世界。

- #### 历史浪潮

   **弥恩**的**社会背景**参考了**一战早期**。**生产力**的发展激化了**生产关系**的矛盾,连绵的**战争**与冲突又加剧了这一过程,形成了**弥恩**最根本的主线——**历史的浪潮**。在此,一切**政权**都是暂时的,代表特定集团的利益。它们相互倾轧,时而一方压倒另一方,时而又从内部瓦解。DM应着力表现这“大浪淘沙”的过程,在典型的时代环境中充分展现人与人矛盾在历史洪流下的演进。

- #### 未知世界

 **弥恩**是一个充满**未解之谜**的世界:古代**文明**的覆灭、**天灾**的缘由、**魔网**的衰减与**众神**的远离……这些谜团构成了**弥恩**的第二大矛盾——**人与自然的矛盾**。它与“人与人的矛盾”交织作用,时而占据主导。一些奥秘直接威胁全世界的存亡,而如何应对它们——是研究还是远离,是激进还是保守——将对从个人到**政权**的各个层面产生深远影响。玩家在探索这些未知的过程中,也将深化与世界的联结,并逐步揭开隐秘。
      1. 故事和节奏

- #### 玩家仍能成为英雄

 尽管**弥恩**对个人武力加以限制,且许多危机无法单凭力量解决,但这不妨碍玩家角色成为世界中突出的个体。他们成长迅速,潜力超常。驱动他们成为**英雄**的,通常并非“对抗邪恶的宿命”,而是他们在时代矛盾中心的**行动**——那些创造或改变历史的行动。
 因此,**弥恩**战役必须向玩家充分展示背景环境的矛盾,让他们深度参与,并清晰地展现其行动对矛盾发展的推动或阻滞。地区**历史**、社会冲突等,应用以**塑造角色**,而非仅作为背景板。DM应引导玩家思考行动的意义与后果,并给予即时反馈。传统的“击败盗匪”、“猎杀巨龙”等任务依然可行,但其意义应超越证明实力或获取赏金——例如,剿灭盗匪可使村庄繁荣,村民自发感激;屠龙可能重开商路,影响城市经济。即,玩家的任何行为都应切实**影响世界**。

- #### 必然与偶然

 历史是无数社会因素相互作用的结果。从相对科学的角度看,其决定性因素在于现实生活的生产与再生产,这构成了历史不断进步与上升的**必然性**。**弥恩**预设的**历史时间线**也基于此设计,DM应对未来一段时间的经济与政治变化有所规划。
 然而,这种必然性是“归根到底”意义上的。**弥恩**虽强调**历史浪潮**的必然,并鼓励DM通过经济变动向玩家揭示这一点,但历史进程同样受无数**偶然**因素影响:法律、政治、哲学、文化、具体战争的胜负、阶级力量对比等。这些偶然与作为必然的经济运动相互作用,共同推动历史。
 玩家角色的行动正是最大的偶然性因素。战役应突出玩家作为“偶然”对历史的能动作用。但DM需注意,不应让偶然性压倒决定性因素——若玩家行动违背历史规律,将遭遇巨大阻力;若顺应规律,则能事半功倍。

- #### 死之严肃

 与传统奇幻不同,**弥恩**既无确定的**来世**与**天国**,**复活**也极度困难。**死亡**意味着个人意志的终结,与现实世界同样沉重。然而,被**战争**与**灾厄**笼罩的**弥恩**社会,却又无可避免地将所有生灵置于**死亡**的阴影之下。生命可能被轻易剥夺,对玩家角色亦然。
 DM应让玩家重视角色的性命。角色死亡意味着与过往建立的所有联结断绝,新角色可能需从更低等级开始。有时,DM也可以通过关键**NPC**的牺牲来拯救玩家角色,而非直接处死。核心原则是:**在弥恩,生命只有一次**。
 因此,绝大多数生灵都会为生存拼尽全力。冒险充满危机,DM应将每场战斗设计得困难而独特,营造生死一线的紧张感,促使玩家在谨慎与果敢间寻找平衡。基于此,尽量避免使用“游荡怪物”的随机设定,所有敌对遭遇都应是服务于剧情、合情合理的。

- #### 曲折前行

 即使足够谨慎和强大,玩家也难免遭遇失败。当失败发生时,DM应首先厘清原因:是外部压力还是自身失误?是暴力碾压还是判断错误?在呈现失败结果时,必须让玩家理解败因,或至少给予他们探究的途径。
 所有挫败都应是**可以被克服的**。玩家从失败中汲取的经验,应能在后续冒险中得到运用。DM在设计失败时,就应将其构思为**角色成长的助力**,而非用于打压玩家或制造挫败感。应引导玩家思考如何补偿失误,并坚信“下次能做得更好”。
 基于**弥恩**的基调,在追求长远目标的过程中,暂时性的失败几乎是必然的。正义可能暂时屈服,真理可能被蒙蔽,革命道路并非一帆风顺。此时,不应让玩家感到“此路不通”,而应让每一次失败都令角色更接近目标,将苦痛转化为激励,推动他们继续前进。让玩家明白:**道路是曲折的,前途是光明的**。

- #### 未竟事业

 历史不会终结,强调人物与环境互动的**弥恩**战役亦如此。当玩家完成某项**英雄伟业**,将某个矛盾推向新阶段时,新的矛盾已然滋生。不存在“完满”的结局,玩家角色会发现,即使抵达目标,也无法安于现状。
 他们所获得的满足感,并非来自结局,而是来自一路走来的创造与行动所铸就的**理念**。这些理念或许会驱使他们继续前行,或许不足以支撑新的冒险。无论如何,这些**未竟的事业**都将成为历史的注脚,留给后人(或许是下一次冒险)去书写。

- ### 意识形态坐标系

 **弥恩**的意识形态是一个由两个基本维度构成的**二维坐标系**,用于精确定位任何政治实体或哲学流派的核心立场。
 #### 坐标系定义
   1.**横轴:社会政治立场 (Sociopolitical Axis)**
     - **衡量标准**:实体对待**社会结构、权力分配与历史进程**的根本倾向。
     - **光谱范围**:从左翼的**激进变革** 到右翼的**传统守序**。
   2.**纵轴:自然哲学立场 (Natural Philosophy Axis)**
     - **衡量标准**:实体对待**世界隐秘(魔法、奥秘、未知力量)**的根本倾向。
     - **光谱范围**:从上端的**主动驾驭**到下端的**敬畏顺从**。
    #### 核心规则与应用指南

> **【坐标定位规则】** > - **必有定位**:任何成型的政治实体或思想流派,都可以且必须在此坐标系中找到一个**主导倾向区域**。 > - **动态演变**:实体的坐标会因重大事件、领导更迭或社会变迁而**移动**,这份变是**即时**的。 > - **统治地位**:大型实体的坐标为其占据统治地位的意识形态,而忽视其内部可能的分歧。

 #### 示例